ฉันได้ติดตั้งหน้าจอใน Fedora 19 แล้วเมื่อฉันทดสอบคำสั่งว่ารูทผ่าน SSH มันจะทำงานได้อย่างสมบูรณ์ ตัวอย่างเช่นถ้าฉันป้อนscreen
เทอร์มินัลอีมูเลเตอร์ใหม่เริ่มทำงานและรอคำสั่ง ฉันสามารถแยกมันออกได้ ฯลฯ อย่างไรก็ตามเมื่อฉันพยายามทำเช่นเดียวกันเมื่อฉันเข้าสู่ระยะไกลผ่าน SSH ในฐานะผู้ใช้มาตรฐานคำสั่งจะยุติทันที [screen is terminating]
ข้อความเดียวที่ผมเห็นคือ
มีใครบางคนเคยมีปัญหานี้หรือไม่? มันเกี่ยวข้องกับการอนุญาตที่ไม่ดีหรือไม่?
ปรับปรุง:
$ strace -e trace=file screen
execve("/usr/bin/screen", ["screen"], [/* 23 vars */]) = 0
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libutempter.so.0", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libcrypt.so.1", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libpam.so.0", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libfreebl3.so", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libaudit.so.1", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
open("/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 3
open("/usr/lib/locale/UTF-8/LC_CTYPE", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
access("/home/steam/.nethackrc", F_OK) = -1 ENOENT (No such file or directory)
readlink("/proc/self/fd/0", "/dev/pts/0", 4095) = 10
stat("/dev/pts/0", {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
lstat("/dev/pts/0", {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
open("/var/run/utmp", O_RDONLY) = 3
open("/etc/nsswitch.conf", O_RDONLY|O_CLOEXEC) = 3
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libnss_files.so.2", O_RDONLY|O_CLOEXEC) = 3
open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 3
open("/etc/shadow", O_RDONLY|O_CLOEXEC) = -1 EACCES (Permission denied)
readlink("/proc/self/fd/0", "/dev/pts/0", 4095) = 10
stat("/dev/pts/0", {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
stat("/dev/pts/0", {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
lstat("/dev/pts/0", {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
stat("/var/run/screen", {st_mode=S_IFDIR|0775, st_size=60, ...}) = 0
Directory '/var/run/screen' must have mode 777.
+++ exited with 1 +++
ฉันได้ลองเปลี่ยนการอนุญาตเป็น 777 แล้ว แต่เมื่อฉันดำเนินการscreen
ฉันจะได้รับ:
ไดเรกทอรี '/ var / run / screen' ต้องมีโหมด 775
ดังนั้นฉันจึงย้อนกลับการเปลี่ยนแปลงของฉัน
strace -e trace=file screen
เพื่อตรวจสอบว่ามันล้มเหลวในการเข้าถึงไฟล์ หรือใช้tmux
เป็น work-around มันทำงานเหมือนกันยกเว้นจะใช้ ^ b แทน ^ a