我在 Ubuntu 中遇到了大量文件权限问题,从没有权限删除文件,到更改文件内容等等。我想知道你们这些 Ubuntu 专家能否分享一下你们通常如何处理文件权限问题?需要记住哪些一般准则和终端命令?
提前致谢。
答案1
系统上的每个文件都归用户所有。每个用户都是一个或多个组的成员。使用命令,chmod
用户可以有选择地允许自己或他人读取、写入或执行文件。使用chmod
相当复杂,您需要man chmod
在继续操作之前先检查一下,或者也许http://en.wikipedia.org/wiki/Chmod。
我预计需要编辑的每个文件都在我的主目录中,并且属于我。唯一的例外是系统范围的配置文件,例如 Xorg 或 Samba。一般来说,新用户可能也不应该手动编辑这些文件,因为在大多数情况下,还有其他方法可以调整这些配置。
恢复备份后,您有时会发现自己没有编辑自己文件的权限。这是因为,例如,您重新安装了 Ubuntu。即使您在重新安装时设置了同名用户并以该用户身份登录,您的 UID 也是不同的,因此系统会将您视为不同的用户 - 而不是文件所有者。使用命令可以解决这个问题chown
。由于chmod
使用起来很复杂,因此请先阅读它。可能还有一种方法可以让 Nautilus 或其他命令行程序也更改文件所有权,但我不知道。
在处理文件所有权和权限时一定要小心谨慎。这样做可能会造成巨大破坏。
答案2
@koanhead 的答案完全正确。但你似乎想要一种简单的方法来应对文件权限问题,这很简单。
如果您使用终端,您可以:
man chmod
和man chown
以便学习这些命令的正确用法。网上有很多资料,但您可以确定系统中的手册与您在系统中使用的命令相对应。
简单指南
您必须考虑到,您可以使用我上面提供的两个命令来更改文件权限和/或文件所有者。规则很简单:
chown 将更改文件/文件夹的所有者。文件夹的所有者甚至可以递归更改(通过添加 -R 选项)。这样:
sudo chwon USERNAME ITEMNAME -R
此后 USERNAME 将拥有 ITEMNAME 内容的完整域(ITEMNAME 可以是文件或文件夹)。
为了执行多项任务,并取决于您期望的结果。您可以:sudo chmod 777 ITEMNAME -R
为了递归地允许每个人对 ITEMNAME 执行任何任务,这实际上可以是文件或文件夹。之后,您可以更改文件/文件夹权限以满足您的需求。
我的意思是,如果您希望不受限制地对文件/文件夹执行任何任务,请将其设置为任何人都可编辑/可写/可删除(具有 777 权限),然后继续。之后,请确保恢复其适当的权限。
关于如何设置适当权限的附加信息被放在了@koanhead 的答案的 wiki 链接中。
祝你好运!