无需 sudo 命令即可更改所有权

The*_*man 5 sudo ownership ubuntu-server ubuntu-12.04

我正在设置一个 Ubuntu 服务器,我想允许 FTP 客户端访问该/etc/文件夹。所以我使用chown命令允许我的帐户使用它。然而,这改变了sudo它的所有权并破坏了它。我无法运行任何命令,sudo因为所有者不是 root,我无法更改所有者,因为我必须使用sudo.

我尝试以 root 身份启动到恢复模式并运行chown -R root /etcchown -R 0 /etc但都没有奏效。

有没有办法在不重新安装 Ubuntu 的情况下解决这个问题?

hoo*_*enz 3

重新启动,按住右shift键调出grub2启动菜单。然后按照这些说明进入单用户模式。

如何从 grub 启动到单用户模式?

在单用户模式下,您可以修复文件权限,因为您自动成为 root 用户。

一般来说,如果只是文件所有权发生了变化。你可以运行:

chown -R root:root /etc
Run Code Online (Sandbox Code Playgroud)

这会将所有权和组更改回默认根。

我这里有一个 ubuntu 服务器 12.04 LTS,/etc 下有少量具有不同组所有权的文件/目录。除此之外,所有文件均归 root 所有。具有不同组所有权的文件是:

/etc:
-rw-r----- 1 root daemon   144 Oct 26  2011 at.deny
drwxr-s--- 2 root dip     4096 Aug 22 12:01 chatscripts
-rw-r----- 1 root shadow   697 Oct 31 12:58 gshadow
-rw-r----- 1 root shadow  1569 Oct 31 13:00 shadow

/etc/chatscripts:
-rw-r----- 1 root dip  656 Aug 22 12:01 provider
Run Code Online (Sandbox Code Playgroud)

因此,您可以在最初运行 chown 之后对这些文件运行 chgrp 命令。然后你应该让一切恢复到原来的样子。普通用户的时间不应超过 10 分钟。

e.g. 
  chgrp shadow /etc/shadow
Run Code Online (Sandbox Code Playgroud)

哦,还有最后一步。完成更改后重新启动。

/> reboot
Run Code Online (Sandbox Code Playgroud)