web-dev-qa-db-ja.com

ディレクトリ構造内で不均一なファイル権限を見つけるにはどうすればよいですか?

ディレクトリ構造内で不均一なファイル/ディレクトリのアクセス許可を見つけるにはどうすればよいですか?次のようなfindコマンドを使用してみました。

find /bin ! \( -perm 777 -o -perm 776 -o -perm 775 -o -perm 774 -o -perm 773 -o -perm 772 -o -perm 771 -o -perm 770 -o -perm 760 -o -perm 750 -o -perm 740 -o -perm 730 -o -perm 720 -o -perm 710 -o -perm 700 -o -perm 600 -o -perm 500 -o -perm 400しかし、残りの順列と-exec ls -lL {} \;を完了する前に、コマンドラインが不足しています。

私はまた、次のような手動のことを行ってきました:

ls -lL /bin | grep -v ^-rwxr-xr-x | grep -v ^-rwx--x--x | grep -v ^-rwsr-xr-x | grep -v ^-r-xr-xr-x | grep -v ^-rwxr-xr-tしかし、残りの順列を完了する前に、コマンドラインが不足しています。

どちらの方法も非常に厄介なようです。より良い、より速く、より簡単な方法はありますか?使用しているシェル(sh)とプラットフォーム(Irix 6.5.22)に制限があることに注意してください。

1
Rob

実行可能ファイルをお探しですか?

find . -type f -perm /+x

とにかく、/モードはおそらくあなたの友達です...ここにmanページがあります:

   -perm /mode
          Any  of  the  permission  bits mode are set for the file.  Symbolic modes are accepted in this form.  You must specify `u', `g' or `o' if you use a symbolic mode.  See the
          EXAMPLES section for some illustrative examples.  If no permission bits in mode are set, this test matches any file (the idea here is to be consistent with  the  behaviour
          of -perm -000).

更新:そうです、あなたは不均一な数(実行可能な数)を探していましたが...

これは機能するはずです(findの3番目のpermparamを引き続き使用しています

サンプルデータ:

$ ls
000  001  002  003  004  005  006  007  010  020  030  040  050  060  070  100  200  300  400  500  600  700

検索コマンド:

$ find . -type f \( -perm /u-x,g+x -o -perm /u-w,g+w -o -perm /u-r,g+r -o -perm /g-x,o+x -o -perm /g-w,o+w -o -perm /g-r,o+r -o -perm /u-x,o+x -o -perm /u-w,o+w -o -perm /u-r,o+r \) | sort
./001
./002
./003
./004
./005
./006
./007
./010
./020
./030
./040
./050
./060
./070

基本的に、グループには権限があるが所有者にはないファイル、ワールドには権限があるがグループにはないファイル、またはワールドには権限があるが所有者にはないファイルを教えてください。

注:findには3xのpermパラメーターがあります。

  • パーマモード
  • パーマモード
  • パーマ/モード

ps私はこれの価値についてあまり確信がありません...

0
mikejonesey