ฉันอยู่ในกลุ่ม sudo:
$ id
uid=1002(molot) gid=1002(molot) groups=1002(molot),27(sudo),33(www-data)
ใน sudores ของฉันฉันดูเหมือนจะมีการตั้งค่าที่เหมาะสม:
sudo ALL=(ALL:ALL) NOPASSWD: ALL
และเป็นบรรทัดที่ไม่ใส่เครื่องหมายสุดท้ายที่นั่น
แต่เมื่อฉันพยายามgit pull
ฉันจะพิมพ์รหัสผ่านของฉันอีกครั้ง:
$ sudo -u www-data git --git-dir /var/www/.git --work-tree /var/www pull "origin" master
[sudo] password for molot:
ไม่มีปัญหาเมื่อฉันเข้าสู่ระบบคอนโซล แต่มันไม่เป็นที่ยอมรับในสคริปต์ ดังนั้นฉันจะอนุญาตให้ทุกคนในกลุ่ม sudo สามารถ git pull เป็น www-data โดยไม่ต้องพิมพ์รหัสผ่านซ้ำได้อย่างไร
เมื่อฉันใส่ชื่อของฉันโดยตรง:
molot ALL=(ALL) NOPASSWD: ALL
มันใช้งานได้สำหรับฉัน แต่เห็นได้ชัดว่าไม่ใช่สำหรับผู้ใช้แมเรียนหรือผู้ใช้รายอื่นจากกลุ่ม sudo เท่าที่ฉันเข้าใจด้วยตนเองชื่อผู้ใช้และชื่อกลุ่มควรทำงานในไฟล์แรก
sudoers
รูปแบบไฟล์ที่ถูกต้อง) คือชื่อผู้ใช้ของผู้ใช้ที่กล่าวอ้าง คุณได้ลองแทนที่ด้วยไว*
ด์การ์ดหรือผู้ใช้ git hook นั้นทำงานอย่างไร
sudo -u www-data ./your_script.sh
? วัตถุประสงค์ของสคริปต์คืออะไร?