sudo
tidak dapat dianggap universal:
Red Hat Enterprise Linux : sudo
diinstal secara default pada Red Hat Enterprise Linux dan turunannya, 1 tetapi hanya menginstal yang siap digunakan di RHEL 7 dan yang lebih baru.
Red Hat Enterprise Linux 7 menambahkan opsi baru ke layar instalasi tempat Anda membuat pengguna non-root pertama , kotak centang berlabel "Jadikan ini administrator pengguna." Tujuannya tidak didokumentasikan pada halaman panduan instalasi tersebut, tetapi salah satu efeknya adalah untuk memungkinkan pengguna untuk menjalankan perintah apa pun sudo
. Itu melakukannya dengan menambahkan pengguna itu ke wheel
grup, yang dapat menjalankan perintah apa pun di bawah sudo
konfigurasi paket stok .
Red Hat Enterprise Linux 3 hingga 6 juga diinstal sudo
secara default, 2 tetapi hingga RHEL 7, ia dikirimkan dengan konfigurasi sedemikian rupa sehingga hanya root
dapat menjalankan perintah melalui itu. Cara termudah untuk memperbaikinya adalah menambahkan satu atau lebih pengguna ke wheel
grup, lalu jalankan visudo
sebagai root dan batalkan komentar pada %wheel ALL=(ALL)...
baris.
Debian : Pada Debian 9, instalasi minimal termasuk sudo
.
Di Debian 7 dan 8, Anda harus memilih paket " Utilitas sistem standar " yang ditetapkan selama instalasi untuk mendapatkan sudo
. Jika Anda menginstalnya sudo
, installer OS akan secara otomatis menambahkan pengguna non-administratif yang Anda buat sebelumnya dalam proses instalasi ke sudo
grup, yang memiliki izin untuk menjalankan semua perintah.
Di Debian 6 dan sebelumnya, Anda harus menginstal sudo
melalui apt-get
setelah instalasi dan mengkonfigurasinya dengan tangan untuk memberikan pengguna non-root kemampuan untuk menggunakannya.
FreeBSD : sudo
tidak diinstal secara default di FreeBSD. Anda harus membuatnya dari Ports.
NetBSD : Sama seperti FreeBSD.
OpenBSD : sudo
dulu diinstal secara default di OpenBSD, tetapi mereka telah beralih ke doas
pada 5.8, dirilis pada Oktober 2015 . doas
kapal dinonaktifkan secara default.
Untuk masuk sudo
ke versi saat ini, Anda harus menginstalnya dari repositori paket. sudo
Paket OpenBSD dikonfigurasi seperti di RHEL 3 hingga 6, sehingga hanya root
dapat menjalankan perintah melaluinya, yang agak mengalahkan tujuan sudo
. Jika Anda menambahkan non- root
pengguna selama instalasi, itu ditambahkan ke wheel
grup, jadi cara paling sederhana untuk membuat sudo
berguna pada sistem OpenBSD adalah dengan menghapus tanda komentar pada %wheel ALL=(ALL)...
baris melalui visudo
.
Solaris : sudo
diinstal secara default di Solaris 11, tetapi Solaris 10 dan yang lebih lama menggunakan yang serupa-tetapi-tidak-cukup-sama-sama pfexec
.
Anda bisa mendapatkan sudo
untuk sistem yang lebih lama, tetapi masalah bawaan adalah hal yang utama. Solaris 10 dan yang lebih lama akan bersama kami selama bertahun-tahun, jadi jika Anda memiliki Solaris di lingkungan Anda dan Anda tidak secara pribadi mengendalikan sistem-sistem itu dan dapat memastikan sudo
ada di sana, Anda tidak dapat mengandalkannya.
Semakin tua sistem, semakin besar kemungkinan tidak ada sudo
. Meskipun sudo
sangat tua , itu tidak mulai menjadi populer hingga pertengahan 2000-an. Sistem yang lebih tua dari itu sangat tidak mungkin untuk dimiliki sudo
. Kotak Unix cenderung hidup lama, sehingga tidak terbayangkan Anda masih akan menjalankan sistem seperti itu hari ini.
Saya hanya mengandalkan sudo
sistem yang saya kelola secara pribadi, atau yang seperti Ubuntu, macOS, atau openSuSE yang merupakan satu - satunya cara untuk mendapatkan hak akses root, secara default.
su
lebih dekat ke "mendapatkan saya superuser hak istimewa" perintah yang universal dari sudo
, tapi kemudian Anda memiliki sistem seperti Ubuntu dan MacOS di mana account root terkunci secara default khusus untuk memaksa Anda untuk menggunakan sudo
bukan su
. Jadi, Anda juga tidak bisa menyebut su
universal.
Catatan kaki :
CentOS, Oracle Linux, Scientific Linux ...
Ya, bahkan dalam pemasangan minimal.
sudo
mungkin dibundel pada sebagian besar distro, tetapi tidak semua dari mereka mengkonfigurasi setiap pengguna sebagai mampu menjalankannya.Distribusi yang paling banyak digunakan, Ubuntu, digunakan
sudo
sebagai metode yang direkomendasikan untuk menjadi root (saat menggunakan baris perintah - pengguna yang tetap menggunakan GUI akan mendapatkan prompt kata sandi tanpa memahami atau peduli tentang apa yang terjadi di bawah tenda). Distribusi lain mungkin atau mungkin tidak mendorong sudo didirikan dan mungkin atau mungkin bahkan tidak mengirimkannya. Di sisi lain,su
tersedia di mana-mana, dan dapat digunakan pada sebagian besar sistem kecuali yang hanyasudo
tersedia karena pengguna tidak akan memiliki kata sandi root.Antara
su
dansudo
, Anda akan mencakup hampir semua pengguna Anda. Eksotis beberapa yang membutuhkancalife
atauop
ataupfexec
tahu apa yang harus dilakukan sudah. Sekalipun tidak, sistem yang tidak menggunakan dansu
jugasudo
tidak mungkin memiliki file di tempat asing dan cukup banyak hal yang belum Anda pikirkan sehingga instruksi Anda mungkin tidak akan berhasil.sumber
Untuk menjawab pertanyaan Anda, paling akurat,
sudo
tidak dianggap tidak universal. Sejujurnya seluruh konsep 'universal', seringkali menjadi ikan haring merah. Ini terutama benar, berkenaan dengan kompatibilitas lintas-distro. Setelah Anda melemparkan banyak versi perangkat lunak yang berbeda, universalitas menjadi semi-realistis. Scripting pada dasarnya adalah pragmatis, jika itu bertele-tele, menulis skrip portabel praktis tidak mungkin.Biasanya saya mengukur lingkungan yang ingin saya jalankan, distribusi semi-modern Linux, saya mengharapkan shell POSIX dengan GNU Utils yang umum. Untuk skrip yang dapat berjalan di luar Linux, saya hanya mengharapkan standar POSIX penuh. Jelas banyak skrip yang khusus untuk Linux, atau khusus untuk distro, sehingga sering mempersempit ruang lingkup portabilitas.
Untuk mengatasi kasus skrip spesifik Anda,
script yang ditempelkan adalah pujian shell POSIX, saya selalu menulis Dash yang kompatibel.
sumber
sudo
diinstal. Ini membutuhkan eksekusi superuser, dan dapat digunakansudo
jika tersedia. Jikasudo
tidak tersedia, maka skrip harus dijalankan sebagai pengguna root, atau itu akandie
.sudo -l
. Sayangnya itu tidak dapat digunakan dalam situasi ini, karena mungkin memerlukan entri kata sandi. Memikirkan hal ini lebih hati-hati, saya benar-benar berpikir keseluruhan konsep mungkin terbaik dicapai melalui tes per distro. Menggunakansu -c
kecuali menjalankansu
distro dinonaktifkan default, dalam hal ini menggunakansudo su -c
. Seperti yang telah disebutkan orang lain, yang terbaik untuk meninggalkan elevasi pengguna super kepada pengguna, saya akan mempertimbangkan kenyamanan scrip-sekitar.sudo
. Ini harus dijalankan dengan benar di sebagian besar distro, dengan asumsi defaultsu
/sudo
konfigurasi. Saya tahu Ubuntu yang sudah ketinggalan zaman, pralsb_release
, perlu ditangani ... Tapi ini benar-benar hanya sebuah contoh, dan jelas dapat diperpanjang.