Score:1

CENTOS apache ALL=(root) NOPASSWD: /path/to/shell.sh ไม่ทำงาน

ธง jp

กำลังพยายามจัดการเว็บอินเตอร์เฟส IPtables

สร้างไฟล์ test.php

$output = shell_exec('sudo bash /usr/bin/iptables.sh 2>&1');
เสียงสะท้อน $output;

ให้ /usr/bin/iptables.sh NOPASSWD เพื่อให้ฉันสามารถรันไฟล์ด้วย sudo ผ่าน apache โดยไม่ต้องใช้รหัสผ่าน

sudo iptables -L

ไฟล์ sudoers :

apache ALL=(รูท) NOPASSWD: /usr/bin/iptables.sh

แต่ฉันยังคงได้รับข้อผิดพลาด

เราเชื่อว่าคุณได้รับการบรรยายตามปกติจากระบบท้องถิ่น ผู้ดูแลระบบ โดยปกติแล้วจะสรุปเป็นสามสิ่งนี้: #1) เคารพความเป็นส่วนตัวของผู้อื่น #2) คิดก่อนพิมพ์ #3) ด้วย พลังอันยิ่งใหญ่มาพร้อมกับความรับผิดชอบอันยิ่งใหญ่ sudo: จำเป็นต้องมีเทอร์มินัล เพื่ออ่านรหัสผ่าน ใช้ตัวเลือก -S เพื่ออ่านจากมาตรฐาน ป้อนหรือกำหนดค่าตัวช่วย askpass{"mode":"full","isActive":false}

แต่ถ้าผมใช้

apache ALL=(รูท) NOPASSWD: ALL

ทุกอย่างทำงานได้ดี

ฉันตรวจสอบไดเร็กทอรีของฉันอีกครั้งแล้วใช้เส้นทางที่แน่นอน

[root@CentOS bin]# readlink -f iptables.sh
/usr/bin/iptables.sh

ไร้เดียงสาสุด ๆ ที่นี่ใครสามารถช่วยฉันด้วยทิศทาง? :'(

Score:1
ธง cz

คำสั่งที่คุณเรียกใช้ด้วย ซูโด จะต้องตรงกับสิ่งที่อยู่ใน ซูโดเออร์ ไฟล์ แต่ในกรณีของคุณไม่ตรงกัน

คุณพยายามวิ่ง ทุบตี /usr/bin/iptables.sh, แต่ ซูโดเออร์ อนุญาตให้คุณเรียกใช้เท่านั้น /usr/bin/iptables.sh.

alvan avatar
jp flag
ฉันสับสน ฉันจะรันสคริปต์ในกรณีนี้ได้อย่างไร ฉันต้องเพิ่ม bash ให้กับ sudoers หรือไม่
Michael Hampton avatar
cz flag
@alvan ทำไมคุณถึงมี `bash` อยู่ในนั้นด้วยล่ะ? มันซ้ำซ้อน จะทำอะไรก็ได้แต่ข้อสำคัญคือ **ต้องตรงกัน**
alvan avatar
jp flag
โอ้พระเจ้า. $output = shell_exec("sudo /usr/bin/iptables.sh 2>&1'"); สิ่งนี้ได้ผลจริง
alvan avatar
jp flag
ขอบคุณมากไมเคิล !!
Score:0
ธง us

ลองด้วย sudo ตั้งแต่ /usr/bin/iptables.sh การอ้างอิงถึงรากของราก

$output = shell_exec("sudo -u root sh -c 'bash /usr/bin/iptables.sh 2>&1'");
เสียงสะท้อน $output;
alvan avatar
jp flag
โชคไม่ดีที่ php ไม่แสดงผลอะไรเลยในกรณีนี้ แต่เมื่อฉันเปลี่ยนไฟล์ sudoers เป็น ALL มันใช้งานได้
Ajay Singh avatar
us flag
@alvan คุณได้ลองใช้รหัสด้านบนโดยไม่ต้องใช้ nopassword ใน sudoers เช่น -> apache ALL=(root) /usr/bin/iptables.sh ; ผลลัพธ์ของอะไร
alvan avatar
jp flag
มันเป็น apache 15 ตัวอักษร

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา