ข้อผิดพลาด“ บัญชีนี้ไม่สามารถใช้งานได้ในขณะนี้” เมื่อพยายามใช้งาน


46

เกิดข้อผิดพลาดเมื่อฉันพยายามเชื่อมต่อ SSH:

$ ssh -p 22 www-data@x.x.x.x 
This account is currently not available

คำตอบ:


59

คุณได้รับThis account is currently not available.ข้อผิดพลาดเนื่องจากมีการwww-dataตั้งค่าเชลล์สำหรับผู้ใช้/usr/sbin/nologinและเป็นเหตุผลที่ดีมาก คุณไม่ควรเข้าสู่ระบบเนื่องจากwww-dataเป็นผู้ใช้ / กลุ่มพิเศษที่ใช้โดยเว็บเซิร์ฟเวอร์ไม่ใช่สำหรับการใช้งานเชลล์ปกติ

แก้ไข : มันเป็นความคิดที่ดีโดยเฉพาะอย่างยิ่งที่จะให้สิทธิในการsudo www-dataหาก Apache ตั้งใจให้ทำงานด้วยการอนุญาตรูทจะไม่มีกลุ่มเป็นของตัวเอง ด้วยการทำเช่นนี้คุณกำลังสร้างช่องโหว่ความปลอดภัยขนาดใหญ่ คุณได้รับการเตือน


5
นั่นไม่สร้างสรรค์มาก คุณคิดว่าข้อมูลอะไรที่ฉันควรเพิ่มเพื่อทำให้คำตอบนี้ดีขึ้น?
kraxor

4
@kraxor ถูกต้อง แต่ถ้าคุณต้องเข้าสู่ระบบในฐานะ root และเปลี่ยน / usr / sbin / nologin ใน / etc / passwd เป็น / bin / bash และจะให้สิทธิ์การเข้าถึงเชลล์ผู้ใช้ ฉันทำสิ่งนี้เมื่อใช้ไบนารี snap เป็นเว็บเซิร์ฟเวอร์ของฉัน www-data ถูกสงวนไว้สำหรับ nginx / apache บน Ubuntu ดังนั้นจึงไม่มีสถานะเข้าสู่ระบบ
engineerDave

4
@RyanNerd เป็นทางเลือกของคุณที่จะไม่ "ให้หนูเป็นเงิน $ เกี่ยวกับอึความปลอดภัย" การรันทุกอย่างเนื่องจากไม่แนะนำให้ใช้รูทแม้ใน Docker แน่นอนคุณสามารถกำหนดค่า Apache ให้ทำงานเป็นrootหรือเพิ่มเชลล์การเข้าสู่ระบบwww-dataแต่นั่นก็เหมือนกับการเปิดขวดไวน์โดยการแตกขวดเพราะคุณขี้เกียจและประมาทเกินกว่าที่จะใช้สกรูจุก
kraxor

@ kraxor ลิงก์ไปยังนักเทียบท่าล้าสมัยแล้ว ทุกอย่างยังคงเป็นของ root ใน Docker และยังคงเป็นปัญหาอยู่
RyanNerd

ฉันมีกรณีที่คล้ายกัน ฉันต้องการเรียกใช้ LibreOffice ในโหมด headless ในลักษณะที่สคริปต์ PHP สามารถเรียกใช้ในการแปลงเอกสารและสามารถเขียนไฟล์ลงดิสก์เป็น www-data ได้เนื่องจากไฟล์เหล่านี้ต้องถูกลบโดย www-data ในภายหลัง สคริปต์ PHP) เพื่อทำความสะอาด สิ่งนี้ (เปิดตัว LibreOffice แบบหัวขาดในฐานะผู้ใช้ www-data) ที่ใช้ในการทำงานใน Ubuntu รุ่นก่อนหน้านี้และฉันเข้าใจว่านี่เป็นการปรับปรุงด้านความปลอดภัยสำหรับรุ่นก่อนหน้านี้
ywarnier

56

ในขณะที่ฉันเห็นด้วยกับคนอื่น ๆ ที่อนุญาตให้เข้าสู่ระบบผ่าน SSH ผ่านผู้ใช้ข้อมูล www- เป็นความคิดที่ไม่ดีเมื่อคุณเข้าสู่ระบบด้วยผู้ใช้ปกติมันอาจมีประโยชน์ในการเรียกใช้หลายคำสั่งพร้อมกันกับชุดสิทธิ์ของ www- ผู้ใช้ข้อมูล ในกรณีนั้นสามารถรันได้

sudo su -l www-data -s /bin/bash

และคุณจะสามารถเข้าถึงไฟล์ของคุณในฐานะผู้ใช้ www-data


2
มีประโยชน์มากสำหรับการดีบักการอนุญาตสำหรับ daemon / ผู้ใช้บริการ
jmng

คุณเพิ่งบันทึกวันของฉันขอบคุณ! ฉันมีปัญหาในการเริ่มบริการ perl-fcgi เพราะสคริปต์เริ่มต้นไม่ได้ใช้-s /bin/bash
Couitchy

-1

คำถามแรกที่ฉันต้องถามคือคุณพยายามทำอะไรให้สำเร็จ

kraxor ถูกต้อง 100% คุณไม่ควร ssh เข้าสู่เซิร์ฟเวอร์ของคุณโดยใช้ผู้ใช้ Apache / Nginx ของคุณ การทำเช่นนี้เชิญแฮ็กเกอร์ทุกคนที่มีเซลล์สมองครึ่งเซลล์ลงในเซิร์ฟเวอร์ของคุณ

หากคุณต้องการเรียกใช้สคริปต์หรือโปรแกรมบางอย่างในฐานะผู้ใช้นั้นคุณสามารถลองsudo -u www-data yourscriptหรือคุณสามารถชั่วคราวchownไฟล์ให้กับผู้ใช้ที่มีสิทธิ์เข้าสู่ระบบ เป็นเพียงความคิดที่ไม่ดีที่แตกต่างกันเพื่อให้บัญชีนี้สามารถเข้าถึงได้


6
คุณควรรู้ว่าsu -มันไม่ทำงานสำหรับบัญชีที่ปิดใช้งานการเข้าสู่ระบบ
sorin

บัญชีใดถูกปิดใช้งาน มันพูดอะไรเกี่ยวกับบัญชีถูกปิดใช้งาน
TheStarvingGeek

1
ดีมี nologin หมายถึงการเข้าสู่ระบบ passwd พิการ :)
โซริน

1
เป็นบัญชีบริการไม่ใช่บัญชีที่ปิดใช้งานคุณสามารถเรียกใช้คำสั่งได้
TheStarvingGeek

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