如何在Linux上重置/ usr / bin / sudo的所有权?

我不小心改变了/usr/bin/sudo所有权给我的当前用户(我也在/usr目录下做了一些其他的东西)。 我不能改变他们之中的任何一个,因为我需要/usr/bin/sudo所有权才能成为root用户。 我没有root权限,因为我在运行linux的Amazon EC2实例上。

这就是我所做的(愚蠢的我知道):

 sudo chown -R ec2-user.ec2-user /usr/ 

在这个过程中,我还弄了大量的其他东西,但是我认为如果我可以重置/usr/bin/sudo所有权

请帮忙。 我是Linuxpipe理员全新的,并且正在从命令行做所有事情。

我有一个单独的挂载EBS的重要数据,但是我对服务器pipe理员来说很糟糕,它可能需要我整整一天来设置一个新的实例,但是恐怕这是我唯一的select。

(重复我的SE答案)

你在EBS卷上运行吗? 你能负担得起closures实例几分钟吗?

如果这样做,则可以临时停止当前实例,启动另一个实例,安装第一个实例的EBS卷并修复其权限,然后卸载它并重新启动第一个实例。

如果你有任何通过cron运行的脚本,并且你仍然可以编辑它们,你可以添加下面的代码。

 # chown root.root /usr/bin/sudo # chmod u+s /usr/bin/sudo 

否则,当你弄清楚如何在机器上取得root权限时,你需要执行这些命令。

(改写这个,因为显然这是一些人不理解的)

Linux内核通告_POSIX_CHOWN_RESTRICTED为true,它被定义为只有root可以使用chown() 。 如果设置为false,则这意味着普通用户可以更改文件的所有权。

chown(3)措辞表明,可以在内核级别更改_POSIX_CHOWN_RESTRICTED ; 但是Linux并没有真正允许它被修改,所以根本没有办法让非root用户chown他们自己的文件。

经过详尽的search,我找不到解决这个问题的办法,不得不重build服务器。

重新启动计算机并在BIOS启动后按住F8以启动GRUB启动菜单。 如果你使用一个stream行的Linux发行版(像Ubuntu这样的软件),那么应该有一个在恢复模式下启动linux的选项(如果你使用GRUB 2,可以在“Advanced Options”子菜单下find该选项)。 在恢复模式下启动linux,(如果您使用stream行的发行版),最终应该提供一个简短的恢复选项菜单。 首先,selectfsck恢复选项重新挂载/以读写模式,并将所有其他文件系统挂载到fstab中。 然后select将给你一个根提示的选项。 由于shell以root身份login,因此所有命令都将以root身份运行,而不需要使用sudo命令。 您可以使用它来修复/ usr / bin / sudo上的权限:

 chown root:root /usr/bin/sudo chmod u+s /usr/bin/sudo exit 

完成之后,可以select“恢复正常启动”选项(或者只是在没有计算机的情况下重新启动计算机)并正常login,然后使用sudo命令修复其余的权限。 为此,您通常必须从具有“足够接近”权限的另一台计算机复制权限。 当我手动安装了一个使用rsync和-a标志创build的交叉编译器时,我遇到了这个问题。 当我意识到我希望交叉编译器的文件被修改为root而不是我的时候,我愚蠢地运行chown -R root:root / usr,并且偶然地删除了我的权限。 幸运的是,我有一台同样的发行版的笔记本电脑,并且安装了几乎相同的软件包。 我复制了它的权限,并在一小时内解决了我的权限问题。