为什么 root 可以看到目录但用户看不到?

为什么 root 可以看到目录但用户看不到?

我通过 root 在我的 vps 上创建了一个 git repo,并将其共享,以便一群人可以访问它:

# mkdir example.git
# cd example.git
# git init --bare --shared=group
Initialized empty shared Git repository in /root/example.git/
# ls
branches  config  description  HEAD  hooks  info  objects  refs
# chgrp -R devs .

然后,我以本地 PC 用户的身份创建了一个目录,并添加了 example.git 作为此 git repo 的新源。最后,我尝试推送到源:

mkdir bubbles && cd bubbles
bubbles ranuka$ git init
Initialized empty Git repository in /Users/ranuka/Desktop/bubbles/.git/
bubbles ranuka$ ls
bubbles ranuka$ git remote add origin [email protected]:example.git
bubbles ranuka$ echo "Hello" > readme.txt
bubbles ranuka$ git add readme.txt
bubbles ranuka$ git commit -m "Adding a readme file"
[master (root-commit) 2c89e43] Adding a readme file
1 file changed, 1 insertion(+)
create mode 100644 readme.txt
bubbles ranuka$ git push origin master
[email protected]'s password: 
fatal: 'example.git' does not appear to be a git repository

这个错误让我很困惑,因为我知道 example.git 显然是我 vps 上的一个仓库。我以“ranuka”身份登录我的 vps,并尝试 cd 到 example.git,但无法成功,但出于某种原因,我可以以 root 身份成功。这到底是怎么回事?

我的目标是在我的 vps 上创建一个 git repo,以便某个组中的一群用户可以访问并进行推送/拉取。

编辑:运行 ls -a 后[电子邮件保护][电子邮件保护] 结果如下:

.                             example.git
..                            gitosis
ajenti-repo-1.0-1.noarch.rpm  install.log
anaconda-ks.cfg               install.log.syslog
.bash_history                 pgdg-centos93-9.3-1.noarch.rpm
.bash_logout                  .pki
.bash_profile                 repo.git
.bashrc                       .rnd
.cshrc                        .ssh
epel-release-6-8.noarch.rpm   .tcshrc

.  ..  .bash_logout  .bash_profile  .bashrc

因此看起来好像 root 和 ranuka 位于不同的目录中,且没有任何关系。

答案1

不同的用户有不同的主文件夹。
如果您以 root 身份登录,则主文件夹为/root
其他用户将无法访问该文件夹。

如果你以 ranuka 身份登录,则主目录 (可能) 为/home/ranuka
当然,它不包含文件夹,因为它位于 中/root

相关内容