无root运行屏幕

dig*_*tal 4 ubuntu gnu-screen

我最近更新了服务器上的屏幕,出于某种原因,以普通用户身份登录时,我无法再创建屏幕会话。如果我运行 sudo screen 它就可以了。

这可能是某个地方的权限错误,但我找不到它。

任何帮助将不胜感激。

更新:

我在 Ubuntu Server 9.04 中使用 apt-get upgrade 升级了屏幕,我刚刚删除并清除了它,然后重新安装。它仍然允许我以 root 用户身份创建一个屏幕,但会以普通用户身份创建一个空白屏幕。我尝试从源代码构建,并在执行过程中产生了大量错误(太多无法在此处发布)。有趣的是,我可以创建一个屏幕,但是当我去的时候,我在屏幕上创建了另一个屏幕(外壳?),它是空白的。尝试在 4.0.3 上从源代码构建

vor*_*aq7 6

Screen 通常安装 setuid-root -- 如果它丢失了 setuid 位,它会以有趣的方式中断。

你是怎么更新屏幕的?供应商可能提供了一个坏包,但从源代码构建/安装不应该有这个问题。
如果 screen 突然丢失了它的 setuid 位,我的偏执感觉会刺痛,除非我确定 screen 二进制文件是原始的和不受干扰的,否则我会非常谨慎地重置它。Screen 运行很多,并且提供可能受损的二进制 setuid-root 权限真的会毁了你的一天......

  • +1 偏执的感觉 (2认同)

fli*_*ght 6

运行的用户screen需要访问/dev/pts他正在处理的控制台的权限。

如果您以 root 身份登录控制台,然后su以普通帐户登录,您通常将失去对pts正在处理的内容的访问权限。

作为普通用户,请运行ps并查看进程的第二个字段 (TTY)。它应该读作“pts/N”(N 是一个数字)。然后,执行ls -l /dev/pts/N并验证普通用户是否可以访问该文件。

如果他没有访问权限,您可以考虑扩大/dev/pts/N 的访问权限(即使用登录控制台的帐户)。正如 voretaq7 指出的那样,请记住这对安全的影响:权限设置是有原因的。