我经常看到用户尝试修复问题并在某处读取或只是尝试递归地访问chown
他们的主目录,有时甚至还以递归方式重置权限为类似rwxr-xr-x
或类似的内容。
想象一下这样的所有者/权限大屠杀 - 是否存在关键文件/目录需要是否需要特殊权限或者 root 权限才能使系统正常运行?
答案1
任何文件都~
不必由 root 拥有。
如果软件要求文件你的主目录由另一个用户拥有,这是一个错误,应该报告。
除此之外,一个常见的案例涉及两个需要对某些文件进行限制权限的安全相关软件,即:
- SSH
- 通用石油气
SSH
请参阅man ssh
第节FILES
:
~/.ssh/config
This is the per-user configuration file. The file format and
configuration options are described in ssh_config(5). Because of
the potential for abuse, this file must have strict permissions:
read/write for the user, and not writable by others. It may be
group-writable provided that the group in question contains only
the user.
~/.ssh/identity
~/.ssh/id_dsa
~/.ssh/id_ecdsa
~/.ssh/id_ed25519
~/.ssh/id_rsa
Contains the private key for authentication. These files contain
sensitive data and should be readable by the user but not acces‐
sible by others (read/write/execute). ssh will simply ignore a
private key file if it is accessible by others. It is possible
to specify a passphrase when generating the key which will be
used to encrypt the sensitive part of this file using 3DES.
其他文件(如authorized_keys
、known_hosts
等)应该只能由用户写入,但可以被所有人读取。
基努
~/.gnupg
(和内容)应该只有您可以访问。对于其他权限,GPG 会抱怨权限不安全。
答案2
一般来说,您家中的文件和目录应该归您所有。
我有一些奇怪的 root 拥有的文件,可能是执行sudo
命令的结果;实际上,有些程序会在下面写入内容$HOME
(需要超级用户权限的行为良好的程序不应该这样做 --- 结果是 root 拥有了应该属于用户的文件的所有权)。
通常删除或重新拥有它们(取决于文件)不会产生问题,而且通常可以解决一些问题,例如臭名昭著的.Xauthority
文件 --- 有时,在运行之后sudo dconf-editor
,您将无法再修改配置中的内容。
关于特殊模式:
- 当然,脚本必须是可执行的,至少对于所有者来说是这样;
- 目录也必须如此(其中
x
表示穿过的权利); .ssh
必须是drwx------
(0700)并且其中的私钥是-rw-------
(0600)- 如果您有一个
Public
要共享的目录,它应该是drwxr-xr-x
(对任何人都具有读取权限)或drwxrwxrwt
(具有写入权限和粘滞位,以启用写入)。
... 我想不出还有什么需要特殊处理。