Raf*_*Raf 8 permissions chown ownership
我需要编辑一个.config
文件(我知道它不会造成这些问题,只是为了清除它)并且它不会让我保存它,所以我/etc
使用命令获得了所有内容的所有权,chown -hR username /etc
这让我编辑.config
文件,但现在每当我尝试安装任何软件包或使用任何 sudo 命令时,它都不起作用(我已经检查了 sudoers.d 中的 sudo 文件中的错误,并且没有任何问题)。
那么如何将其归还给以前的所有者呢?
ter*_*don 16
由于 中的某些文件/etc
可能不属于root
,如果您想避免重新安装,您可以执行以下操作:
启动到实时系统并挂载包含该/etc
目录的分区。例如,如果您的/
分区是/dev/sda1
,您可以从实时系统执行此操作:
sudo mount /dev/sda1 /mnt
Run Code Online (Sandbox Code Playgroud)将所有文件的所有权设置为root
:
sudo chown -R root /mnt/etc
Run Code Online (Sandbox Code Playgroud)此时所有文件都属于root。这可能是您需要的,但其中的某些文件/etc/
可能具有不同的所有权。如果这些文件在实时系统中也不归 root 所有,您可以使用它们作为参考来更改已安装系统的权限:
shopt -s globstar
liveSystem="/etc"
cd /mnt/etc
for file in **/*; do
[ -e "$liveSystem/$file" ] &&
echo sudo chown --reference "$liveSystem/$file" "$file"
done
Run Code Online (Sandbox Code Playgroud)
如果您还更改了权限,请改为执行以下操作:
shopt -s globstar
liveSystem="/etc"
cd /mnt/etc
for file in **/*; do
[ -e "$liveSystem/$file" ] &&
echo sudo chown --reference "$liveSystem/$file" "$file" &&
echo sudo chmod --reference "$liveSystem/$file" "$file"
done
Run Code Online (Sandbox Code Playgroud)
那只会打印将要运行的命令。一旦您看到了它的作用并且对它的正确性感到满意,请删除它echo
以使其实际运行命令。
现在这将遍历所有文件,包括所有权root
在两个目录中的文件,但这并不重要。您可以编写更复杂的方法,但这不值得,因为这需要几秒钟。
重新启动您的机器:一切都应该恢复正常。
重要提示:如果您安装了不在实时系统上并且其文件/etc
不属于root
. 如果是这种情况,您要么需要找到您安装的内容并重新安装它,要么您可能需要重新安装系统。
启动进入恢复并发出以下命令:
mount -o remount,rw -n /
chown -R root: /etc
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10126 次 |
最近记录: |