特殊权限SUID,SGID和SBIT
SUDI
- SUID权限仅对二进制程序有效
- 执行者对于该程序有x的权限
- 本权限仅在执行该程序的过程中有效
- 执行者将具有该程序拥有者的权限
例如:一般用户可以输入passwd修改自己的密码,一般用户对/usr/bin/passwd 这个程序有x权限, 表示一般用户可以执行passwd, 但是passwd的拥有者是root, 一般用户执行passwd过程中,会暂时获得root权限, /etc/shadow 可以被一般用户修改。SUID仅可以在二进制程序上,不能够在shell脚本上面。
SGID
- SGID对二进制有效
- 程序执行者对于该程序来说,需具备x的权限
- 执行者在执行的过程中将会获得程序用户组的支持
- 也能用在目录中
SBIT
- 只针对目录有效
- 当用户对目录具有r与x权限时, 既具有写入权限
- 当用户有SBIT权限在该目录下建立文件或目录时,仅有自己与root才能删除文件
SUID:4 SGID:2 SBIT:1
chomd 4755 ==> -rwsr-xr-x 原本是755 ==> -rwxr-xr-x 前面加了个4 SUID把x变成s, -rwsr-xr-x
chomd 6755 ==> -rwsr-sr-x 原本是755 ==> -rwxr-xr-x 前面加了6, 要设置SUID和SGID
chomd 1755 ==> -rwxr-xr-t
chomd 7666 ==> -rwSrwSrwT 大写,说明没有x权限
/proc/*
主机上的各个进程的pid都以目录的形式存在于/proc 中
ll /proc 查看所有的进程文件
ll /proc/1 查看进程的pid是1的
查询已使用的文件或已执行进程使用的文件
fuser: 找出正在使用该文件或目录的进程
-u 除了进程的pid之外,同时列出进程的拥有者
-m 后面接的那个文件名会主动地上提到该文件系统的最顶层
-v 可以列出每个文件与进程还有命令的完整相关性
-k 找出使用文件/目录地pid,并试图以SIGKILL这个信号给予该pid
-i 必须-k配合,在删除pid之前会先询问
[root@ ~]# fuser -uv .
USER PID ACCESS COMMAND
/root: root 812 ..c.. (root)aliyun-service
root 6079 ..c.. (root)bash
其中ACCESS:
c: 此进程在当前的目录下
e: 可被触发为执行状态
f:是一个被开启的文件
r:代表顶层目录
F: 该文件被使用了,不过在等待响应中
m: 可能为共享的动态函数库
lsof: 列出进程所使用的文件名称
-a: 多项数据需要同时成立
-u:后面加username, 列出该使用者相关进程使用的文件
-U 仅列出UNIX-likle 系统的socket文件类型
+d: 后面接目录,找出某个目录下面已经使用的文件
lsof 默认没安装 要yum install lsof -y 安装
lsof # 默认情况下会将目前系统上面已经打开的文件全部列出来
lsof -u root -a -U
pidof : 找出某个正在执行的PID
-s 仅列出一个PID而不列出所有的pid
pidof systemd rsyslogd
systenctl 管理单一服务的启动/开机/ 查看状态
systemctl
start: 立刻启动后面的unit
stop: 立刻关闭后面的unit
restart: 重启
reload: 重新加载配置
enable: 后面接的unit会开机自启动
disable: 会自启动
status: 列出状态信息
is-active: 目前是否正在运行
is-enable: 是否开机自启
[root@ ~]# systemctl status atd.service
● atd.service - Job spooling tools
Loaded: loaded (/usr/lib/systemd/system/atd.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2019-08-14 08:43:17 CST; 2 months 2 days ago
Main PID: 534 (atd)
CGroup: /system.slice/atd.service
└─534 /usr/sbin/atd -f
systemctl stop atd.service 关闭这个服务
loaded:是否开机自启动, enabled.disabled 开机是否自启动, static 不可以自启动,不过可能会被其他的自启动服务来唤醒。mask:无论如何都不会被启动,可以通过systemctl unmask 改回默认状态
Active: 是否正在运行,running正在运行,dead死了, exited 仅执行一次就正常结束的服务。 waiting: 正在运行当中,不过还需要等待其他的事件发生继续运行。 inactive: 目前没在运行。