我有点困惑如何让它工作。
我已经使 ACL 正常工作,并且需要创建两个组:
- github-total:组,该组中的用户对文件夹“/var/git”有读/写/执行的权限。
- github-read:组内的用户有对文件夹“/var/git”进行读取的权限。
对于“github-total”组我做了以下事情:
作为“git”用户:
$ cd /var
$ mkdir github
$ chmod 770 github
$ ls -al
drwxrwx---+ 3 git git 4096 Oct 4 21:48 github
# useradd andre -m
# passwd andre
# groupadd github-total
# usermod -a -G github-total andre
# id andre
uid=500(andre) gid=500(andre) groups=500(andre),502(github-total) context=user_u:system_r:unconfined_t
# cd /var
# setfacl -R -m group:github-total:rwx github
# setfacl -R -d -m group:github-total:rwx github
# getfacl github
file: github
owner: git
group: git
user::rwx
user:git:rwx
group::rwx
group:git:rwx
group:github-total:rwx
mask::rwx
other::---
default:user::rwx
default:group::rwx
default:group:github-total:rwx
default:mask::rwx
default:other::---
不幸的是,这对我来说不起作用,对于用户“andre”,我无法列出“/var/github”
$ cd /var/github
bash: cd: /var/github: Permission denied
我如何列出此文件夹并将组添加到 ACL?
此致,
附言:抱歉我的英语不好……
更新 1:
我发现如果我这样做ID没有与用户“andre”的参数,我得到了这个:
$ id
uid=500(andre) gid=500(andre) groups=500(andre) context=user_u:system_r:unconfined_t
组“github-total”未包含在用户“andre”的组中
如果我做:
$ id andre
uid=500(andre) gid=500(andre) groups=500(andre),502(github-total) context=user_u:system_r:unconfined_t
这是什么意思?
答案1
您的 ACL 是正确的,所以这不是问题。我认为这是 andre 的组成员身份的问题。
如果在用户登录时将其添加到组,则组成员身份只有在用户注销并重新登录后才会生效。请尝试注销并重新登录,看看是否有效。
顺便说一句,当您创建组“github-read”时,该组将需要对目录具有读取和执行权限,而不仅仅是读取权限。我不知道您是否已经知道这一点,但我认为最好还是告诉您。
答案2
SELinux 的模式是什么?如果您正在运行“强制”,则必须调整您创建的文件夹的上下文。运行命令sestatus
,如果已启用,则暂时将其关闭,setenforce 0
然后查看您是否可以访问该文件夹。
对于 CentOS、RedHat 或 Scientific Linux,此链接应该有帮助CentOS SELinux 维基