Jawaban:
Jawaban singkat:
Menggunakan visudo
, tambahkan berikut ini ke file sudoers Anda, ganti nama pengguna dengan nama pengguna yang tepat:
username ALL = /etc/init.d/apache2
Jika Anda tidak perlu mengetikkan kata sandi sebelum melakukannya, gunakan yang berikut ini:
username ALL = NOPASSWD: /etc/init.d/apache2
Setelah ini, pengguna 'nama pengguna' dapat menjalankan sudo /etc/init.d/apache2 start
(atau menghentikan, memulai kembali, dll)
Jawaban panjang: Anda mungkin ingin mengatur pengguna terpisah untuk ini jika Anda belum melakukannya, dan kemudian mengkonfigurasi file / etc / sudoers untuk memungkinkan pengguna atau grup untuk menjalankan perintah yang Anda inginkan.
Misalnya, untuk mengizinkan pengguna 'ben' untuk menjalankan semua perintah sebagai root yang meminta kata sandi, Anda akan melakukan hal berikut:
ben ALL= ALL
Untuk mengizinkan 'ben' untuk mengeksekusi hanya satu perintah (seperti katakan, rm
), Anda akan melakukan hal berikut:
ben ALL= /bin/rm
Jika Anda menjalankan skrip sebagai pengguna dan tidak ingin meminta kata sandi, Anda akan ingin menggunakan opsi 'NOPASSWD' seperti:
ben ALL=NOPASSWD: /bin/commandname options
Anda dapat melakukan hal yang sama untuk grup dengan mengawali nama grup dengan tanda persentase, seperti:
%supportstaff ALL= NOPASSWD: /bin/commandname
visudo
perintah melakukan pemeriksaan keamanan pada suntingan Anda sehingga Anda tidak melanggar sudo
/ su
perintah secara tidak sengaja: unix.stackexchange.com/a/27595/61349
Jawaban singkat: sudo.
Panggilan akan terlihat mirip dengan yang berikut: sudo /etc/init.d/apache2 restart
Paling mudah digunakan visudo
untuk mengatur file / etc / sudoers. Lihat man sudoers
dan man visudo
untuk detailnya.
Anda juga dapat melakukannya dengan menulis pembungkus ke apache2ctl, menetapkan kepemilikan grup ke grup administrasi web dan mengatur bit suid. Ini adalah solusi yang kurang umum daripada visudo, tetapi memungkinkan batasan khusus pada kemampuan pengguna dan pengecekan kesalahan.
Saya menulis alat ini untuk kebutuhan saya sendiri dan telah membagikannya di github: https://github.com/josiahjohnston/ltd_apache2ctl
username
dibatasi untuk subset parameter? Katakanstart
restart
tapi tidakstop
?