好的,我这里有一个明显 WTF 的问题。
我以 root 身份登录,然后运行:
# ls /var/lib/gitolite3/.gitolite/logs/ -l
-rw-rw-rw-. 1 gitolite3 gitolite3 5570 Aug 2 21:00 gitolite-2013-08.log
没问题?我以 gitolite3 身份登录,再次运行相同的操作:
# su gitolite3
$ ls /var/lib/gitolite3/.gitolite/logs/ -l
-????????? ? ? ? ? ? gitolite-2013-08.log
怎么回事?其他地方也报错说无法访问日志。FS 是 EXT4。OS 是 Centos6.4。之前,我不得不更改 gitolite3 的 uid 和 gid 以让 suexec 在该用户和组下运行命令,结果我不得不再次 chown -R gitolite3:gitolite3 该文件夹树。Fsck 不让我这么做,FS 已经挂载了。
有什么提示吗?
答案1
问题是用户 gitolite3 没有权限执行该目录,因此它无法读取 inode(存储权限的位置)。您必须授予 gitolite3 执行您所在目录的权限,如下所示:
chmod o + x /var/lib/gitolite3/.gitolite/logs