เป็นไปได้หรือไม่ที่จะให้ sudo เข้าถึงเฉพาะคำสั่งเฉพาะ?


24

ความเป็นมา: ฉันมีเครื่องพัฒนาพร้อมติดตั้งหลอด นักพัฒนาหลายคนจะเข้าถึงเครื่องเป็นครั้งคราว ทุกครั้งที่มีการเปลี่ยนแปลงบางอย่างในไฟล์กำหนดค่าพวกเขาจะต้องรีสตาร์ทเซิร์ฟเวอร์ apache โดยใช้sudo service apache restartหรือsudo /etc/init.d/apache2 restart

คำถาม:

สิ่งที่ฉันต้องการตอนนี้คือนักพัฒนาซอฟต์แวร์ทุกคนที่เข้าถึงเครื่องไม่สามารถเข้าถึงทุกสิ่งได้ ค่อนข้างเขา / เธอควรจะสามารถเรียกใช้serviceคำสั่งโดยใช้ sudo และไม่มีอะไรอื่น เป็นไปได้ไหมที่จะทำเช่นนั้น?

คำตอบ:


35

ใช่.

สร้างกลุ่มใหม่เว็บ (เรียกว่าสิ่งที่คุณต้องการ)

sudo addgroup web

เพิ่มนักพัฒนาของคุณไปยังกลุ่มเว็บ (ใช้ชื่อเข้าสู่ระบบของพวกเขา)

sudo adduser your_developer_user web

จากนั้นเรียกใช้sudo visudo -f /etc/sudoers.d/somefile(ใช้ชื่อที่มีความหมายแทนsomefile)

เพิ่มในบรรทัด (ใช้เส้นทางแบบเต็มของคำสั่ง):

%web ALL=(ALL) /usr/bin/service apache2 *

นักพัฒนาสามารถเรียกใช้

sudo service apache

ใช้รหัสผ่านเข้าสู่ระบบของพวกเขา

อย่าเพิ่มผู้ใช้ผู้ดูแลระบบของคุณไปยังกลุ่มเว็บ

ดูman sudoersสำหรับข้อมูลเพิ่มเติม


1
@Ankit: วิธีที่ผู้ใช้webกลุ่มสามารถเริ่ม / หยุดบริการใด ๆ และนี่ไม่ใช่สิ่งที่คุณต้องการฉันคิดว่า การแก้ปัญหาควรจะใส่คำสั่งที่แน่นอน (รวมถึงพารามิเตอร์) /etc/sudoersด้วย
enzotib

@enzotib ฉันสามารถทำเช่นนั้นฉันหมายความว่าดังนั้นคำสั่งใหม่จะ/usr/bin/service apache2เป็นอย่างไร
Ankit

3
@Ankit:/usr/bin/service apache2 *
enzotib

สิ่งนี้ก็น่าจะเป็นเช่นนั้น/usr/sbin/service
Erfan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.