すべてのSUID / SGIDファイルを検索するには?

すべてのSUID / SGIDファイルを検索するには?

オンラインで見つけたすべてのガイドは次のとおりです。

Find all SUID files:
find / -perm -4000 -print
Find all SGID files:
find / -perm -2000 -print 

しかしそれは真実ではない。望むより:

$ ls -lah test
-r-sr-xr-x  1 user  user     0B Jan 24 22:47 test
$ 
$ 
$ stat -x test | grep Mode
  Mode: (4555/-r-sr-xr-x)         Uid: ( 1000/    user)  Gid: ( 1000/    user)
$ 
$ 
$ find test -perm 4000
$ find test -perm 2000
$

質問:それでは、真実は何ですか?実際にすべてのSUID / SGIDファイルを一覧表示する方法は?

ベストアンサー1

テストしたい場合どのビット、/つまりユースケースに応じて 。

find "$DIRECTORY" -perm /4000

そして:

find "$DIRECTORY" -perm /2000

または組み合わせ:

find "$DIRECTORY" -perm /6000

フォルダとファイルをGNUの引数として使用できますfind

私の考えでは、より読みやすい別の方法はニーモニックショートカットを使用することです。つまり:

find "$DIRECTORY" -perm /u=s,g=s

警告

さまざまなバリエーションが異なることに注意してくださいfind。彼らは別の方法で行動することもできます。フレンドリーなマニュアル(RTFM)を必ずお読みください。

おすすめ記事