25 Sept
特殊文件与程序
17.4.1 具有SUID/SGID权限的命令执行状态
先看看SUID的程序是如何被一般用户执行,且具有什么特色呢?
查询整个系统的SUID/SGID的文件:
find / perm + 6000
17.4.2 /proc/*代表的意义
进程中的数据都是写入到/proc/*这个目录下的,所以可以直接查看/proc这个目录中的文件。
主机上面各个进程PID都是以目录的类型存在/proc中,比如开机执行的第一个进程PID==1, 可以直接浏览PID为1的数据。
可以着重留意一下这两个文件:
17.4.3 查询已打开文件或已执行程序打开的文件
- fuser : 通过文件(或文件系统)找出正在使用该文件的程序
比如说,使用umount指令时系统通知”device is busy”,可以用fuser来追踪。
fuser [-umv] [-k [i] [-signal]] file/dir
eg. 找出目前所在目录的使用PID/所属账号/权限
eg. 找到所有使用到/proc这个文件系统的进程
fuser -uv /proc
-m 有几个进程在进行/proc文件系统的访问
fuser可以让我们了解到某个文件(或文件系统)目前正在被哪些进程所利用。
eg fuser -ki /var/gdm/.gdmfifo
- lsof : 列出被进程所打开的文件名
相对于fuser是由文件或者设备去找出使用该文件或设备的进程,losf是查出某个进程打开或者使用哪些文件与设备。
lsof [-aUu] [+d]
# -a : 多项数据需要“同时成立”才显示出结果
# -U : 仅列出Unix like系统的socket文件类型
# -u : 后面接username, 列出该用户相关进程所打开的文件
# +d : 后面接目录,即找出某个目录下面已经被打开的文件
eg.
lsof -u root -a -U
-a的用途就是解决同时需要两个选项都成立. -u root & -U
- pidof : 找出某个正在执行的进程的PID
pidof [-sx] program_name
# -s: 仅列出一个PID而不列出所有的PID
# -x: 同时列出该program name可能的PPID那个进程的PID
SELinux
- Security Enhanced Linux, 安全强化的Linux之意。SELinux是在运行程序、文件等权限设置依据的一个内核模块。控制网络服务能否访问系统资源。
DAC: Discretionary Access Control. 自主访问控制(当用户取得程序后,他可以通过这个进程与自己默认的权限来处理他自己的文件资源)
MAC:Mandatory Access Control,强制访问控制(针对特定的进程与特定的文件资源来进行权限的控制。就是,即使是root, 在使用不同进程时,所取得的权限不一定是root。)
检查网络服务vsftpd启动的是哪个端口?
netstat -tlunp | grep vsftpd