
我們正在嘗試為那些長時間保持螢幕會話並以某種方式規避會話逾時的用戶重寫一個嚴厲的螢幕會話殺手。
目前的方法是找到 screen 的 pid 並殺死它,看起來 screen 程式的編寫方式可以掛接到其他用戶會話中,但是當我嘗試以 root 身份執行任何操作時,screen 目錄是一個不同的目錄。猜測這是出於安全原因,但是有沒有辦法故意覆蓋它,以便我可以做類似的事情screen -r somedude/33333 -d -X quit
?作為根?
答案1
標準screen
實例是singleuser
,即每個實例只能由創建它的使用者存取。
若要允許多用戶screen
實例,您可能需要新增以下命令:
multiuser on
addacl root,<user1>,<user2>,...
到您的全域screen
配置,即/etc/screenrc
.
screen
此後的每個實例都應該是多用戶的screen
,即可以由 中指定的其他用戶附加addacl
;除非被使用者特定的命令覆蓋。
您可以列出使用者螢幕
$ find /var/run/screen -type s
/var/run/screen/S-<user>/<pid>.<tty>.<host>
並附加到另一個用戶的螢幕
$ screen -d -r <user>/<pid>
查看man screen
,客製化部分了解更多screenrc
。
請注意,每個用戶還可以screenrc
在文件中添加自己的特定於用戶的命令$HOME/.screenrc
,因此為其用戶禁用多用戶螢幕。