私がウェブで見つけたすべてのハウツーは次のように述べています:
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ファイルを実際にリストするにはどうすればよいですか?
ええと、なぜこれが正確に「真実ではない」のですか?あなたはなかったRは、 EAD T氏F riendly Mの権利、ユーザ・マニュアルを?ファイルの許可ビットは正確にモード(8進数またはシンボリック)です。
—
0xC0000022L
** test **はファイルです。ディレクトリの検索を検索します。したがって、testが存在するディレクトリでfindを使用する必要があります。
—
Nils
@ニルス:真実ではない。
—
0xC0000022L
find
(GNUは正確であることがわかります)はディレクトリとファイルを同じように扱います。彼/彼女は単に-perm
スイッチのポイントを逃します。マニュアルを読むと役立つでしょう。
@ 0xC0000022L興味深い。CentOS 5のlinux-manpageは、ディレクトリのみを取得することを教えてくれます。ファイルでそれを実行することには意味がありますか?
—
Nils
@ニルス:いいえ、それを行うことに特別な意味はありません。しかし、それはあなたがその愚かさを防ぐことはできません。ともかく、一見するとこれも問題だと思いました。悲しいかな、それはこの質問のためではありません。このようなファイルのビットをチェックして、
—
0xC0000022L 2015年
find $FILE -perm /7777
あなたfind
がそれを実行しているか、それを防止しているかを確認することができます。