LoginSignup
3
2

More than 3 years have passed since last update.

git pull したら permission deniedになったから、その解決法をメモ

Posted at

開発環境用のサーバーで、git pull したら、
permission denied でエラーになった。

まさしくこのような感じのエラー

$ git pull
error: cannot open ファイル名: Permission denied

エラーの原因としては、自分が使用しているユーザーはそのディレクトリを変更する権限を持っていないからが理由のよう。

試しにファイルの権限を確認

$ ll
-rw-r--r--   1 hoge  hoge   5742 10 26  2018 test1.php
-rw-r--r--@  1 fuga  hoge   6807 10 12  2018 test2.php
-rw-r--r--   1 hoge  hoge     65 10 11  2018 a1.php
-rw-r--r--   1 fuga  hoge     65 10 11  2018 a2.php

本来であれば、hogeユーザーで作業する決まりだが、
fugaユーザーで作業した人がいたみたい。。

なら、ファイルの権限を変更すればOKと思いきや、
修正するファイルは、プロジェクトのいたるところにあり、
おまけに.git配下も修正しなくてはいけず、いちいち該当するファイルのパスを指定して権限を変更していたら日が暮れるという感じ。。

まとめてファイルの権限を変更

ということで、便利なlinuxコマンドもメモしておく

ルートディレクトリで作業

//ファイル
find ./ -user fuga -type f -print | sudo xargs chown hoge:hoge

// ディレクトリ
find ./ -user fuga -type d -print | sudo xargs chown hoge:hoge

//シンボリックリンク
find ./ -user fuga -type l -print | sudo xargs chown hoge:hoge

これでまとめて権限を変更することが可能。

実行する流れとしては、

find ./ -user fuga -type f -print

で該当するファイル一覧を確認し

find ./ -user fuga -type f -print | sudo xargs chown hoge:hoge

で権限をまとめて変更

find ./ -user fuga -type f -print

再び、こちらを実行し、ファイルが表示されないことを確認って感じ。

こういうコマンドをすらすら思いつけるようになりたい。

3
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2