オンラインで見つけたすべてのガイドは次のとおりです。
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)を必ずお読みください。