python && unix 权限 (gitlab)

python && unix 权限 (gitlab)

我的目录 /home/git/repositories权限为 770 且 uid=git,gid=git

user1@gitserver:~$ ls -la /home/git/ | grep repo
drwxrws--- 42 git  git  4096 Jun 30 17:02 repositories

我有用户“www-data”,已添加到“git”组中

user1@gitserver:~$ id www-data
uid=33(www-data) gid=33(www-data) groups=33(www-data),1001(git)
user1@gitserver:~$ id -G www-data
33 1001

来自运行 python 脚本的“www-data”用户,该脚本调用 os.listdir('/home/git/repositories') 并失败并显示消息 OSError: [Errno 13] Permission denied: '/home/git/repositories/'

def functn()
    repo_dir = '/home/git/repositories'
    logg('CURRENT USER: getresuid && getresgid')
    logg(os.getresuid())
    logg(os.getresgid())
    logg('CURRENT USER: getgroups')
    logg(os.getgroups())
    logg(os.listdir(repo_dir))  <-- here is fault

这是输出:

'CURRENT USER: getresuid && getresgid'
(33, 33, 33)
(33, 33, 33)

'CURRENT USER: getgroups'
[33]                            <-- 'git' group not showing =(

用户“www-data”已添加到 git 组。为什么他不能列出该目录?!

更新这里是namei -mo /home/git/repositories:

user1@gitserver:~$ namei -mo /home/git/repositories
f: /home/git/repositories
 drwxr-xr-x root root /
 drwxr-xr-x root root home
 drwxr-xr-x git  git  git
 drwxrws--- git  git  repositories

答案1

这条评论是正确的;在我添加www-data到组之前,网络服务器已启动git。当我因其他原因重新启动时,网络服务器重新启动,问题就消失了。

相关内容