我是系统管理员。系统的用户使用屏幕在后台运行他们的程序。但是,如果我在用户程序运行时将屏幕模式更改为 700 或 777,那么他们的程序就会停止。当用户运行
screen -r process_id
然后它显示该过程无法恢复。有人可以指导用户应该如何运行他们的程序,这样即使在屏幕 chmod 到 777 和 700 之后,他们的程序也不会停止。
我刚刚测试了它,屏幕上的默认权限是
-rwxr-sr-x 1 root utmp 421640 Sep 16 2012 /usr/bin/screen
所以,当你运行时很明显:
root@system:~# chmod 777 /usr/bin/screen
它成为了:
-rwxrwxrwx 1 root utmp 421640 Sep 16 2012 /usr/bin/screen
从可执行文件中删除 SGID 位。此处介绍了它的重要性: http ://en.wikipedia.org/wiki/Setuid 。Utmp在这里解释:http ://en.wikipedia.org/wiki/Utmp
换句话说,由于您在屏幕上取消设置 SGID 位,UTMP 将失去对屏幕可执行文件的权限,从而失去对屏幕会话的跟踪。
要将其更改回原始权限,您可以运行:
root@system:~# chmod 2755 /usr/bin/screen
最后一句忠告:请不要在不知道会产生什么影响的情况下更改系统可执行文件的权限。 您总是可以在一些虚拟/测试机器上尝试这些东西,以了解您的更改将对系统产生的影响。