Pemasangan sudo

Pemasangan sudo

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