当前位置: 首页>>技术教程>>正文


当Ubuntu中存在两个sudo用户时,用户文件是否仍然是私有的?

, ,

问题描述

我和我的一位同事分享了我的个人Ubuntu PC。

我创建了另一个用不同密码的用户(他当然知道)并将其添加到sudoer列表中。

鉴于单个Ubuntu系统中有两个sudo用户:

  • 这些用户中的任何私有文件(由所有者和权限指定)是否仍然是私有的?

  • 我可以通过sudo命令修改同事的文件,甚至是sudo su,反之亦然?

最佳解决思路

如果你的同事在sudoers列表中,如果他想要的话,他就像你一样多(并且他也可以冒充你),然后他就可以看到一切。

如果您想要用户隐私,这是您可以拥有的最糟糕的设置。您应该明确地了解Linux上的用户管理是如何工作的。以下是您可以从以下几篇文章开始:

即便如此,如果某人有物理访问相关机器,没有隐私,他可以在启动时放入root shell并查看所有内容,如果这将受到密码保护,他仍然可以使用USB棒和以这种方式进去。

在这种情况下,最好的事情是适当的用户管理,root用户密码,加密驱动器和/或加密主目录。

次佳解决思路

一个简单的替代方法是将您的私人数据保存在加密文件中(可以是您加密的tar存档文件,例如使用gpg加密)。您必须记住在查看之后覆盖并删除明文文件。

共享计算机和sudo(root)访问权限的所有人的另一种选择是使用加密的home和加密交换。

但是,如果您同时登录,这将无济于事。事实上,即使使用加密的家庭,您也必须重新启动计算机才能以明文格式删除文件。


通常,安全性非常困难,具有加密磁盘的单个用户系统(带加密的LVM)将是保证安全的最简单方法。

  • 不要将敏感的私有数据存储在共享计算机中

  • 不要将私人数据存储在属于您雇主的计算机中

第三种解决思路

一旦你能够获得root权限(例如使用sudosu等)。您可以完全访问系统上的每个文件。

因此,具有sudo权限并且可以使用sudo bash成为root的用户都可以完全访问系统上的每个文件

根据SE-Security中的this Q&A:您可能可以修改SELinux(不是Ubuntu)以限制root访问:

If your question is “can I easily and safely do this now?” the answer is no. If your answer is “I am prepared to learn about SELinux, get down and dirty with my distribution and put up with quite a lot of things not working” the answer is it is possible to constrain root much more than your average install. That said, this does not in any way make you invulnerable to exploits – it does not make it impossible for a user to circumvent this extra access control either in software or physically.

第四种思路

为了使其他答案已经完全清楚地表明:其他用户不仅“像你一样根”(Videonauth的答案),他们也可以成为你(切换到你的用户帐户)。

这是因为使用超级用户权限,可以切换到任何帐户。

你可能知道

sudo su

如果root没有设置密码,这是打开root shell的一个选项(所以你不能直接以root用户身份登录)。

su是”switch user”的缩写。用户切换到了什么用户?没有说明,对吧?但是从手册页中我们可以了解到:

Invoked without a username, su defaults to becoming the superuser.

所以这有效

sudo su root

如果您没有将root重命名为其他内容。

如果您只是运行su <someuser>,系统将提示您输入密码。因此,如果您运行su root,则会提示您输入root密码(默认情况下Ubuntu中不存在该密码,因此您无法登录(请注意,未设置密码意味着无法通过密码登录)不同于密码是空字符串))。但是,如果您运行sudo su root,则会提示您输入自己的密码。而且你只是被sudo提示。一旦sudo收到您的密码,它就会以超级用户权限运行它作为参数接收的命令。由于可以在拥有超级用户权限时切换到任何帐户,因此不需要密码提示。

所以通过执行

sudo su <yourusername>

,另一个sudoer可以像你一样登录。

第五种思路

可以通过编辑sudoers文件(/etc/sudoers)来限制可以使用sudo权限升级运行的程序。

有关详细信息,请参阅this question on Super User的已接受答案,以及here on Unix and Linux。有关限制/etc/sudoers权限的建议,请参阅answer by slm

同时通过键入man sudoers检查sudoers man页面,不要忘记测试它。请记住,通过不受限制的sudo访问,用户可以完全模拟任何其他用户。例如,如果用户foo要运行该命令

sudo exec su - bar

然后,他们就可以充当用户bar,拥有该用户的所有权限。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/2856.html,未经允许,请勿转载。