Saya mencoba menulis /etc/network/interfaces
dengan pengguna yang tidak memiliki hak akses root.
Alasan ingin menulis ini adalah untuk memungkinkan pengguna untuk menetapkan IP statis karena saya menjalankan server hanya baris perintah. Izin apa yang harus saya berikan kepada pengguna etc/sudoers
?
Saya tidak ingin pengguna memiliki izin root penuh. Hanya kemampuan untuk mengedit file ini.
permissions
user-management
Keith
sumber
sumber
/var/tmp/foo
=/etc/network/interfaces
? Belum pernah benar-benar melihat apa yang ingin Anda katakan di sana, saya cukup baru di Linux.setfacl: /etc/logrotate.conf: Operation not supported
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) (denganvisudo
lebih baik, memeriksa kewarasan, sangat sulit untuk memulihkan sistem dengan file sudoers yang tidak valid, bahkan tidak mungkin dari jarak jauh (3)), dan menambahkanSekarang 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
)... dan Anda memberi tahu pengguna untuk mengedit
/tmp/temp-iface.txt
dan kemudian menjalankansudo /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.sumber
/etc/network/interfaces
file menjadi apa pun/root/set_static_ip
itu. Kecuali Anda dapat membuat skrip yang meminta pengguna untuk memasukkan alamat IP, gateway, dll ... Ini saya tidak cukup baik untuk membuatnya./etc/sudoers
ituvisudo
, bukansudoedit
.