ใน/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
เชลล์สำหรับผู้ใช้ www-data ถูกตั้งค่าเป็น / usr / sbin / nologin และมันถูกตั้งค่าด้วยเหตุผลที่ดีมาก
- https://askubuntu.com/a/486661/119754
[บัญชีระบบ] อาจเป็นช่องโหว่ด้านความปลอดภัยโดยเฉพาะหากเปิดใช้งานเชลล์:
ไม่ดี
bin:x:1:1:bin:/bin:/bin/sh
ดี
bin:x:1:1:bin:/bin:/sbin/nologin
- https://unix.stackexchange.com/a/78996/29001
เพื่อเหตุผลด้านความปลอดภัยฉันได้สร้างบัญชีผู้ใช้โดยไม่มีเชลล์ล็อกอินสำหรับเรียกใช้เซิร์ฟเวอร์ Tomcat:
# groupadd tomcat # useradd -g tomcat -s /usr/sbin/nologin -m -d /home/tomcat tomcat
- http://www.puschitz.com/InstallingTomcat.html
ในขณะที่โพสต์เหล่านี้มีข้อตกลงเป็นเอกฉันท์ว่าการไม่ให้เชลล์เข้าสู่ระบบจริงแก่ผู้ใช้ระบบนั้นดีต่อความปลอดภัยไม่ใช่หนึ่งในนั้นแสดงเหตุผลที่อ้างสิทธิ์นี้และฉันไม่สามารถหาคำอธิบายได้ทุกที่
การโจมตีใดที่เราพยายามปกป้องตนเองโดยไม่ให้เชลล์ล็อกอินจริงแก่ผู้ใช้