如何为不同的用户名或用户组设置不同的文件夹/文件权限?

如何为不同的用户名或用户组设置不同的文件夹/文件权限?

我正在将我的家庭服务器从基于 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-twousers

在共享 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。

相关内容