/ usr / sbin / nologin เป็นเชลล์ล็อกอินให้บริการเพื่อความปลอดภัยหรือไม่
ใน/etc/passwdไฟล์ของฉันฉันจะเห็นว่าwww-dataผู้ใช้ที่ Apache ใช้รวมถึงผู้ใช้ระบบทุกประเภทมีเปลือกล็อกอิน/usr/sbin/nologinหรืออย่างใดอย่างหนึ่ง /bin/falseตัวอย่างเช่นนี่คือการเลือกบรรทัด: daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin games:x:5:60:games:/usr/games:/usr/sbin/nologin www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin syslog:x:101:104::/home/syslog:/bin/false whoopsie:x:109:116::/nonexistent:/bin/false mark:x:1000:1000:mark,,,:/home/mark:/bin/bash ดังนั้นหากฉันพยายามที่จะสลับไปยังผู้ใช้เหล่านี้ (ซึ่งบางครั้งฉันต้องการที่จะทำเพื่อตรวจสอบความเข้าใจของฉันเกี่ยวกับการอนุญาตของพวกเขาและสิ่งที่อาจมีเหตุผลอื่นที่มีเหตุผลอย่างน้อยครึ่งทาง) ฉันล้มเหลว: mark@lunchbox:~$ sudo su www-data This account is currently not available. mark@lunchbox:~$ sudo su syslog mark@lunchbox:~$ แน่นอนว่ามันไม่สะดวกนักเพราะฉันยังสามารถเปิดตัวเชลล์สำหรับพวกเขาผ่านวิธีการเช่นนี้: mark@lunchbox:~$ sudo -u www-data /bin/bash www-data@lunchbox:~$ แต่นั่นทำให้ฉันสงสัยว่าจุดประสงค์อะไรที่จะให้บริการโดยการปฏิเสธผู้ใช้เหล่านี้เข้าสู่ระบบเชลล์ เมื่อมองไปรอบ ๆ อินเทอร์เน็ตเพื่อดูคำอธิบายหลาย ๆ คนอ้างว่าสิ่งนี้เกี่ยวข้องกับความปลอดภัยและทุกคนก็เห็นด้วยว่าเป็นความคิดที่ดีที่จะเปลี่ยนเชลล์ล็อกอินของผู้ใช้เหล่านี้ นี่คือชุดของคำพูด: การตั้งค่าเชลล์ของผู้ใช้ Apache ให้เป็นสิ่งที่ไม่ใช่แบบอินเทอร์แอคทีฟโดยทั่วไปแล้วเป็นวิธีปฏิบัติด้านความปลอดภัยที่ดี (จริงๆแล้วผู้ใช้บริการทุกคนที่ไม่จำเป็นต้องเข้าสู่ระบบแบบโต้ตอบควรตั้งค่าเชลล์ของพวกเขา - https://serverfault.com/a/559315/147556 …