案例一:切换用户,切换后保持当前用户所在的目录,并使用当前用户的环境变量
# su <user>
案例二:切换用户,切换后进入被切换用户的家目录,并使用被切换用户的环境变量
# su - <user>
# su <user>
# su - <user>
# getcap /usr/bin/ping
(补充:确认没有输出结果)
# sysctl net.ipv4.ping_group_range="0 2147483647"
# setcap cap_net_raw+eip /usr/bin/ping
# getcap /usr/bin/ping
/usr/bin/ping = cap_net_raw+eip
# sysctl net.ipv4.ping_group_range="1 0"
# sysctl net.ipv4.ping_group_range="0 2147483647"
如果是 Rocky Linux & RHEL:
ping: socket: Address family not supported by protocol
如果是 openSUSE & SLES:
Error: ping: socket: Operation not permitted
# vim /etc/audit/rules.d/audit.rules
添加以下内容:
......
-a exit,always -F dir=/tmp -F perm=rwxa
(补充:这里以监控目录 /tmp 里的目录和文件为例)
# vim /etc/audit/rules.d/audit.rules
添加以下内容:
......
-a exit,always -S unlink -S unlinkat -S rmdir -S rename -S renameat -F path=/dev/null
(补充:这里以监控目录 /dev/null 文件为例)
# service auditd restart
# cat /var/log/audit
(
补充:记录里的
1) nametype=CREATE 字段代表创建
2) nametype=NORMAL 字段代表普通
3) nametype=DELETE 字段代表删除
)
或者:
# sudo ausearch -i -k user-modify
(补充:这里以显示文件被修改的记录为例)
# lsof | more
COMMAND PID TID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd 1 root cwd DIR 251,1 4096 1 /
......
1) COMMAND 进程名
2) PID (Process Id) PID 号
3) USER 用户
4) FD 文件描述信息
(补充:cwd 代表当前目录,txt 代表 txt 文件,rtd 代表 root 目录,mem 代表内存映射文件)
5) TYPE 文件类型
(补充:DIR 代表当前目录,REG 代表普通文件,CHR 代表字符,a_inode 代表 Inode 文件,FIFO 代表管道或者 socket文件,netlink 代表网络,unkonwn 代表未知)
6) DEVICE 设备 ID
7) SIZE/OFF 进程大小
8) NODE 文件的 Inode 号
9) NAME 路径或链接
# lsof | grep deleted
# lsof -u zhumingyu mingyuzhu
(补充:这里以显示用户 zhumingyu 和 mingyuzhu 已打开的文件为例)
# lsof -u mingyuzhu
(补充:这里以不显示用户 mingyuzhu 已打开的文件为例)
# lsof -p 1024
(补充:这里以显示 PID 号是 1024 已打开的文件为例)
# lsof -p ^1024
(补充:这里以不显示 PID 号是 1024 已打开的文件为例)
# lsof -p 1,2,3
(补充:这里以显示 PID 号是 1、2 和 3 已打开的文件为例)
# lsof -i
# lsof -i 4
# lsof -i 6
# lsof -i TCP
# lsof -i UDP
# lsof -i:22
(补充:这里以显示 TCP 或者 UPD 的 22 端口已打开的文件为例)
# lsof -i TCP:22
(补充:这里以显示 TCP 的 22 端口已打开的文件为例)
# lsof -i TCP:1-1024
(补充:这里以显示 TCP 的 1 端口到 1024 端口打开的文件为例)