我最近更新了我的服务器上的屏幕,由于某种原因,作为普通用户login,我不能再创build一个屏幕会话。 如果我运行sudo屏幕它的作品。
这可能是一个权限错误的地方,但我不是在哪里可以find它。
任何帮助将不胜感激。
更新:
我在Ubuntu Server 9.04中使用apt-get升级升级屏幕,我刚刚删除并清除它,然后重新安装。 它仍然允许我创build一个屏幕作为根,但导致与普通用户的空白屏幕。 我试图从源代码构build,并做了一个错误的过载(太多张贴在这里)。 然后我可以创build一个屏幕,但是当我去的时候,我在屏幕上创build了另一个屏幕(shell?),它是空白的。 试图在4.0.3上从源代码构build
屏幕通常安装setuid-root – 如果它失去了它的setuid位,它可以以有趣的方式打破。
你怎么去更新屏幕? 这可能是一个供应商提供了一个坏的包,但从源代码生成/安装不应该有这个问题。
如果屏幕突然失去了setuid位,我的偏执感会刺痛,除非我确定屏幕二进制文件是原始的和不受干扰的,否则我会非常谨慎的重置它。 屏幕运行了很多,给一个可能妥协的二进制setuid根权力可以真的毁了你的一天…
用户运行screen需要访问他正在工作的控制台的/dev/pts的权限。
如果您以root身份login到控制台,然后以普通帐户身份login到控制台,则通常将失去对正在处理的客户端的访问权限。
作为普通用户,请运行ps并查看进程的第二个字段(TTY)。 它应该是“pts / N”(N是一个数字)。 然后,执行ls -l /dev/pts/N并validation普通用户是否有权访问该文件。
如果他没有访问权限,可以考虑扩大/ dev / pts / N的访问权限(例如,login到控制台的帐户)。 正如voretaq7指出的那样,请记住这个安全性的含义:权限是这样设置的。