有没有办法在只读模式下运行“屏幕”?

Naf*_*Kay 19 gnu-screen

我希望能够以screen只读方式检查现有会话的进度和输出,以防止由于用户错误而出现问题。有没有办法做到这一点?

Mic*_*zek 9

不幸的是,我认为答案是否定的。这个问题的提问者专门切换到tmux是因为它具有该功能(您-r在附加时传递标志),因此如果您可以选择切换多路复用器,这可能是您的最佳选择


Den*_*son 6

你可以试试:

aclchg username -w "#"
Run Code Online (Sandbox Code Playgroud)

如果您screen在多用户模式下运行(但在作为单个附加用户对其进行测试时,我无需执行任何特殊操作即可使其工作)。如果确实需要进入多用户模式,请使用multiuser on.

您可以使用*用户名来影响所有用户。

使用+w而不是-w启用写入模式。

来自man screen

aclchg 用户名许可列表
chacl 用户名许可列表

更改逗号分隔的用户列表的权限。权限位表示为“r”、“w”和“x”。前缀“+”授予权限,“-”删除它。第三个参数是逗号分隔的命令和/或窗口列表(由数字或标题指定)。特殊列表“#”指的是所有窗口,“?” 到所有命令。如果用户名包含单个“*”,则所有已知用户都会受到影响。当用户具有“x”位时,可以执行命令。当用户设置了“w”位并且没有其他用户获得此窗口的写锁时,用户可以向窗口键入输入。其他位当前被忽略。要从窗口 2 中的另一个用户撤回写锁:'aclchg username -w+w 2'。允许对会话进行只读访问:'aclchg username -w "#"'。只要屏幕上知道用户的名称,他就可以附加到会话并且(默认情况下)对所有命令和窗口具有完全权限。acl 命令、`at' 和其他命令的执行权限也应该被删除,否则用户可能能够重新获得写入权限。特殊用户名 nobody 的权限无法更改(请参阅“su”命令)。“Chacl”是“aclchg”的同义词。仅限多用户模式。和其他人也应该被删除,否则用户可能能够重新获得写入权限。特殊用户名 nobody 的权限无法更改(请参阅“su”命令)。“Chacl”是“aclchg”的同义词。仅限多用户模式。和其他人也应该被删除,否则用户可能能够重新获得写入权限。特殊用户名 nobody 的权限无法更改(请参阅“su”命令)。“Chacl”是“aclchg”的同义词。仅限多用户模式。


Tag*_*Tag 5

我找到了一种相当简单的解决方法,可以让人们安全地监控输出。

进入 screen 会话后立即运行以下命令:

echo /tmp/$STY
touch /tmp/$STY
chmod 0600 /tmp/$STY
script -a -f /tmp/$STY
Run Code Online (Sandbox Code Playgroud)

分离会话Ctrl-A d并遵循脚本输出,例如:

tail -f /tmp/10751.test
Run Code Online (Sandbox Code Playgroud)