以另一个用户身份使用 su 使用 screen

以另一个用户身份使用 su 使用 screen

因此,如果我这样做:

su -c 'screen -dmS screenname script to run' - user to run as

不行。如果以 root 身份执行,screen 命令是可以工作的,所以没有问题。

如果我做:

su - user
screen

我得到:

Cannot open your terminal '/dev/pts/0' - please check.

怎么了?

编辑:我一直在寻找但似乎找不到解决这个问题的好方法。

我将选择下一个最好的选择:以 root 身份运行屏幕。

答案1

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

当您对其他人执行 su 时,您仍保留自己的 tty - 因为您的内容将显示在那里。但现在您希望您正在 su 的其他用户能够接管您的 tty 并开始在其中显示他们自己的内容。

如果您信任服务器上的所有人,或者至少信任您要起诉的其他用户,则可以将您的 tty 设置为对所有人都可写,或者将您自己和其他用户添加到一个组,并使其对该组可写。或者,您可以以自己的身份启动屏幕,然后从其中执行 su。

答案2

更好的技巧

su - user
script /dev/null
screen

答案3

您可以按如下方式运行屏幕:

脚本-q-c“屏幕-RD”/dev/null

相关内容