我正在上在线课程,需要一些帮助。请参见下图。我正在使用 find 来查找设置了 SUID 位的文件。问题询问“名为 'immersive' 的文件的内容是什么,该文件由用户 'linux' 所有,并设置了 SUID 和用户执行权限?有多个名为 'immersive' 的文件,请找到正确的文件!”从问题中我使用了命令
find . -perm /4100
我希望这是正确的八进制权限?在图像中,您将看到返回两个目录,但是当我运行 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
答案1
看这个问题-perm /mode
对于vs.的解释-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
另一方面的意思是:找到任何为用户设置了 (=setuid) 或 (=x)(或两者)的文件,同时4
忽略1
其余位。
因此/mode
会找到比更多的文件-mode
。
如果不太明显的话(因为我关注的是-perm
旗帜):其他的意思是:找到一个文件( -type f
) 名称immersive
归用户所有linux
。所有这些条件都是 AND 关系。
要查看内容找到的文件,你可以一个接cat
一个地执行,即发出
cat .../immersive
对于每个找到的文件或让find
命令为您执行此操作:
find . -type f -name immersive -user linux -perm -4100 -exec cat {} \;
这将根据上述条件查找文件,但不会打印它们的名称和属性( ) ,而是对每个找到的文件-ls
执行命令。cat
答案2
尝试这个命令:
find / -name immersive 2> /dev/null
它还会显示所有隐藏文件。希望这对您有所帮助