ps aux 和ps -ef
两者的输出结果差别不大,但展示风格不同。aux是BSD风格,-ef是System V风格。这是次要的区别,一个影响使用的区别是aux会截断command列,而-ef不会。当结合grep时这种区别会影响到结果。
top和free
ps是静态的,top默认是5秒刷新的,按下P(按pid排序),M(内存使用情况排序),r设置目标pid的nice值,k给目标pid发送信号
nice和renice,都是调整进程优先级的,但是最终进城优先级是由操作系统分配的,nice值只能影响他。普通用户只能设置0-19,并且不能设置比上一次小的值。root可以设置-20~19。
fuser和lsof
fuser -muv /mnt3 lsof -i 看系统中有哪些开放的端口,哪些进程、用户在使用它们,比 netstat -lptu 的输出详细。 lsof -p pid 可以查看进程号为pid的进程打开了哪些文件或者占用了哪些fd。
SElinux
selinux 的属性数据存储在inode节点上,通过Z参数可以显示。
getenforce 查看selinux运行模式 semanage boolean -l 查看selinux安全策略 sestatus 查看selinux的状态 setsebool -P httpd_can_network_connect_db on 永久修改安全策略
查看拥有S权限的文件
SetUID的功能
只有可执行的二进制文件才能设定SUID权限。
命令执行者要对该文件拥有x(执行权限)。
命令执行者在执行该文件时获得该文件程序属主的身份(用户在执行拥有SUID权限的文件时会短暂获得该文件所有者的身份)。
SUID权限只在该程序执行过程中有效,也就是该身份改变只在程序执行过程中有效。
举个例子,拿passwd命令来说。passwd命令可以修改用户的密码,密码实际是被 写入/etc/shadow文件中的,但是/etc/shadow的权限是这样的
在这里插入图片描述
也就是除了root用户其他人没有任何权限(普通的读写执行权限对root用户不起作用),那么普通用户修改密码时时如何将密码写入/etc/shadow中的呢。
这个时候大家查看一下passwd的信息
在这里插入图片描述
大家可以看到这条命令普通用户是可以执行的,所有者权限也就是root用户x变成了s,也就是说这条命令有SUID权限。那么普通用户在使用这个命令的时候会短暂获得root用户的身份,那么就可以向/etc/shadow中写入数据。
SetGID的功能
SetGID对文件的作用
只有可执行的二进制文件才能设定SGID权限。 命令执行者要对该文件拥有x(执行权限)。 命令执行者在执行该文件的时候组身份变成该文件的所属组。 SGID权限同样只在该程序执行过程中有效,也就是说组身份改变只在程序执行过程中有效。
SetGID针对目录的作用
普通用户必须对此目录拥有r和x权限,才能进入此目录。 普通用户在此目录中的有效组会变成此目录的的所属组。 若普通用户对此目录有w权限时,在此目录中新建文件的所属组为此目录的所属组。
Sticky BIT粘着位作用
粘着位目前只对目录有效,作用可以概括为共享目录,但是限制用户的权限。 普通用户对该目录有w和x权限,即普通用户可以在此目录中写入权限。 如果没有粘着位,因为普通用户拥有w权限,所以可以删除此目录下的所有文件,包括其他用户创建的文件。但是一旦目录被赋予了粘着位,除root用户可以删除所有的文件,普通用户就算拥有w权限,也只能删除自己建立的文件,不能删除其他用户的创建的文件。
大写S和T出现的原因
上面三个文件特殊权限的前提是条件普通用户拥有x(执行)权限,那么如果用户没有执行权限但文件或目录却被赋予了文件特殊权限呢。 这里拿粘着位说一下。如果我们把/tmp目录的普通用户的执行权限去掉后再查看权限会发生什么。 这里大家可以看到t变成了T,同样的s也是同样道理。此时文件特殊权限是不生效的。
ll `which passwd` 可以看到本来是X位置的权限变成了S权限。
UID的值为4,GID的值为2,数字设置方法:chmod 4777 chmod2777. 其他常见权限t权限对应1,
find / -perm -4000 -o -perm -2000 查找user为S权限或者group为S权限的命令
awk和sed区别
1、sed是流编辑器,而awk是文本格式化工具; 2、awk适合对文本文件进行抽取整理,sed适合对二进制文件进行编辑; 3、sed读取一行数据,会以行作为单位进行处理,而awk读取一行,会切割成字段,以字段(列)为单位,进行细节处理。
排查僵尸进程
ps -aux | grep Z ps -ef | grep 子进程pid kill -s 9 父进程pid
|