「/root/.config/git/attributes」にアクセスできません:権限>拒否されました」


10

でnginxのユーザーとして、私たちのUbuntu Serverでは、私たちは、クローンすることができます/usr/share/nginx/wwwそれが持っているwww-data:wwwとして警告を取得-data所有権を

「警告:「/root/.config/git/attributes」にアクセスできません:権限が拒否されました」

次のようにコマンドを実行しています sudo -u www-data git clone <repo>.

sudoを使用すると、この警告が表示されます。それ以外の場合は問題なく機能します。

rootユーザーとしてクローンを作成でき、問題はありません。

.gitconfigはルートのみにあり、内容を確認してください:

root@geo:~# cat /root/.gitconfig
[user]
        name = pc_user
        email = pcgeopc@gmail.com
root@geo:~#

誰でも私たちを助けてくれますか?

手動で/root/.config/直接作成したり、権限を変更したりするなど、さまざまなオプションを試しましたが、何も機能しません。誰かが私を助けてくれますか?

こちらもご覧ください:

root@geo:/setup/test# ll /setup/
total 16
drwxr-xr-x  4 www-data www-data 4096 Oct  9 00:14 ./
drwxr-xr-x 24 root     root     4096 Oct  9 00:14 ../
drwxr-xr-x  3 www-data www-data 4096 Oct  9 00:14 test/

root@geo:/setup/test# sudo -u www-data git clone -v git@....../test.git
Cloning into 'test'...
remote: Counting objects: 8323, done.
remote: Compressing objects: 100% (6459/6459), done.
remote: Total 8323 (delta 1543), reused 8241 (delta 1500)
Receiving objects: 100% (8323/8323), 39.85 MiB | 19.52 MiB/s, done.
Resolving deltas: 100% (1543/1543), done.
Checking connectivity... done.
warning: unable to access '/root/.config/git/attributes': Permission denied

したがって、gitセットアップの問題のようです。どなたでもご案内頂けますか?


私はこのセットアップをUbuntu 14.04で使用しています。別のUbuntu 12.04で同じ設定を行うと、問題なく動作します。

また、これを行いました:

ユーザーgeopcを作成し、sudoersリストに追加しました。geopcユーザーとしてログインしてこのコマンドを実行すると、sudo -u www-data git clone -v git@....../test.git 完全に機能します。

したがって、問題は、Ubuntu 14.04でrootユーザーとして直接ログインし、sudo -u www-data git cloneこの警告が表示されたときにクローンを作成する場合です。しかし、Ubuntu 12.04にはありません。

Ubuntu 14.04でgitバージョン1.9.1を使用していますが、gitもバージョン2.1.1にアップグレードしましたが、同じです。


1
ファイルシステムの権限により、www-dataを含む他のすべてのユーザーがの下のファイルにアクセスできないようにするのはかなり一般的です/root。ファイルシステムのアクセス許可がない場合は、AppArmorやSELinuxのようなものが、/ rootへのWebサーバーアクセスをブロックするはずです。
HBruijn 2014年

そうではないようです。質問を修正しましたので確認してください。
Geo


私はこの答えを使用しており、この答えは私のために働いています。自分で試す
Toir427

回答:


10

@muは正しいです。これは、ユーザーのHOME環境変数ではrootなく、ユーザーwww-dataのHOME環境変数がスクリプトに渡される問題です。

ただし、-Hスイッチをsudoコマンドに追加する必要があるだけなので、かなり簡単です。

sudo -u www-data -H git clone -v git@....../test.git

1

HOME変数が正しく設定されていないと思います。

グーグルグループスレッドから、

HOME環境変数は、権限のないユーザーがアクセスできる/rootように設定されているため、/root/.gitconfigまたは/root/.config/git/configアクセスできない/rootためにエラーがスローされました。

したがって、解決策は私がHOME envをユーザーのHOMEディレクトリに設定することでした


私にとってそれは始まっていました:HOME = / home / git git daemon ...
rofrol

-1

root以外のユーザーを使用してstashインスタンスを再起動するだけです。通常、ユーザーはインストール時に使用したものと同じです。

例えばatlstash

これを行うと、HOME変数が/ home / atlstashとして設定され、問題が解決します

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.