Pemasangan sudo
- 3523
- 744
- Clarence Tromp
Bagaimana jika anda mahu satu pengguna menjalankan arahan sebagai pengguna sistem lain tanpa menukar kata laluan. Sebagai contoh, anda mungkin mahu pengguna John menjalankan arahan cari atau skrip shell bash adat sebagai pengguna greg atau bahkan sebagai akar pengguna (superuser) tanpa pertukaran kata laluan. Dalam kes ini utiliti sudo dengan fail konfigurasi /etc /sudoers akan menjadi rakan anda. Utiliti ini digunakan secara meluas tetapi pada masa yang sama sangat sedikit difahami oleh pengguna Linux dari semua peringkat.
Artikel pendek ini menerangkan beberapa asas penggunaan sudo dan format fail konfigurasi sudoers.
Pemasangan sudo
Mula -mula kita perlu memastikan bahawa sudo dan /etc /sudoers fail konfigurasi sudo tersedia. Untuk melakukan itu:
$ yang sudo
atau
$ sudo -v
Perintah pertama harus mendedahkan lokasi sudo binari yang boleh dilaksanakan dan program kedua akan mengeluarkan bilangan versi sudo sendiri. Fail konfigurasi sudo sudoer dalam kebanyakan kes yang terletak di /etc /sudoers. Anda boleh menggunakan arahan LS untuk mencari fail ini.
$ ls -l /etc /sudoers -r-r ----- root root 481 2010-04-08 21:43 /etc /sudoers
Perhatikan keizinan lalai dan "mesti" fail a /etc /sudoers. Hanya akar pengguna dan pengguna yang tergolong dalam kumpulan root dapat membaca fail ini.
$ kucing /etc /sudoers kucing: /etc /sudoers: kebenaran ditolak
Sekiranya anda menghadapi masalah semasa melaksanakan di atas, kemungkinan besar sudo tidak dipasang pada sistem anda. Ini sangat tidak mungkin jika anda menjalankan ubuntu, fedora atau opensuse sebagai utiliti sudo dipasang pada sistem anda secara lalai. Sekiranya anda menjalankan Debian melaksanakan arahan Linux berikut untuk memasang utiliti sudo:
CATATAN: Sangat tidak mungkin utiliti sudo tidak dipasang pada sistem anda kerana kebanyakan pengagihan Linux yang baik mempunyai utiliti sudo yang dipasang secara lalai.
# apt-get pemasangan sudo
Untuk pengagihan YUM (RPM) Gunakan arahan ini untuk memasang sudo:
# yum pasang sudo
Melaksanakan skrip bash menggunakan sudo
Mari buat beberapa skrip bash sederhana yang akan memberi kita persekitaran ujian asas untuk arahan sudo. Perintah Linux berikut akan membuat skrip bash yang dipanggil sudo_test.SH dalam/usr/direktori tempatan/bin dan menjadikannya boleh dilaksanakan:
$ su - kata laluan: # cd/usr/local/bin/ # echo "ps aux | grep $$"> sudo_test.sh # echo "sentuh /tmp /sudo_file.tmp ">> sudo_test.sh # chmod +x sudo_test.sh
Skrip ini tidak akan melakukan apa -apa kecuali ia akan mencetak id proses sudo_test.skrip sh bash bersama -sama dengan id pemiliknya yang relevan sebagai output stdout dan pada masa yang sama ia akan membuat fail yang dipanggil sudo_file.TMP dalam / tmp / direktori. Sekarang kita melaksanakan skrip ini sebagai pengguna root dan periksa pemilik proses ini.
./sudo_test.SH [1] 3513/usr/local/bin# ps aux | GREP 3513 ROOT 3513 0.0 0.1 4260 908 pts/4 s 16:32 0:00 Bash root 3516 0.0 0.0 1700 268 pts/4 r+ 16:32 0:00 grep 3513
Seperti yang anda dapat lihat proses ID 3513 dimiliki oleh akar pengguna. Selain itu, dengan melaksanakan arahan LS kita dapat melihat fail /tmp /sudo_file.TMP dimiliki oleh pengguna root.
# ls -l /tmp /sudo_file.TMP -RW-R-R-- ROOT 1 ROOT 0 2010-08-29 17:31 /TMP /SUDO_FILE.TMP
Mari Keluarkan /TMP /SUDO_FILE.Fail TMP dan cuba melaksanakan skrip yang sama ini dengan pengguna lain bernama "Lilo". Perhatikan kebenaran skrip selepas pelaksanaan arahan ls -l.
$ whoami lilo $ ls -l/usr/local/bin/sudo_test.sh -rwxr-xr-x 1 root root 44 2010-08-29 17:31/usr/local/bin/sudo_test.sh $/usr/local/bin/sudo_test.sh root 3502 0.0 0.3 4260 1744 pts/4 s+ 16:31 0:00 bash lilo 3773 0.0 0.1 3116 720 pts/5 r+ 17:36 0:00 grep 3502 $ ls -l/tmp/sudo_file.TMP -RW-R-R-- 1 LILO LILO 0 2010-08-29 17:36 /TMP /SUDO_FILE.TMP
Seperti yang anda lihat skrip dilaksanakan oleh pengguna Lilo dan pemilik proses ini juga pengguna Lilo. Fail yang dibuat dalam A /TMP /direktori juga dimiliki oleh pengguna Lilo. Sebelum anda terus, sila keluarkan /TMP /sudo_file.fail tmp.
Beri kebenaran sudo kepada pengguna
Tugas seterusnya kami sekarang adalah untuk menjadikan pengguna Lilo dapat melaksanakan/usr/local/bin/sudo_test.skrip sh dengan keistimewaan akar dan tanpa memberikan kelayakan akar. Untuk melakukan ini, kita perlu mengedit fail konfigurasi sudo. Oleh kerana akar hanya membaca akses ke fail konfigurasi sudo /etc /sudoers dan kami tidak mahu mengubahnya, kami akan menggunakan perintah Visudo yang dilaksanakan sebagai akar untuk menambah baris berikut ke fail ini:
lilo all = (root)/usr/local/bin/sudo_test.sh
- Lilo: Pengguna yang akan mempunyai kebenaran untuk melaksanakan/usr/local/bin/sudo_test.skrip sh
- Semua: sepadan dengan apa sahaja dan dalam konteks ini ia terpakai kepada nama hos
- (root): Perintah ini akan dijalankan dengan keistimewaan akar
- /usr/tempatan/bin/sudo_test.SH: Perintah sebenar
Akibatnya, ketika kita kini cuba melaksanakan/usr/local/bin/sudo_test.skrip sh sebagai pengguna lilo menggunakan arahan sudo dan masukkan kata laluan Lilo:
$ rm /tmp /sudo_file.TMP $ sudo/usr/local/bin/sudo_test.SH [sudo] kata laluan untuk lilo: root 3502 0.0 0.3 4260 1744 pts/4 s 16:31 0:00 Bash root 3793 0.0 0.1 3116 720 pts/5 s+ 17:46 0:00 grep 3502 $ ls -l/tmp/sudo_file.TMP -RW-R-R-- ROOT 1 ROOT 0 2010-08-29 17:46 /TMP /SUDO_FILE.TMP
ID proses 3502 dimiliki oleh akar dan pemilik /tmp /sudo_file.TMP adalah pengguna root. Selain itu, jika anda misalnya mahu pengguna Lilo melaksanakan skrip/usr/local/bin/sudo_test.sh sebagai pengguna j "John" hanya mengubah /etc /sudoers fail konfigurasi dan ganti (root) dengan (John) menggunakan perintah visudo.
sudo tanpa kata laluan
Apabila arahan sudo dilaksanakan pengguna diminta kata laluan. Bahaviouv lalai dari arahan sudo boleh diubah dengan mengedit /etc /file config sudoers. Sekiranya kita tidak mahu diminta kata laluan, kami mengubah fail a /etc /sudoers dengan menukar baris:
lilo all = (root)/usr/local/bin/sudo_test.sh
dengan
lilo all = (root) noPasswd:/usr/local/bin/sudo_test.sh
Timeout Kata Laluan sudo
Bilangan minit sebelum sudo akan meminta pengguna memasukkan kata laluan sekali lagi secara lalai 15. Tingkah laku ini dapat diubah dengan menyatakan arahan timestamp_timeout dalam /etc /sudoers fail. Untuk meningkatkan tamat masa kata laluan sudo hingga 60 minit, kami menambah arahan sudo timestamp_timeout ke dalam /etc /sudoers fail dengan menukar garis:
Lalai env_reset
ke
Lalai env_reset, timestamp_timeout = 60
Ketahui lebih lanjut mengenai sudo
Perhatikan ada banyak lagi yang perlu dipelajari mengenai arahan sudo dan keupayaannya. Cara yang baik untuk mengetahui lebih lanjut mengenai arahan sudo adalah bermula dengan:
lelaki sudo
atau untuk mengakses halaman lelaki untuk fail konfigurasi sudoers
lelaki sudoer
Tutorial Linux Berkaitan:
- Cara mengeluarkan bloatware dari Samsung Android Mobile anda ..
- Mengendalikan input pengguna dalam skrip bash
- Cara memecahkan kata laluan zip di kali linux
- Cara membuat Modify dan Padam Akaun Pengguna di Linux
- Perkara yang hendak dipasang di Ubuntu 20.04
- Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
- Pengenalan kepada Automasi, Alat dan Teknik Linux
- Linux - Tetapkan semula kata laluan, umur dan sejarah
- Manipulasi data besar untuk keseronokan dan keuntungan bahagian 1
- Menguasai Gelung Skrip Bash
- « Pasang dan mainkan Overwatch dengan Lutris di Ubuntu 18.04
- Cara Memasang ImageMagick 7 di Ubuntu 18.04 Linux »