私たちは次のhp-ux設定を使います:
HP-UX dxp10hxw B.11.23 U 9000/800 1446354274 unlimited-user license
そして、次のように単純なfindコマンドを実行してみてください。
find . ! -type l -perm -0020 -exec ls -l {} \;
これにより、グループ書き込み権限を持つ現在のディレクトリのすべてのファイル/フォルダのリストが作成されます。ただし、グループ書き込み権限を持たないファイルも一覧表示されます。
私たちは上記のコマンドのバリエーションを調べて試しました。たとえば、次のようになります。
find . ! -type l -perm -g+w -exec ls -l {} \;
find . ! -type l -perm -g=w -exec ls -l {} \;
しかし、何も動作しないようです。インターネットを検索しようとしましたが、hp-uxに関するGoogleの結果はあまりありませんでした。 hp-uxフォーラムで見つけることができる最も近いものは次のとおりです。http://community.hpe.com/t5/System-Administration/commnd-to-find-All-world-writable-files-in-hpux-11-0-system/td-p/3260440しかし、そこに言及されたアドバイスも役に立ちません。
私たちは一度に1つのファイルを見つけようとします。たとえば、711 の権限を持つ temp.txt ファイルがあり、上記のコマンドを実行すると、結果に表示されます。次に、現在のディレクトリ内のすべてのファイルの代わりにそのファイルのみを検索するようにコマンドを変更し、次のコマンドを実行します。
find ./temp.txt ! -type l -perm -g+w -exec ls -l {} \;
結果は生成されませんでした。その後、フォルダに小さなファイルセットを提供しようとすると、出力として受け取ったファイルのリストは正確ですが、フォルダ内のファイル数が増えると結果が再度不正確になります。したがって、少なくとも私たちは、検索で多数のファイル(約600ファイル)がクラッシュすることを知っています。助けてください!
答え1
注文する
find . ! -type l -perm -0020 -exec ls -l {} \;
はい閉鎖。ただし、-d
コマンドにオプションを追加すると、リストを表示するのではなくls
機能します。コンテンツ目次。
与えられたコマンドはサブディレクトリで繰り返されます。質問にはファイル(およびフォルダ...)のみが記載されています。言いたいことは
find . -type f -perm -0020 -exec ls -l {} \;
ディレクトリを完全に無視します。与えられたコマンドは、グループ書き込み可能な権限も持つディレクトリをリストします。
答え2
find . ! -type l -perm -g=w -exec ls -lLd {} \;
上記のコマンドは、約6000ファイルの/tmp
HP-UX 11.11サーバーで機能します。問題はファイル数では発生しません。 600個のファイルは、物理メモリ量が非常に少ない限り、海の一滴に過ぎません。