find コマンドはカレントディレクトリへのアクセス権限が必要

先日はまったのでメモ。

みなさん! UNIX系のコマンドに find ってのがありますが、このコマンドはカレントディレクトリへの読み込み権限がないとエラーになるって知っていました?

[root] # mkdir foo; chmod 700
[root] # cd foo
[root] # su hanako
[hanako] $ ls -l
ls: .: Permission denied
(ls: .: 許可がありません)
[hanako] $ find /tmp
find: cannot get current directory: Permission denied
(find: カレントディレクトリが取得できません: 許可がありません)

/tmp を見たいだけなのに・・・・。
ちなみに再現環境は以下のとおり

  • CentOS 5.3
  • findutils-4.2.27-6.el5 – GNU find version 4.2.27

みなさんのところではどうでしょうか?

ちなみにこれが問題になたのは sudo で実行したスクリプトのなかのことでした。
sudo -H で環境変数 HOME を設定して安心していたら、ディレクトリ自体は移動しておらず、別のユーザで find を実行したときに先の権限エラーとなりました。

気をつけろみんな!!常識!?

コメントを残す

メールアドレスが公開されることはありません。