การดำเนินการคำสั่งในฐานะผู้ใช้ nologin


43

ฉันเพิ่งตั้งค่าเซิร์ฟเวอร์ของฉันเพื่อให้ผู้ใช้ suPHP 'เสมือน' ไม่สามารถเข้าสู่ระบบได้โดยใช้บทความนี้

ปัญหาของฉันตอนนี้คือก่อนหน้านี้เมื่อฉันรันrakeคำสั่งสำหรับแอปพลิเคชัน Ruby on Rails ของฉันที่ทำงานบนเซิร์ฟเวอร์ฉันเคยsuเข้าไปwww-dataและรันคำสั่งจากที่นั่น - เห็นได้ชัดว่าฉันไม่สามารถทำเช่นนั้นได้อีกต่อไป

ในฐานะผู้ใช้รูทฉันจะรันคำสั่งเป็นผู้ใช้อื่นได้อย่างไรแม้ว่าพวกเขาจะเป็น nologin?


วิธีหนึ่งคือการเปิดเปลือกสำหรับผู้ใช้นั้น (ระบุเปลือกอย่างชัดเจน): sudo -u www-data bashดำเนินการคำสั่งของคุณและออกจากระบบ
cyberx86

@ cyberx86 วิธีแก้ปัญหาของคุณใช้การรักษาคุณช่วยส่งมันเป็นคำตอบสำหรับฉันได้ไหม?

คำตอบ:


50

วิธีหนึ่งคือเปิดใช้เชลล์สำหรับผู้ใช้นั้น (ระบุเชลล์อย่างชัดเจน):

sudo -u www-data bash 

นี้จะเปิดตัวเปลือก (ทุบตี) ในฐานะผู้ใช้ที่ระบุ จากนั้นคุณสามารถดำเนินการคำสั่งของคุณและออกจากระบบ (เพื่อกลับไปที่เปลือกก่อนหน้าของคุณ)


39

ในฐานะที่เป็นรูทคุณสามารถใช้su -s /bin/sh $user - -sตัวเลือกจะแทนที่เชลล์ที่กำหนดค่าไว้สำหรับผู้ใช้


1
ดูเหมือนว่าจะเป็นข้อผิดพลาดสำหรับฉันเสมอ

ใช้งานได้ดีสำหรับฉันไม่เคยมีปัญหา เมื่อเรียกใช้สคริปต์ที่มีไวยากรณ์ของ bash ต้องการ / bin / bash แทนที่จะเป็น / bin / sh
ekerner
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.