現象
.gitconfigに
[alias]
st = status
とか書いた状態で、git st
を実行するとfatal: cannot exec 'git-st': Permission denied
って言われて、git status
が実行されない
調査
ここを見るとstraceで調査しろってことなので、やってみる。
実行するユーザーはdrwtsn64
とする。
$ strace -f -eexecve git st 2>&1 | grep EACC
[pid 57935] execve("/home/hoge/bin/git-st", ["git-st"], [/* 23 vars */]) = -1 EACCES (Permission denied)
なんか/home/hoge/bin/git-st
っていうhogeユーザのbinディレクトリを見てて様子がおかしい。
これが起きた背景としてはhogeユーザーでsu -- drwtsn64
でdrwtsn64ユーザーでログインしていたので、
PATH環境変数が引き継がれてしまったみたい。
su drwtsn64
でも環境変数が引き継がれる。環境変数を引き継がないためには-
を入れないといけない。
解決策
su - drwtsn64
でログインする
そもそもsuコマンドの理解が足りてなかった。