ใช้หน้าจอ gnu เมื่อ ssh'ed เป็นผู้ใช้ แต่ su เป็นอีกหน้าจอหนึ่ง


8

ด้านล่างเป็นสิ่งที่เกิดขึ้นเมื่อพยายามใช้หน้าจอ gnu มันใช้งานได้ดีจนกระทั่งฉันเป็นผู้ใช้รายอื่น จากนั้นฉันได้รับCannot open your terminal '/dev/pts/7' - please check.ข้อผิดพลาด

l413:~$ ssh sbird@example.com
sbird@example.com password: 
sbird@example:~$ screen
[screen is terminating]
sbird@example:~$ su - gradplan
Password: 
gradplan@example:~$ screen 
Cannot open your terminal '/dev/pts/7' - please check.
gradplan@example:~$ 

ฉันจะเข้าสู่ระบบในฐานะ sbird, su ถึง gradplan และยังคงใช้หน้าจอได้อย่างไร

คำตอบ:


4

หากต้องการตอบคำถามของคุณโดยตรง:

ssh sbird@example.com su grandplan -c “script /dev/null -qc \"screen\""

อย่าเปลี่ยนการอนุญาตใน / dev / pts / X ของคุณ - เพียงแค่แนะนำช่องโหว่ความปลอดภัยที่ไม่จำเป็น


11

ประเภทก่อนที่จะเริ่มscript /dev/nullscreen

$ su - gradplan
$ screen
Cannot open your terminal '/dev/pts/15' - please check.
$ script /dev/null
Script started, file is /dev/null
$ screen
# do whatever inside the screen
[detached]
$

ref: ServerFault: ทำไมการเปลี่ยนเส้นทาง 'สคริปต์' ไปยัง / dev / null / อนุญาตให้ 'หน้าจอ' ทำงานในขณะที่ผู้ใช้อื่นเป็นผู้ใช้หรือไม่


สำหรับผู้อ่านในอนาคตฉันได้พบว่าการอยู่ภายในหน้าจอนั้นเป็นแนวปฏิบัติที่ดีกว่าจริง ๆ แต่เนื่องจากคำตอบนี้สิ่งที่ฉันขอให้ดีกว่าจริง ๆ ฉันยอมรับว่านี่เป็นคำตอบที่ถูกต้อง
Alexander Bird

1

ถ้าคุณ:

ls -l /dev/pts/7

คุณจะเห็นว่ามันเป็นของ sbird เมื่อคุณเปลี่ยนมาใช้ gradplan เขาไม่มี perms ที่จะแตะอุปกรณ์นั้น

คุณสามารถลองทำ

chmod a+rw /dev/pts/X

(X คือหมายเลข pts # ที่คุณกำลังเชื่อมต่ออยู่เนื่องจากจะเปลี่ยน) ก่อนที่คุณจะคัดกรอง

หรือคุณสามารถคัดกรองเป็น sbird จากนั้นในแต่ละหน้าต่างหน้าจอ su มี

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