Bagaimana saya bisa membatasi pengguna saya untuk hanya menjalankan perintah selektif. Saya memiliki tomc pengguna dalam grup tomc. Saya perlu pengguna ini menjadi pengguna sudo dan kemudian memiliki bash terbatas. Saya telah mencoba mengikuti kode dalam /etc/sudoers
file, tetapi tidak berfungsi karena pengguna dapat menjalankan perintah lain seperti mkdir
,rm
%tomc ALL=/bin/bash,/usr/bin/vim /*
sudo bash
setara dengan sebagian besar cara untuk mendapatkan kata sandi root. Darisudo bash
shell mereka dapat menjalankan perintah admin, menginstal atau menghapus perangkat lunak, menghapus pengguna dan direktori, dll.Jawaban:
Anda mungkin salah dalam hal ini. Alih-alih memberi pengguna 'bash shell', Anda seharusnya hanya memberi mereka akses ke perintah yang mereka perlukan untuk dijalankan sebagai root. Misalnya, dalam file sudoers Anda:
Hati-hati dengan mengizinkan pengguna untuk menjalankan vim sebagai root. Vim memiliki banyak fitur built-in, seperti lolos ke shell dan kemampuan untuk menjalankan perintah dari dalam vim. Tergantung pada distribusi Anda, Anda mungkin sudah
sudoedit
tersedia. Ini berfungsi sama seperti Vim normal, kecuali itu dirancang untuk menangani shell lolos dan semacamnya.sumber
vim
dapat menjalankan perintah shell sewenang-wenang. Dan baris kedua mungkin akan memungkinkanless /var/log/myapp/../../../etc/shadow
! Menurut percobaan saya menggunakan sudo dengan aman itu sulit ! Tetapi jika Anda dapat menghindari*
dan menggunakansudoedit
bukanvim
maka Anda mungkin baik-baik saja.*
tidak cukup! Begitu masukless
sebagairoot
pengguna, coba ketikkan!tail /var/log/secure
. Bagaimana rasanya? PelajariNOEXEC
tag. Tapi ingatlah pesan @ joeytwiddle dalam hati: keselamatan sudo memang sulit.Pada Synology Diskstation saya yang menjalankan DSM 6 hanya pengguna admin yang dapat melakukan ssh secara konsisten (pengguna non-admin memiliki shell sebagai / sbin / nologin di / etc / passwd - Anda dapat mengatur ini ke / bin / sh untuk sementara mengizinkan ssh, tetapi saat reboot file / etc / passwd diatur ulang). Untuk alasan ini diperlukan semacam batasan sudo untuk akun yang jika tidak ada hanya untuk menjalankan mis. / Sbin / poweroff. Baris berikut di / etc / sudoers berguna untuk saya:
Terjemahan: melarang semua perintah, kemudian hanya mengizinkan perintah yang diinginkan (tanpa meminta kata sandi dalam hal ini).
Dengan konfigurasi ini, sudo meminta kata sandi dan kemudian gagal untuk perintah selain yang masuk daftar putih:
sumber