![如何为不同的用户名或用户组设置不同的文件夹/文件权限?](https://linux22.com/image/840421/%E5%A6%82%E4%BD%95%E4%B8%BA%E4%B8%8D%E5%90%8C%E7%9A%84%E7%94%A8%E6%88%B7%E5%90%8D%E6%88%96%E7%94%A8%E6%88%B7%E7%BB%84%E8%AE%BE%E7%BD%AE%E4%B8%8D%E5%90%8C%E7%9A%84%E6%96%87%E4%BB%B6%E5%A4%B9%2F%E6%96%87%E4%BB%B6%E6%9D%83%E9%99%90%EF%BC%9F.png)
我正在将我的家庭服务器从基于 Windows 的服务器迁移到基于 Ubuntu 的服务器。
我对基于 Windows XP 的文件服务器感到满意,并且已经使用了大约 6 年。
我正在停用 Windows XP
服务器,并希望使用基于 Ubuntu 12.04 LTS 桌面版的新 Linux 服务器。我计划在对桌面版感到满意时使用服务器版。
但是现在,我在新的 Ubuntu 服务器中遇到了一些文件权限问题。
在我的 Windows XP 中,我共享了一个 4TB RAID0 阵列,并且整个阵列都在我的工作组内共享。我有几个具有不同用户权限的用户,我希望这也适用于我的 Ubuntu 服务器。但我在实施它时遇到了一些问题。可能是因为我缺乏管理它的知识。
现在,在我的 Ubuntu 服务器上,我创建了一个 4TB RAID 阵列,并且它的全部都是共享的。
RAID 阵列的内容以递归方式更改为admin-one:users
。
RAID 阵列的内容以递归方式更改为 750。
在服务器中,我创建了属于组的user-one
和帐户。user-two
users
在共享 RAID 阵列中,我有一个名为 的文件夹restricted
。一切都设置得很好,并且在客户端机器上运行良好。
现在的问题是,我不知道如何限制user-one
访问该restricted
文件夹,因为它user-one
属于users
对 RAID 阵列的所有内容以及restricted
文件夹所在的位置具有读取和执行权限的组。我可以在 Windows 中轻松做到这一点,但在 Ubuntu 中却不行。
总结一下用户的权限:
admin-one - 对整个共享分区具有读写执行权限。
user-one - 对整个共享分区具有读取和执行权限。
user-two - 对整个共享分区具有读取和执行权限。
我想要实现的目标是:
用户一 - 对整个共享分区具有读取和执行权限,但无权访问该restricted
文件夹。
用户二 - 对包括restricted
文件夹在内的整个共享分区具有读取和执行权限,但对该文件夹没有写入权限。
那么,一般的问题是,我应该如何为不同的用户设置不同的权限?
答案1
您可以使用 ACL(有关详细信息,请参阅以下页面:https://help.ubuntu.com/community/FilePermissionsACLs)。至少在 Ubuntu 13.04 中,ACL 无需任何配置即可工作。我不知道它们是否能立即在 Ubuntu 12.04 中工作。如果不能,您可以启用 ACL(搜索如何操作)或忽略我的答案。
要限制
user-one
访问该restricted
文件夹,您可以运行以下命令:sudo setfacl -m u:user-one:- restricted
仅授予
user-two
文件夹读/写权限:sudo setfacl -m u:user-two:rw restricted
要从文件夹中删除所有 ACL:
sudo setfacl -b restricted
要查看文件夹的 ACL,请执行以下操作:
getfacl restricted
另外,当您使用命令
ls -l
查看文件夹的标准权限时,您会在权限中看到一个额外的“+”。
再次,我不知道 Ubuntu 12.04 中是否默认启用了 ACL。如果这些命令失败,则表示未启用 ACL。