当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 问答 :您可以修改SELinux (不是Ubuntu)以限制root访问权限:

如果你的问题是“我现在可以轻松安全地做到这一点吗?” 答案是不。 如果你的答案是“我准备好了解SELinux,那么我的发行版会变得肮脏并且忍受很多不能正常工作的东西”,答案是可以比你的平均安装更多地限制root。 也就是说,这绝不会让你无法利用漏洞 – 它不会使用户无法在软件或物理上绕过这种额外的访问控制。

为了使其他答案已经完全明确说明:其他用户不仅“根据你”(Videonauth的答案), 他们也可以成为你(切换到你的用户帐户)

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

你可能知道

 sudo su 

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

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

在没有用户名的情况下调用,su默认为成为超级用户。

所以这有效

 sudo su root 

如果你没有将root重命名为其他东西。

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

所以通过执行

 sudo su  

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

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

有关详细信息,请参阅超级用户对此问题的接受答案, 此处还有Unix和Linux 。 有关限制/etc/sudoers权限的建议,请参阅slm的答案 。

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

 sudo exec su - bar 

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

如果您在安装Ubuntu时标记了encrypt home folder ,则以前的答案不能完全适用。 这保证了每个用户的加密主文件夹,即使没有该主文件夹的用户/所有者的正确密码,root也无法读取数据。 您的同事需要更改密码才能阅读文件,这些文件会被注意到。

当然,人们是正确的,在机器上共享有价值或敏感的数据,并且最重要的是与同事进行根访问,这不是一个好主意。

根据这些数据的价值,我建议您自己索取机器。