Persiapkan skrip yang melakukan pengeditan yang Anda inginkan, misalnya skrip yang menulis file yang benar dengan IP statis (apa yang harus dimasukkan dalam skrip ini berada di luar cakupan T&J ini). Sebut skrip ini /root/set_static_ip
. (1)
Sunting /etc/sudoers
(2) (dengan visudo
lebih baik, memeriksa kewarasan, sangat sulit untuk memulihkan sistem dengan file sudoers yang tidak valid, bahkan tidak mungkin dari jarak jauh (3)), dan menambahkan
user_name_to_authorize ALL=NOPASSWD: /root/set_static_ip
Sekarang pengguna dapat menggunakan sudo /root/set_static_ip
tanpa kata sandi yang diminta, dan skrip akan berjalan dengan semua hak istimewa; tidak ada perintah lain yang diizinkan.
Jika Anda ingin pengguna mengganti file dengan apa pun yang mereka inginkan, skripnya bisa saja (sebut saja /root/unsafe-overwrite-interface
)
#! /bin/bash -e
#
cp /tmp/temp-iface.txt /etc/network/interfaces
exit 0
... dan Anda memberi tahu pengguna untuk mengedit /tmp/temp-iface.txt
dan kemudian menjalankan sudo /root/unsafe-overwrite-interface
--- mengaktifkannya dalam sudoers seperti yang ditentukan di atas. Atau Anda dapat menambahkan pengguna ke daftar ACL dan memberi mereka izin menulis pada file tertentu .
Tetapi perhatikan bahwa jika Anda tidak memeriksa konten file untuk keamanan, malapetaka akan terjadi, baik disengaja atau tidak disengaja.
Catatan kaki :
(1) skrip ini harus seaman mungkin. Periksa input dan sebagainya. Ini akan dieksekusi dengan izin penuh.
(2) dalam instalasi sudo modern, Anda dapat menambahkan file ke /etc/sudoers.d/
direktori yang lebih baik --- akan bertahan pembaruan.
(3) Saya biasanya menjaga terminal dengan sesi root terbuka ( sudo -i
) ketika saya memodifikasi mekanisme sudoers, dan cadangan berguna.
/var/tmp/foo
=/etc/network/interfaces
? Belum pernah benar-benar melihat apa yang ingin Anda katakan di sana, saya cukup baru di Linux.