Score:1

ไม่สามารถเปลี่ยนรหัสผ่านผู้ใช้ linux ด้วยสคริปต์ php

ธง ng
kbu

ฉันมีสคริปต์ php ต่อไปนี้สำหรับเปลี่ยนรหัสผ่าน: <?php error_reporting (E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); ini_set('display_error', จริง);

$cmd = 'sudo -u root sh -c \'/usr/bin/echo "ชื่อผู้ใช้:ผ่าน" | sudo /usr/sbin/chpasswd 2>&1\'';
exec($cmd,$output,$return_val);
print_r($เอาท์พุท);
ก้อง $return_val;
?>

สคริปต์นี้แสดงข้อผิดพลาดในเบราว์เซอร์:

pam_chauthtok() ล้มเหลว ข้อผิดพลาด: [1] => การล็อกโทเค็นการรับรองความถูกต้องไม่ว่าง [2] => chpasswd

แต่คำสั่ง

sudo -u root sh -c '/usr/bin/echo "ชื่อผู้ใช้:pass" | sudo /usr/sbin/chpasswd 2>&1'

ทำงานได้ดี ใครก็ได้โปรดให้คำแนะนำฉันที ทำไมฉันถึงพบข้อผิดพลาดข้างต้นในเบราว์เซอร์

ระบบไฟล์อยู่ในโหมด rw ไฟล์ /etc/{passwd,shadow} มีสิทธิ์ถูกต้อง

ขอบคุณล่วงหน้า

Michael Hampton avatar
cz flag
คุณเรียกใช้ PHP ได้อย่างไร
kbu avatar
ng flag
kbu
PHP ทำงานด้วย php-fpm
vn flag
คุณ... คงไม่ควรทำเช่นนี้
kbu avatar
ng flag
kbu
ฉันรู้คุณหมายถึงอะไร. ลูกค้าต้องการโซลูชัน ฉันพบวิธีแก้ไขและเตือนเกี่ยวกับปัญหาด้านความปลอดภัยที่จะเกิดขึ้น
kbu avatar
ng flag
kbu
และปัญหาก็อยู่ที่นั่น เพราะ strace แสดงว่าระบบไฟล์อยู่ในโหมดอ่านอย่างเดียว
Score:1
ธง ng
kbu

วิธีแก้ไขคือการแสดงความคิดเห็น ProtectSystem=เต็ม ใน php-fpm.service unit:

# ติดตั้งไดเร็กทอรี /usr, /boot และ /etc แบบอ่านอย่างเดียวสำหรับกระบวนการที่เรียกใช้โดยหน่วยนี้
#ProtectSystem=เต็ม
Michael Hampton avatar
cz flag
คุณสามารถเปลี่ยนเป็น `true' แทน ซึ่งจะอนุญาตให้เขียนถึง `/ etc` แต่ยังคงห้ามการเขียนไปยังไดเร็กทอรีที่มีชื่ออื่น
Score:0
ธง us

เบราว์เซอร์ php ทำงานโดยใช้ www-ข้อมูล ผู้ใช้

เพิ่มสิทธิ์สำหรับ www-ข้อมูล ใช้ ซูโด ผ่านเปลือกโดยใช้ visudo สั่งและต่อท้ายบรรทัดนี้

www-data ALL=(ALL:ALL) ทั้งหมด

ไวยากรณ์ของมันคือ

คำสั่ง user hosts=(users:groups)
kbu avatar
ng flag
kbu
ขอโทษที่ลืมพูดถึงที่นี่: ฉันให้สิทธิ์ sudo แล้ว สำหรับการทดสอบฉันมีบรรทัดต่อไปนี้: nginx ALL=(ALL) NOPASSWD: ALL แต่นั่นไม่ได้ช่วย
us flag
การเข้าถึง `sudo` ควรจำกัดเฉพาะคำสั่งที่จำเป็นเท่านั้น
Ajay Singh avatar
us flag
คุณเคยลองแบบเดียวกันกับ www-data แทน nginx หรือไม่
kbu avatar
ng flag
kbu
ไม่มีผู้ใช้ www-data
Ajay Singh avatar
us flag
ตกลง. คุณใช้ระบบปฏิบัติการใด ตรวจสอบแล้วหรือยังว่า บนเบราว์เซอร์ส่งคืน nginx?
kbu avatar
ng flag
kbu
OpenSUSE 15.2 ใช่ exec(...whoami...ls....ping...cat...) ทำงานทุกอย่าง

โพสต์คำตอบ

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