一、用户身份与文件权限
1、用户身份
1)用户UID
管理员:UID为0
系统用户:UID为1~999
普通用户:UID为1000~
2)useradd:添加用户
-d 指定家目录-e 指定到期时间-u 指定UID
-g 指定基本组-G 指定附加组-s 指定shell
3)usermod:修改用户属性
-c 备注信息
-d -m 修改家目录并迁移数据
-e 修改到期时间
-g 修改基本组
-G 修改附加组
-L 锁定用户
-U 解锁用户
-s 修改shell
-u 修改UID
4)userdel:删除用户
-r 删除用户及目录 (彻底删除)
5)passwd:操作账户敏感信息
passwd name 普通用户修改密码
-l 锁定用户
-u 解锁用户
--stdin 搭配管道输入密码
-d 允许用户使用空密码
-e 强制用户下次修改密码
-S 显示用户密码是否被锁定
2、文件权限
1)文件权限
r读 w写 x执行
4 2 1
对于目录 各种权限表达:
r 表示可读取目录中的文件列表
w 表示可以新增、删除等文件
x 表示可进入目录
2)文件类型
- 普通文件
d 目录文件
l 链接文件
b 块设备文件
c 字符设备文件
p 管道文件
3)权限表示
文件信息中:
第一个rwx 所有者的权限
第二个rwx 所属组的权限
第三个rwx 其他人的权限
3、文件权限修改
1)chgrp 修改文件所属组
chgrp [参数] [组] 文件
2)chmod 修改文件权限位
chmod a ?修改所有权限位
chmod u ?修改拥有者权限位
chmod g ?修改所属组权限位
chmod o ?修改其他人权限位
3)chown 修改权限所有者及祖
chown [参数] [用户] : [组] 文件
4、文件特殊权限
1)SUID
该权限对目录无效
其他人执行该文件时会临时被赋予拥有者权限
使用chmod u s 文件名 添加suid权限
s 表示suid权限 并且有执行权限
S 表示suid权限 但无执行权限
2)SGID
该权限针对目录
一旦目录拥有sgid权限位,那么在该目录下任何人创建的文件都属于该目录的组
使用chmod g s 目录名 添加sgid权限
3)SBIT
特殊保护位 用于目录
一旦设置该权限,那么任何人在该目录下创建的文件就只有创建者和root可以删除
chmod o t 目录名 添加sbit权限
4)权限表示
suid sgid sbit
4 2 1
数字表示的权限中:
第一个数字代表特殊权限位
第二个数字代表所有者权限位
第三个数字代表所属组权限位
第四个数字代表其他人权限位
5、文件默认权限
1)umask 查看用户创建文件时的默认权限
例:假设umask为n
则目录默认权限位为0777-n
文件默认权限位为0666-n
2)umask -S 显示格式化权限位信息
3)umask [数字权限位] 可临时修改默认权限位
4)修改/etc/profile 可永久修改默认权限位
6、文件隐藏属性
1)chattr 设置文件隐藏权限
chattr /- 可以增/减隐藏权限
i 无法对文件进行修改
a 只允许追加 无法删除覆盖
A 不再修改最后访问时间
b 不再修改存取时间
c 默认将文件、目录进行压缩
u 删除后仍保留硬盘中的数据
2)lsattr 显示文件的隐藏权限
7、文件访问控制ACL
1)设置ACL权限 -m
1.1)对用户设置
setfacl -m u:用户名:权限 文件路径
例:setfacl -m u:h0ss:rw file
1.2)对组设置
setfacl -m g:组名:权限 文件路径
例:setfacl -m g:h0ss:rw file
1.3)对所有者/所属组设置
对所有者设置: setfacl -m u::权限 文件路径
对所属组设置: setfacl -m g::权限 文件路径
2)目录设置默认ACL权限
为所有用户设置默认ACL:
setfacl -m d:u::权限 目录路径
为所有组设置默认ACL:
setfacl -m d:g::权限 目录路径
为用户设置默认ACL:
setfacl -m d:u:用户名:权限 目录路径
为组设置默认ACL:
setfacl -m d:g:组名:权限 目录路径
3)查看文件ACL权限
getfacl 文件路径
注:ACL权限为顺序匹配
例:user::rwx user:x:r
假如file文件所有者是x 那么对他设置任何acl权限都无效 他的acl权限为所有者权限
4)删除ACL权限 -x
删除单一用户权限setfacl -x u:用户名 文件路径
删除所有者用户权限setfacl -x u:: 文件路径
5)删除全部ACL权限 -b
setfacl -b 文件路径
8、切换用户 su sudo
1)su 用于用户信息切换
su - 用户名 --->表示完全切换到新用户 连同环境变量也进行变更【建议使用】
su 用户名 ---> 环境变量不更改
2)sudo 为普通用户赋予额外权限
可以使用visudo进行sudoer配置修改,这个命令的好处是禁止多用户同时修改,并且支持语法检查
参数:
-u 以指定用户身份运行
-k 清空密码有效时间 下次用sudo仍需密码
-b 后台运行命令
二、Systemd服务管理
1、服务管理命令
systemctl 查看服务列表
systemctl start [服务名] 开启服务
systemctl stop [服务名] 关闭服务
systemctl restart [服务名] 重启服务
systemctl reload [服务名] 重新加载服务配置,该命令可使修改配置后重新生效
systemctl status [服务名] 查看服务状态
systemctl enable [服务名] 设置服务开机自启动
systemctl disable [服务名] 关闭服务开机自启
systemctl is-enable [服务名] 查看服务是否开机自启动
systemctl mask [服务名] 屏蔽服务
systemctl umask [服务名] 取消服务屏蔽
2、服务状态
loaded 服务单元配置已被处理
active(running) 服务进行中
active(exited) 一次性服务已成功运行并退出
active(waiting) 服务已运行但等待中
inactive 服务没有在运行
enabled 服务设定为开启启动
disabled 服务设置为开机不启动
static 服务不能被设置为开机启动