Bagaimana cara memberi nopasswd akses ke banyak perintah melalui sudoers?

45

Di bawah ini yang saya tahu:

Saya harus menambahkan baris di bawah ini dalam sudoersfile untuk memberikan hak kepada pengguna untuk tugas tertentu.

user_name ALL=NOPASSWD: /usr/bin/apt-get install

Dalam hal ini saya ingin memberikan akses ke pengguna ini untuk me-restart 2 layanan (yaitu Apachedan MySQL) dengan semua hak instal.

Dengan menggunakan baris di atas, saya telah memberinya semua hak instal, sekarang apakah saya harus menambahkan baris yang sama dua kali lagi untuk memberikan hak atas layanan? Atau bisakah saya menambahkan perintah-perintah itu di baris yang sama, dipisahkan oleh koma atau apalah?

Sayang
sumber

Jawaban:

48

Saya telah memecahkan masalah dengan membuat grup baru untuk hak admin terbatas ... nama grup itu LimitedAdminssetelah itu saya memperbarui sudoersfile seperti di bawah ini.

Baris yang saya tambahkan adalah:

%LimitedAdmins ALL=NOPASSWD: /usr/bin/apt-get*, /etc/init.d/apache2 restart

Ini adalah /etc/sudoersfile lengkap :

# This file MUST be edited with the 'visudo' command as root.    
#   
# Please consider adding local content in /etc/sudoers.d/ instead of directly modifying   his file.   
#   
# See the man page for details on how to write a sudoers file.  
# 
Defaults    env_reset

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL  

#includedir /etc/sudoers.d
%domain_name\\administrators ALL=(ALL) ALL
%LimitedAdmins ALL=NOPASSWD: /usr/bin/apt-get*, /etc/init.d/apache2 restart

Ini berfungsi dengan baik kalau-kalau sistem Anda adalah domain atau tidak.

Rishee
sumber
Anda tidak seharusnya menaruh barang setelah #includedirbaris, bukan?
hamstar
@hamstar Hai Hai! Ya Anda benar, Anda telah menggunakan file konfigurasi ini di perusahaan saya selama lebih dari 2 tahun sekarang & berfungsi dengan sangat baik. Bahkan Engkau juga akan merekomendasikan, untuk meletakkan dua baris terakhir sebelumnya #includedir.
Hrish
3
Atau lebih baik, letakkan kedua baris itu ke file baru di bawah /etc/sudoers.d daripada mengedit / etc / sudoers.
tgharold
@tgharold Ya sobat !! Anda benar ... itu benar-benar pilihan yang lebih baik daripada apa yang saya sarankan ... :) Hargai ide Anda yang akan mencoba diterapkan di tempat saya juga.
Hrish
Apakah #includedir komentar? Atau apakah memasukkan terjadi secara otomatis dan komentar hanya mengingatkan kita akan hal itu?
HeatfanJohn
12

Sepertinya koma adalah yang Anda butuhkan.

Cmnd_Alias ​​PRINTING = / usr / sbin / lpc, / usr / bin / lprm
...
user3 ALL = PRINTING

Sumber

Karthik T
sumber
Saya telah memberikan hak seperti yang Anda sebutkan, namun saya mendapat pesan kesalahan seperti di bawah ini. <br/> E: Tidak dapat membuka file kunci / var / lib / dpkg / lock - open (13: Izin ditolak) <br/> E: Tidak dapat mengunci direktori administrasi (/ var / lib / dpkg /), adalah kamu root? ... adakah yang bisa membantu dalam hal ini?
Jam
@Rishee Saya akan mencoba setelah saya tiba di rumah
Karthik T
file sudores saya berisi hal-hal yang disebutkan di bawah ini.
Hrish
# Spesifikasi root hak istimewa pengguna ALL = (ALL: ALL) ALL # Anggota grup admin dapat memperoleh hak root%% ALL ALL = (ALL) ALL # Izinkan anggota grup sudo untuk menjalankan perintah apa pun% sudo ALL = (ALL: ALL) ALL #includedir /etc/sudoers.d $ sudo nano / etc / sudoers% Administrator Domain_Name \\ ALL = (ALL) ALL% Domain_Name \\ user.name ALL = NOPASSWD: / usr / bin / apt-get install, / etc /init.d/apache2 restart
Hrish
2

Apa yang akhirnya saya lakukan adalah (Mirip dengan apa yang Anda cari):

## PRTG monitoring
Cmnd_Alias PRTG = /bin/cat /proc/loadavg, /bin/df, /var/prtg/scripts/check_proc.sh
prtg ALL = NOPASSWD: PRTG

Dalam: /etc/sudoers.d/666-prtg

(666, karena ... yah ... prtg ADALAH alat pemantauan berbasis windows lho)

Mark Maas
sumber