![尽管所有者是我,但 ~ 的权限被拒绝](https://linux22.com/image/1094538/%E5%B0%BD%E7%AE%A1%E6%89%80%E6%9C%89%E8%80%85%E6%98%AF%E6%88%91%EF%BC%8C%E4%BD%86%20~%20%E7%9A%84%E6%9D%83%E9%99%90%E8%A2%AB%E6%8B%92%E7%BB%9D.png)
不知何故,我设法将 chmod 和 chown 我的 ~ 置于遗忘状态。
当我尝试通过 shell 登录时,我得到了
bash: ~/.bashrc : Permission denied
即使 (以 root 身份)我已经跑了
chown -hR nroach44 /home/nroach44
和
chmod -R 666 /home/nroach44
或者 (作为 nroach44)
chmod -R 644 /home/nroach44
这些命令均不会返回错误。
还:
ls -la /home/nroach44
返回大量
drw-rw-rw- 1 nroach44 nroach44 4096 --date-- ti:me foldername
有什么帮助吗?
答案1
警告
(不要执行这两个例子!)
chmod -R 666 /home/nroach44
chmod -R 644 /home/nroach44
这将使你的主目录中的所有文件都不可执行。这不是一个好主意 ;)
我不知道如何清理这个烂摊子,作为一种快速解决方法,您可以尝试以 root 身份执行:
chmod -R 755 /home/nroach44
此命令将授予您主文件夹中所有文件的执行权限。它应该可以解决您当前的问题,但这可能是一个安全噩梦。
最好的解决方案是打开另一个用户帐户并将文件和设置逐一传输给该帐户。
答案2
目录需要设置执行位,以便您进入目录。666
即使您以 root 身份运行,Plain 也是错误的。它为每个人提供了写入权限。
为了使文件更安全,请运行:
chmod -R 640 /home/nroach44
要使文件夹再次可下降,请运行:
find /home/nroach44 -type d -exec chmod 750 \;
注意:我选择 xx0 是因为有些文件可能比较敏感,其他人无法读取。为了安全起见,删除所有用户的读/写/执行权限。
答案3
由于您似乎对 ~ 拥有足够的权限,因此您需要/home
对其他人 ( sudo chmod +rx /home
) 拥有 x 权限,并检查文件的权限是否正常/home/nroach44/.bashrc
。
另一点是,目录应该具有 x 权限才能允许进入,因此要修复所有问题,您需要运行sudo chmod -R +X /home/nroach44
。
答案4
目录需要设置 x 位(对于目录,该位被视为搜索位)才能打开。因此我使用树,这样我就可以只设置文件夹,避免将所有文件设置为可执行文件的噩梦(树的选项是 -d List directories only.
):
sudo tree -faid /home/nroach44 | xargs -L1 -I{} sudo chmod 755 "{}"
警告!!!您应该考虑到这一点:
在根目录或系统目录上递归使用 chmod 或 chown
/
将破坏您的操作系统(实际上,在目录或系统目录上进行的任何递归操作/
都是危险的)像那样设置批量权限不是一个好的安全做法