我和几个朋友一起运行服务器已经有一段时间了,我们都共享服务器,尽管我是实际支付服务器费用的人。
我以 root 用户身份运行我所有的东西。
(我知道,这是个坏主意,可能会造成无法恢复的损坏,但这是我在设置服务器时最容易做的事情,如果我想进入别人的文件,我不必担心权限,并且他们无法通过大多数方法进入我的文件)
我不希望任何普通用户能够进入 root 用户或 /root 目录,而无需使用 root 帐户的密码实际登录到 root。我已经被su - root
禁用了,但仍然有sudo -i
,sudo -s
和能力sudo cp -R /root ~/rootStuff
,我不希望他们能够进入实际的 root 帐户或目录,真正需要做的就是在他们自己的主目录,以及每个人都可以定期访问的东西/opt
,, /etc
, 等等。
不想完全把 sudo 从他们身上拿走,因为这意味着他们必须在服务器周围做的任何事情,比如正确安装软件包,都会涉及到我,但如果这是最好的方法,我可以做到。
这并不是说我不信任我服务器上的人,我相信,他们是好朋友,我只是在 /root 中存储了一些非常敏感的东西。
他们真正需要能够 sudo 的唯一命令是 sudo apt
,也许还有其他一些随机命令,但是当我到达那里时,我可以处理。
服务器的版本是 18.04.3 LTS,如果这有很大的不同的话。另外,服务器是托管公司的专用服务器,我只有 ssh,没有物理访问,也没有可视化。
给每个人自己的 LXD 容器,然后将它们锁定在主机服务器之外。
容器看起来和感觉起来都像是一个完整的系统(除非您深入研究内核),包括 SSH 和 apt。您的每个朋友都可以拥有自己的容器,安装/删除/自定义他们喜欢的任何东西。它占用了真实 VM 资源的一小部分。
授予 sudo 特定命令的权限,如下所示:
这意味着用户 bob,从任何终端 (ALL) 都可以 sudo 命令 apt 和 apt-get。
您还会
bob ALL = (ALL) foo, bar
在网上看到很多,这意味着让 bob 作为所有用户从所有终端运行。无论如何,我认为像任何其他用户一样使用 apt 没有任何用处。如果您需要让您的朋友访问更多程序,您可以使用逗号添加更多项目。