今日、非常に奇妙な問題が発生しました... link に従ってGitLabをLinuxサーバーにインストールしました。Gitoliteセクションには、フォルダーのアクセス許可と所有権を設定する2行があります。
Sudo chmod -R ug+rwXs,o-rwx /home/git/repositories/
Sudo chown -R git:git /home/git/repositories/
そして、これらの行の前に、ユーザーを作成して特定のグループに追加しました。
Sudo adduser --disabled-login --gecos 'GitLab' gitlab
Sudo usermod -a -G git gitlab
次の手順の後で、ユーザーと権限を確認しました。
gitlab@vm-leader:/home/git$ id
uid=1001(gitlab) gid=1001(gitlab) groups=1001(gitlab),105(git)
gitlab@vm-leader:/home/git$ ls -al
total 56
drwxr-xr-x 8 git git 4096 Jan 4 16:55 .
drwxr-xr-x 7 root root 4096 Jan 4 11:50 ..
-rw------- 1 git git 87 Jan 4 17:02 .bash_history
drwxr-xr-x 2 git git 4096 Jan 4 14:04 bin
drwx------ 2 git git 4096 Jan 4 14:04 .cache
-r--r--r-- 1 root root 398 Jan 4 14:04 gitlab.pub
drwxr-xr-x 5 git git 4096 Jan 4 14:01 gitolite
drwxr-x--- 6 git git 4096 Jan 4 14:04 .gitolite
-rw-r--r-- 1 git git 5064 Jan 4 14:04 .gitolite.rc
-rw-r--r-- 1 git git 37 Jan 4 14:04 .profile
-rw-r--r-- 1 git git 12 Jan 5 19:43 projects.list
drwsrws--- 6 git git 4096 Jan 5 17:29 repositories
drwx------ 2 git git 4096 Jan 5 19:43 .ssh
gitlab@vm-leader:/home/git$
これらの出力に基づいて、フォルダ「リポジトリ」は同じグループユーザーがアクセスできるようになっていると思います。この場合、グループ「git」にはこのフォルダにアクセスする権限があります。また、ユーザー「gitlab」はグループ「git」に属しています。したがって、「gitlab」ユーザーはそのフォルダーにアクセスできる必要があります。しかし、私はこれを手に入れました
gitlab@vm-leader:/home/git$ cd repositories/
bash: cd: repositories/: Permission denied
gitlab@vm-leader:/home/git$
これは私にはあまりにも奇妙であり、なぜこれが起こったのか、それを修正する方法がまったくわかりません。誰でも私にヒントを与えることができますか?よろしくお願いします。
追加情報:
bear@vm-leader:/home/git$ ls -ld /home/git
drwxr-xr-x 8 git git 4096 Jan 4 16:55 /home/git
この問題は解決されました!そのフォルダー(リポジトリ)をNFS経由でマウントしましたが、NFSサーバーにはgitユーザーとgitlabユーザーの両方が存在しません。私はそれらを追加し、それらに適切なグループを設定しました、そしてすべてがうまくいきます!私はこれについていくつかのテストを行いました-サーバーとクライアントの両方が適切なユーザー/グループに設定されている場合にのみ、アクセス許可は正しく機能します。
/ home/gitには700の権限があるようです。グループ(g + x)の実行権限を/ home/gitに追加すると、次のアクセス権を取得できます。
# chmod g+x /home/git