使用 su 在另一个用户中使用屏幕

tot*_*aka 6 su users gnu-screen

所以,如果我这样做:

su -c 'screen -dmS screenname script to run' - user to run as
Run Code Online (Sandbox Code Playgroud)

它不会工作。如果从 root 执行 screen 命令正在工作,所以那里没有问题。

如果我做:

su - user
screen
Run Code Online (Sandbox Code Playgroud)

我得到:

Cannot open your terminal '/dev/pts/0' - please check.
Run Code Online (Sandbox Code Playgroud)

怎么了?

编辑:我一直在四处寻找,似乎找不到解决这个问题的任何好办法。

我会做下一个最好的事情:以 root 身份运行屏幕。

Jen*_*y D 5

原因是当您登录时,您会得到一个 tty,在您的情况下,它当前称为 /dev/pts/0。您是唯一可以访问该 tty 的人,否则其他用户可能会在您工作时干扰您的会话。(当然,root 也有访问权限,因为 root 总是可以访问所有内容。)

当你对别人 su 时,你仍然保留自己的 tty - 因为那是你的东西将被显示的地方。但是现在您希望您起诉的其他用户能够接管您的 tty 并开始在其中显示他们自己的内容。

如果您信任服务器上的其他所有人,或者至少是您要起诉的其他用户,您可以让您的 tty 对所有人都可写,或者将您自己和该其他用户添加到一个组中,并使其可写给该组。或者你可以自己启动屏幕,然后从里面 su 代替。