![主目录文件权限搞砸了,如何“重新开始”?](https://linux22.com/image/117142/%E4%B8%BB%E7%9B%AE%E5%BD%95%E6%96%87%E4%BB%B6%E6%9D%83%E9%99%90%E6%90%9E%E7%A0%B8%E4%BA%86%EF%BC%8C%E5%A6%82%E4%BD%95%E2%80%9C%E9%87%8D%E6%96%B0%E5%BC%80%E5%A7%8B%E2%80%9D%EF%BC%9F.png)
我使用 rsync 备份了整个主目录,并将备份移至新安装的 Linux 中。不知何故,我的文件权限完全搞砸了(所有文件均由用户“999”拥有,文件权限设置为777
)。
我跑得很快sudo chown -R username:username ~/
我跑得修复了我的音频遇到的一些问题,但现在我所有的纯文本文件(甚至电影和音乐)都被标记为可执行文件,其他用户可以查看我的文件等。
如何将我的文件权限恢复到“正常”状态?从备份恢复是不可能的,因为备份也破坏了权限。我总是可以重新安装操作系统并从备份中清除配置文件,只留下个人文档,然后我可以递归地设置权限,但是我应该将权限设置为什么呢?例如,sudo chmod -R 660 ~/Music
即使我是所有者,我也无法听我的音乐。
答案1
以下内容可能有助于快速清理文件和文件夹权限,但不会修复具有不同设置的任何内容。
sudo chown -R <login>:<login> /home/<login>
find /home/<login> -type f -print0 | xargs -0 chmod 664
find /home/<login> -type d -print0 | xargs -0 chmod 775
<login>
当然是您的登录名。如果您愿意,请更改为660
和。770
有一些特殊情况需要更严格的权限。无论如何,这个列表并不完整,但可以帮助您快速恢复。
邮件和 ssh 的更正:
find /home/<login>/Mail -type d -print0 | xargs -0 chmod 700
find /home/<login>/.ssh -type d -print0 | xargs -0 chmod 700
find /home/<login>/Mail -type f -print0 | xargs -0 chmod 600
find /home/<login>/.ssh -type f -print0 | xargs -0 chmod 600
注意:其中的某些文件~/Mail
可能需要640
或644
.这将取决于您的邮件客户端。
其他一些需要与上述相同权限的常见文件是:
.gnome, .gnome2_private, .bash_history, .lesshst, .viminfo
编辑:包含.ssh
来自 Ulrich Schwarz 评论的信息,并扩展到包括一些更常见的目录和权限。为了完整起见,还包括chown -R
OP 已经运行的命令。
编辑2:正如 saurabheights 在评论中指出的那样,您可能需要运行find /home/<login> -type d -print0 | xargs -0 chmod 775
多次,直到所有子目录都可以访问。
答案2
目录中/etc/skel
有主目录的模板。您可以尝试根据/etc/skel.conf中的文件夹恢复基本文件夹的权限。
将来使用 rsync/cp/scp 和 -p 开关来保留权限。