1 Linux 安全模型
1.1 用户
Linux中每个用户是通过User Id 来唯一标识的
- 管理员:root,0
- 普通用户:1-60000自动分配
1.2 用户组
Linux中可以将一个或多个用户加入到用户组中,用户组是通过Group ID来唯一标识的。
- 管理员组:root,0
- 普通组:
系统组:对守护进程获取资源进行权限分配
普通组:给用户使用
1.3 用户和组的关系
- 用户的主要组:用户必须属于一个且只有一个主组,默认创建用户时,会自动创建和用户名同名的组,作为用户的主要组。
- 用户的附加组:一个用户可以属于零个或多个辅助组,附属组
用id+文件名
查看文件的主要组和附加组
1.4 安全上下文
运行中的程序,以进程发起者的身份运行,非程序本身。
2 用户和组的配置文件
2.1 用户和组的主要配置文件
- /etc/passed:用户及其附属信息
- /etc/shadow:用户密码及其相关属性
- /etc/group:组及其属性信息
- /etc/gshadow:组密码及其相关属性
2.2 passwd 文件格式
- login name:登陆用户名
- passwd:密码
- UID:用户身份编号
- GID:登陆默认所在组编号
- GECOS:用户全名或注释
- home directory:用户主目录
- shell:用户默认使用shell
2.3 shadow文件格式
更改密码加密算法:
authconfig --passalgo=sha256 --update
生成随机密码:
tr -dc '[:alnum:]' < /dev/urandom | head -c 12
2.4 group 文件格式
群组名称
群组密码:通常不需要设定,密码是被记录在/etc/gshadow
GID:就是群组的ID
2.5 gshdow文件格式
群组名称:群的名称
群组密码
组管理员组列表:组管理员的列表,更改组密码和成员
以当前组为附加组的用户列表:多个用户间用逗号分隔
2.6 文件操作
- vipw、vigr:有检查语法的功能
- pwck:检查etc的文件格式
3 用户和组管理命令
3.1 用户创建
useradd 命令可以创建新的Linux用户
格式:
useradd [options] LOGIN
//useradd
命令可以创建新的Linux用户
newusers passwd <文件>
//批量创建用户
echo username:passwd | chpasswd
///批量修改用户口令
3.2 用户修改属性
usermod
命令可以修改用户属性
格式:
usermod [OPTION] login
3.3 删除用户
userdel
可以删除Linux用户
格式:
userdel [OPTION] ... login
3.4 查看用户相关的ID信息
id
命令可以查看用户的UID,GID 等信息
格式:
id [OPTION] ... [USER]
3.5 切换用户或以其他用户身份执行命令
su
命令可以切换用户身份,并且以指定用户的身份执行命令
格式:
su [OPTIONS...] [-] [user [args...]]
su [-] username -c 'COMMAND'
//换个身份执行命令
3.6 设置密码
passwd
可以修改用户密码
格式:
passwd [OPTIONS] userName
3.7 修改用户密码策略
change
可以修改用户密码策略
格式:
change [option]... login
3.8 用户相关的其他命令
- chfn 指定个人信息
- chsh指定shell,相当于usermod -s
- finger可以查看用户个人信息
3.9 创建组
groupadd
实现创建组
格式:
groupadd [option]... group_name
3.10 修改组
groupmod
修改组属性
格式:
groupmod [option]... group
3.11 组删除
groupdel
可以删除组
格式:
groupdel [option]GROUP
3.11 更改组密码
gpasswd
可以更改组密码,也可以修改附加组的成员关系
格式:
gpasswd [option] GROUP
3.12 临时切换主组
newgrp
命令可以临时切换主组,如果用户不属于此组,则需要组密码。
newgrp [ - ] [group]
3.13 更改和查看组成员
groupmems
可以管理附加组的成员关系
格式:
groupmems [options] [action]
groups
可查看用户组关系
格式:
groups [option]. [USERNAME]...
4 文件权限管理
4.1 文件所有者和属组属性操作
4.1.1 设置文件的所有者chown
chown
命令可以修改文件的属主,也可以修改文件属性
格式:
chown [option]... [owner] [:[group]] file...
chown [option]... --reference=rfile file...
4.2 设置文件的属组信息chgrp
chgrp
命令可以只修改文件的属组
格式:
chgrp [option]... group file...
chgrp [option]... --reference=rfile file...
-R 递归
4.2 文件权限
4.2.1 文件权限说明
- owner 属主,u
- group 属组,g
- other 其他,o
4.2.2 修改文件权限chmod
格式:
chmod [option]... MOOE[,MOOE]... FILE...
chmod [OPTION]... OCTAL-MOOE FILE...
4.3 新建文件和目录的默认权限
umask 的值可以用来保留在创建文件权限
umask #
//修改umask
持久保存umask
- 全局设置:/etc/bashrc
- 用户设置:-/.bashrc
4.4 设定文件特殊属性
可以访问root用户误操作删除或修改文件
chattr +i
//不能删除、改名和更改
chattr +a
//只能追加内容,不能删除,改名
lsatt
显示特定属性
4.5 访问控制列表ACL
4.5.1 ACL权限功能
ACL,实现灵活的权限管理
除了文件的所有者,所属组和其他人,可以对更多的用户设置权限
**ACL生效顺序:**所有者,自定义用户,自定义组,其他人
4.5.2 ACL相关命令
setfacl可以设置ACL权限
getfacl可查看设置的ACL权限