我正在尝试从 php 向屏幕会话发送输入。到目前为止,我已按照此处说明的步骤进行操作
运行 GNU Screen suid root 是使多用户模式工作的唯一方法吗?
并且我在 screenrc 文件中设置了“multiuser on”和“acladd www-data”(或者,在另一个我使用 -c 选项的文件中,但仍然如此)
我现在的问题是,每当我尝试通过 php 访问屏幕时
exec('screen -S user/session -p 0 -X stuff "test"'."\n", $ret);
我收到错误:
Cannot opendir /var/run/screen/S-user: Permission denied
答案1
权限,权限,权限
运行 PHP 解释器的用户没有访问您正在运行的屏幕会话所需的权限。
您已授予用户 www-data 使用屏幕的权限,但是,对屏幕文件的访问被拒绝。尝试修改文件的权限以允许 www-data 用户读取/写入。