我需要在 Linux 上创建一个仅有一个文件夹访问权限的用户。
背景:
我已经在虚拟服务器 (Debian) 上安装了 git。我还为存储库创建了一个用户。服务器上有很多私人数据。但所有文件夹都对其他人具有读取权限,因为服务器上运行的应用程序需要它。因此 git 用户可以看到所有数据。
我想将 git 用户限制在安装存储库的文件夹中。我也尝试了 ACL,但没有用。
有一个更好的方法吗?
提前致谢!
答案1
我自己已经解决了这个问题。Gitolite 听起来很不错,但对于我的问题来说开销太大了。
我只在我的服务器上创建了一个新用户,并将他的 shell 更改为 git-shell,如下所示
chsh -s /usr/bin/git-shell gituser
现在我创建了一个 git 并确保用户拥有该文件夹所需的权限。
答案2
你应该调查吉托莱特,它允许您通过 SSH 设置服务器上的 Git 访问权限,而无需授予任何其他访问权限。它的工作原理是设置用户,因此它不执行 shell,而是执行一个进程,该进程只理解 Git 在服务器上操作所需的命令,而不理解其他任何命令。您还可以基于 SSH 密钥设置多个帐户,而只有一个 Unix 用户帐户。
答案3
这个答案是针对 SFTP 的,但它应该与设置相同不同的文章。只需确保 GIT 用户不属于可以覆盖用户权限的用户组,例如 root 或 admin。