我有一个通过SSH访问的git守护进程。 所有的软件仓库都在/ srv / git中。
我有一些其他项目保存在exfat磁盘上,所以我想创build一个从该磁盘到/ srv / git的符号链接。
例如,我有/mnt/Medias/Projects/Defi\ H.git
所以我简单地做:
cd /srv/git sudo ln -s /mnt/Medias/Projects/Defi\ H.git
但是该文件是以root身份创build的:777。
要限制对存储库的访问,我想更改该文件的posix权限。 如果第一次尝试:
sudo chmod 755 Defi\ H.git chmod: changing permissions of `Defi H.git': Function not implemented
我发现这是因为链接指向存储在exfat磁盘上的文件夹。 同样,这也失败了:
sudo chown git:defih Defi\ H.git chown: changing ownership of `Defi H.git': Function not implemented
所以我想直接创build链接作为合适的用户:
sudo -u git -g defih ln -s /mnt/Medias/Projects/Defi\ H.git Sorry, user geoffroy is not allowed to execute '/bin/ln -s /mnt/Medias/Projects/Defi H.git' as git:defih on Aethelflaed.
我是wheel
组的一部分, sudo
的configuration显示:
%wheel ALL=(ALL) ALL
我不明白为什么这最后一个命令失败? 有什么build议?
或者我应该在另一个文件系统上复制文件? / srv / git是btrfs,如果这有什么重要的。
链接的权限对目标没有影响,你所要做的并不是限制目标的权限。
只有目标的许可才是有效的。
引用http://en.wikipedia.org/wiki/Symbolic_link :
符号链接的文件系统权限通常仅与链接本身的重命名或删除操作有关,而不与目标文件自身权限控制的目标文件的访问方式有关。