คำสั่ง: ต้องรันจากเทอร์มินัล


9

ฉันมีบัญชีโฮสติ้งที่ใช้ร่วมกันฉันเข้าสู่ระบบโดยใช้ ssh เมื่อฉันพิมพ์เช่นsuฉันมีผลลัพธ์นี้: su: must be run from a terminal

ข้อผิดพลาดนี้สัมพันธ์กับความจริงที่ว่าฉันไม่มีสิทธิ์เพียงพอหรืออย่างอื่นหรือไม่


โดยปกติฉันคาดหวังว่าข้อผิดพลาดนั้นจะบ่งบอกว่าไม่มีการจัดสรร TTY สำหรับการเชื่อมต่อ แต่นั่นไม่สมเหตุสมผลหากคุณกำลังเชื่อมต่อผ่าน SSH และรับเชลล์ คุณสามารถแบ่งปันขั้นตอนที่แน่นอนที่คุณใช้เพื่อรับข้อผิดพลาดนั้นเริ่มต้นด้วยssh -F /dev/null user@hostจากระบบภายในเครื่องของคุณหรือไม่? ( -F /dev/nullสาเหตุที่ทำให้ระบบหรือการกำหนดค่า SSH ในระบบของผู้ใช้ถูกเพิกเฉย) หากคุณไม่ได้รับอนุญาตให้ใช้suนั่นจะทำให้เกิดข้อความแสดงข้อผิดพลาดที่ชัดเจนมากขึ้น (แม้ว่าฉันจะไม่จำข้อความที่แน่นอนและไม่มี ระบบตั้งค่าที่ฉันสามารถลอง)
CVn

1
อาจมีการเชื่อมต่อกับ securetty (5) หรือไม่? กล่าวอีกนัยหนึ่งคือ tty ของ ssh session ที่แสดงรายการใน / etc / securetty? (prepend / dev /)
D McKeon

คุณพูดเช่นsuคุณจะได้รับข้อผิดพลาดนี้สำหรับคำสั่งอื่น ๆ ?
ctrl-alt-delor

คำสั่งttyแสดงอะไร คุณเข้าสู่ระบบด้วย ssh แล้วพิมพ์suหรือคุณกำลังทำงานอยู่ssh su? คุณใช้เทอร์มินัลอีมูเลเตอร์ใด? คุณควรเข้าใช้รูทหรือไม่?
Gilles 'หยุดความชั่วร้าย'

พยายามที่จะตอบทุกคำถาม: ฉันเข้าสู่ระบบด้วย SSH ( ssh -l login@host hostฉันสามารถเข้าสู่ระบบเฉพาะเมื่อใช้คำสั่งนี้) กว่าชนิดsu(คำสั่งอื่น ๆ ทำงานตามปกติ) เมื่อฉันพิมพ์ฉันได้:tty not a tty
4m1nh4j1

คำตอบ:


4

ลองใช้-tตัวเลือกเพื่อ ssh -ttหากไม่ได้ผลลอง

-t บังคับการจัดสรรแบบหลอก สิ่งนี้สามารถใช้เพื่อรันโปรแกรมบนหน้าจอโดยพลการบนเครื่องระยะไกลซึ่งมีประโยชน์มากเช่นเมื่อใช้งานบริการเมนู -tตัวเลือกหลายตัวบังคับให้มีการจัดสรร tty แม้ว่า ssh จะไม่มี tty ในเครื่อง


ฉันลองssh -tl root@host hostแล้วใช้ double t แต่ได้ผลเหมือนกัน PS: มันเป็นที่กล่าวถึงในเอกสารเพื่อเข้าสู่ระบบด้วย SSH ssh -l login@host hostฉันควรจะใช้คำสั่งเช่นนี้
4m1nh4j1

ทำไมคุณเข้าสู่ระบบด้วยรูท? -lและคุณไม่จำเป็นต้อง
ctrl-alt-delor

ฉันใช้-lเพราะฉันพบว่าไม่มีการเพิ่มฉันไม่สามารถเข้าสู่ระบบได้ ฉันสามารถดูสิ่งนี้ได้ในเอกสารdtcsupport.gplhost.com/UserDoc/FRHow-Works-clientSSH-System (หน้าเดียวที่ฉันพบคือภาษาฝรั่งเศส) ถ้าฉันไม่ใช้-lssh ไม่ยอมรับรหัสผ่านของฉัน
4m1nh4j1

ฉันสร้างบัญชี ssh โดยใช้ " root" เป็นข้อมูลเข้าสู่ระบบดังนั้นฉันจึงใช้root@hostสำหรับ ssh
4m1nh4j1

เข้าสู่ระบบด้วยรูทถือว่าเป็นอันตราย: คนส่วนใหญ่ที่เกี่ยวข้องกับความปลอดภัยปิดใช้งานการเข้าสู่ระบบรูท คุณสามารถได้รับสิทธิ์พิเศษเมื่อคุณเข้าสู่ระบบ (ฉันแนะนำsudo) หากคุณปิดใช้งานการพิสูจน์ตัวตนด้วยรหัสผ่านด้วยเหตุนี้จึงบังคับให้ใช้การพิสูจน์ตัวตนด้วยคีย์ดังนั้นคุณจะต้องใช้รหัสและรหัสผ่านเพื่อไปที่รูท
ctrl-alt-delor
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.