จากผู้ใช้รูทฉันจะให้สิทธิ์แก่ผู้ใช้รายอื่นเพื่อรันไฟล์ /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คำสั่งที่คุณเขียน?