![Ubuntu 允许用户访问 root 的“屏幕”命令,同时限制他们可以附加到哪些屏幕](https://linux22.com/image/666246/Ubuntu%20%E5%85%81%E8%AE%B8%E7%94%A8%E6%88%B7%E8%AE%BF%E9%97%AE%20root%20%E7%9A%84%E2%80%9C%E5%B1%8F%E5%B9%95%E2%80%9D%E5%91%BD%E4%BB%A4%EF%BC%8C%E5%90%8C%E6%97%B6%E9%99%90%E5%88%B6%E4%BB%96%E4%BB%AC%E5%8F%AF%E4%BB%A5%E9%99%84%E5%8A%A0%E5%88%B0%E5%93%AA%E4%BA%9B%E5%B1%8F%E5%B9%95.png)
我正在尝试允许某个用户连接到 root 用户拥有的屏幕。当另一个用户连接到 时"screen -ls"
,它会显示"No Sockets found in /var/run/screen/S-USERNAMEHERE"
。
除此之外,是否可以将用户限制在单个屏幕上?例如,我不想用户1附加到屏幕1,但我希望它们能够附着到屏幕2。
谢谢,托比。
答案1
据我所知,您可以screen
一次与一位用户共享。
为了实现此功能,您必须启用 SELinux,并且 screen 必须以suid
root 身份运行 - 这两者都是默认的
主持人
1. 创建会话
首先,创建一个新的屏幕会话:
$ screen -d -m -S session_name
附加到它:
$ screen -r session_name
2. 开启多用户支持
在screen'; type
Ctrl+a` 中输入
:multiuser on
或者在会话之外screen
输入:
$ screen -S session_name -X multiuser on
3. 授予用户访问权限
在屏幕内,输入Ctrl+a
并键入:
:acladd guest_username # the username to share your screen with
或者在会话之外screen
输入:
$ screen -S session_name -X acladd guest_username
您可以以编程方式运行此行以授予用户列表的访问权限。
4. 分享会议信息
您可以与访客分享您的用户名<host_username>
和screen
会话名称,以便他们可以连接。<session_name>
点击后,Ctrl+a d
您可以离开会话而无需关闭screen
客人
有了访问权限、屏幕会话名称和主机用户名,访客就可以连接到屏幕会话:
screen -x host_username/session_name
访客现在应该可以访问主持人的screen
会话