chmod
给文件提权
(600) 只有拥有者有读写权限。
(644) 只有拥有者有读写权限;而属组用户和其他用户只有读权限。
(700) 只有拥有者有读、写、执行权限。
(755) 拥有者有读、写、执行权限;而属组用户和其他用户只有读、执行权限。
(711) 拥有者有读、写、执行权限;而属组用户和其他用户只有执行权限。
(666) 所有用户都有文件读、写权限。
(777) 所有用户都有读、写、执行权限。
find / -perm -4000 2> /dev/null
-perm
匹配匹配权限
4000 SUID 程序执行时,如果该程序有SUID权限,会变成程序文件的属主,一般来说进程的属主是由进程的发起者来发起的,并不是程序文件的属主。
2000 SGID 在程序执行时,组身份会发生改变,从用户运行变成所属组运行。(当用户无法执行文件时,如果该程序有SGID权限,那么可以将用户的身份升级为该可执行该程序文件的属组)
1000 SBIT 当程序设定了SBIT权限,属组内的每个用户或者其他所有用户,只能创建文件和删除自己的文件,不能删除其他用户的文件。
2>/dev/null
这句话说的是将错误输出(stderr)到黑洞(bit bucket)
首先默认情况下>/dev/null是1,也就是标准输出(stdout)
那么我来讲解一下
黑洞(bit bucket)简单来讲就是垃圾桶,你可以通过设定规则将你不想要的信息丢进去。
标准输出(stdout)I是Input的意思,从外部设备输入到内存,当你执行由一个命令来打开标准文件的时候,如果文件 被执行那么就会获得一个标准输出的文件结果。(即程序运行的结果)
标准错误(stderr)O是Out的意思,从内存输出到外部设备,当你执行由一个命令来打开标准文件的时候,如果文件被不执行就会出现一个标准错误的错误文件。(即错误信息的文件)
所以">", 即等于"1>", 标准输出
当你不想看到错误的信息时, 你可以使用"2> /dev/null", 来隐藏一个命令的错误信息,将它丢进黑洞。
总结
find / -perm -4000 2>/dev/null
就是寻找 4000权限的文件,不显示其他的错误信息相当于过滤。