web-dev-qa-db-ja.com

SUIDファイルを特定するためのfindコマンドを使用してください。

私はオンラインコースを行っていますが、助けてください。下の画像をご覧ください。 SUIDビットが設定されたファイルを見つけるために、findを使用しています。質問は、「SUIDとユーザーの実行権限が設定された、ユーザー 'linux'が所有する 'immersive'という名前のファイルの内容は何ですか? 'immersive'という名前の複数のファイルが正しいファイルを見つけます!」私はコマンドを使用した質問から

find . -perm /4100

これが正しい8進数の許可であると思いますか?イメージには2つのディレクトリが返されますが、ls -laを実行すると、SUIDが設定されたファイルは表示されません。私が間違っていることは何ですか?

$ find . -perm /4100
.
./immersive
$ ls .
immersive
$ ls -la ./immersive
lrwxrwxrwx  1   root    root   23 Aug 20 14:25 ./immersive -> /lib/firmware/immersive
linux@find-command:~$ find . -perm /4100 . ./immersive 
linux@find-command:~$ ls -la 
total 24 
drwxr-xr-x 1  linux linux   4096 Oct 13 13:00 . 
drwxr-xr-x 1  root  root    4096 Oct 11 18:56 .. 
-rw------- 1  linux linux   134  Oct 13 13:00 .bash_history 
-rw-r--r-- 17 linux linux   220  Apr  4 2018 .bash_logout 
-rw-r--r-- 17 linux linux   3771 Apr  4 2018 .bashrc
-rw-r--r-- 17 linux linux   807  Apr  4 2018 .profile
lrwxrwxrwx 1  root  root    23   Aug 20 14:25 immersive -> /lib/firmware/immersive
2
user278930

-perm /mode-perm -modeの説明については、 この質問 を参照してください。私は認めます、それはあまり直感的ではありませんが、:

find . -type f -name immersive -user linux -perm -u=sx -ls
# or
find . -type f -name immersive -user linux -perm -4100 -ls

あなたが尋ねるとおりに行います。

-perm -4100の意味:4(= setuid)が設定され、1(= x)が設定されているファイルを検索し、残りのビット(グループおよびその他)を無視します。

一方、-perm /4100は、4(= setuid)がOR 1(= x)に設定されているファイルを検索することを意味します(または両方)残りのビットを無視します。

したがって、/mode-modeよりも多くのファイルを見つけます。


明らかでない場合(-permフラグに焦点を合わせているため):他の意味:file-type f)名前がimmersiveで、ユーザーが所有するlinux。これらの条件はすべてANDされます。


見つかったファイルのcontentsを表示するには、それらを1つずつcatすることができます。

cat .../immersive

見つかったファイルごとに、またはfindコマンドに任せてください:

find . -type f -name immersive -user linux -perm -4100 -exec cat {} \;

これにより、上記の条件に従ってファイルが検索されますが、名前と属性(-ls)を出力する代わりに、見つかった各ファイルに対してcatコマンドが実行されます。

3
PerlDuck