我正在尝试运行一个应用程序系统里面的服务屏幕容器。
尝试启动服务时失败并显示错误消息:
screen[11648]: Directory '/run/screen' must have mode 777.
它看起来像是一个简单的错误,但有一个简单的解决方案。当我相应地更改权限时,/run/screen
服务启动没有问题。
但现在,当我尝试附加屏幕会话(或screen
以普通用户或 root 身份以任何方式运行)时,我收到错误消息。
Directory '/run/screen' must have mode 775.
更改权限显然让我再次遇到第一个错误,从那里我可以整天在屏幕上玩猫捉老鼠的游戏。
Screen version 4.05.00 (GNU) 10-Dec-16
操作系统是Debian 9(服务器)。
这是一个错误还是我做错了什么?无论如何,我该如何让它发挥作用?
答案1
我在 Debian 9 上的 systemd 下尝试设置我的世界服务器时遇到了同样的问题。据我所知,没有修复,但这里有一个部分解决方法。我将这些行添加到单元配置文件中:
PermissionsStartOnly=true
ExecStartPre=/bin/chmod 777 /run/screen
因此,这将根据服务启动所需的权限调整权限。每当我需要自己使用屏幕时,我都可以将权限设置回 775。
答案2
更改NoNewPrivileges=true
为NoNewPrivileges=false
(如果该部分中不存在则添加该行[Service]
)。这将允许 screen 像通常一样以 setgid 模式运行,因此它不会请求 777 权限。