จากผู้ใช้รูทฉันจะให้สิทธิ์แก่ผู้ใช้รายอื่นเพื่อรันไฟล์ /root/script.sh ได้อย่างไร?
แนวคิดคือการเรียกใช้สคริปต์เช่น sudo -u user1 /root/script.sh
su(1)
จากผู้ใช้รูทฉันจะให้สิทธิ์แก่ผู้ใช้รายอื่นเพื่อรันไฟล์ /root/script.sh ได้อย่างไร?
แนวคิดคือการเรียกใช้สคริปต์เช่น sudo -u user1 /root/script.sh
su(1)
คำตอบ:
ฉันต้องบอกว่าฉันไม่เคยชอบsudo
(โดยเฉพาะการกำหนดค่า) ธรรมดาเก่าsu
:
su -c 'command' - user
ดำเนินการจากรูทจะไม่พร้อมท์รหัสผ่าน
ผู้ใช้จะต้องมี
ดำเนินการอนุญาตสำหรับเส้นทางไดเรกทอรีทั้งหมด (ที่นี่/root
เท่านั้น)
ดำเนินการอนุญาตสำหรับไฟล์
อ่านสิทธิ์สำหรับไฟล์
มันอาจเป็นความคิดที่ดีที่จะปล่อยให้/root
ไม่มีใครแตะต้องและสร้าง (หรือใช้) ไดเรกทอรีที่แตกต่างกันเพื่อจุดประสงค์นี้ (เช่น/usr/local/bin
) คุณสามารถสร้างuser1
ผู้ใช้คนเดียวที่ได้รับอนุญาตให้เรียกใช้สคริปต์โดยทำให้เป็นเจ้าของไฟล์หรือปล่อยให้root
เป็นเจ้าของและกลุ่มตั้งค่าสิทธิ์การเข้าถึงแบบง่าย ( chmod
) ไปที่770
และเพิ่มuser1
ด้วย ACL ( setfacl
)
หากสคริปต์ของคุณอยู่ในรูต dir
$ LC_ALL=C ls -ld /root
drwx------ 17 root root 4096 Mar 5 20:14 /root
user1
สามารถเป็นได้ทั้งราก
/etc/sudoers
รายการของคุณจะมีลักษณะเช่น
Cmnd_Alias SCRIPT=/root/script.sh
# user who is allowed executing /root/script.sh
%user ALL = (ALL) SCRIPT
ปกติแล้วคุณจะแก้ไขไฟล์ด้วย visudo
จากนั้นคุณไม่จำเป็นต้องใส่คำสั่ง-u root
ของคุณsudo
%
หมายถึงกลุ่มผู้ใช้ เมื่อคุณละทิ้งมันจะมีเพียงผู้ใช้เท่านั้นที่ได้รับอนุญาตให้ดำเนินการคำสั่ง หากคุณต้องการให้กลุ่มผู้ใช้เรียกใช้งานจากนั้นปล่อยให้เป็นเช่นนั้น
sudo
คำสั่งที่คุณเขียน?