与正确的所有者/群组创建链接

与正确的所有者/群组创建链接

我有一个通过 ssh 访问的 git-daemon。所有存储库都在 /srv/git 中。

我在 exfat 磁盘上保存了一些其他项目,所以我想从该磁盘创建到 /srv/git 的符号链接。

例如,我有,/mnt/Medias/Projects/Defi\ H.git所以我只需这样做:

cd /srv/git
sudo ln -s /mnt/Medias/Projects/Defi\ H.git

但是该文件被创建为root:root,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

所以我想直接以正确的用户身份创建链接:

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.

我是该小组的成员wheelsudo其配置显示:

%wheel ALL=(ALL) ALL

我不明白为什么最后一条命令会失败?有什么建议吗?

或者我应该在另一个文件系统上复制该文件?/srv/git 是 btrfs,如果这有任何重要性的话。

答案1

链接的权限对目标没有影响,你试图做的根本不是限制目标的权限。
只有目标的权限才有效。

引用http://en.wikipedia.org/wiki/Symbolic_link

符号链接的文件系统权限通常仅与链接本身的重命名或删除操作有关,而与由目标文件自己的权限控制的目标文件的访问模式无关。

相关内容