1.用户和组管理
用户和组相关文件:
- /etc/passwd:用户及其属性信息
- /etc/shadow:用户密码及其相关属性
- /etc/group:组及其属性信息
- /etc/gshadow:组密码及其相关属性
/etc/passwd文件格式:
login name:登录用户名称
passwd:密码
UID:用户身份编号
GID:登录默认所在组编号
GECOS:用户全名或注释
home directory:用户主目录,家目录,如 /home/hong
shell:用户默认使用shell(如/bin/bash)
/etc/shadow文件格式:
登录用户名称
用户密码:一般用sha512加密
从1970年1月1日起到密码最近一次被更改的时间
用户和组的关系:
- 用户的主要组:用户必须属于一个且只有一个主组,默认创建用户时会自动创建主组
- 用户的附加组:一个用户可以属于零个或多个辅助组,附属组
1.1组管理
Linux中可以将一个或多个用户加入用户组中,用户组是通过GID(group identifie)来唯一标识。
- 管理员组:root - 0
- 普通组:
- 系统组:对守护进程获取资源进行权限分配
- 普通组:给用户使用
用户组命令:
- groupadd:添加组
- groupmod:修改组
- groupdel:删除组
- gpasswd:修改组密码
- newgrp:临时切换组
- groupmems:更改和查看组成员
- groups:查看用户组关系
1.2用户管理
linux中每个用户是通过UID(user identifie)来唯一标识的。
- 管理员UID:root - 0
- 普通用户UID:1-60000自动分配
- 系统用户:对守护进程获取资源进行权限分配
1-499(centos6版本以前),1-999(centos7版本之后) - 登录用户:给用户进行交互式登录使用
500+(centos6版本以前),1000+(centos7版本之后)
- 系统用户:对守护进程获取资源进行权限分配
用户管理命令:
useradd命令 - 可以创建新的Linux用户
#格式
useradd [option] LOGIN
#常用选项
-u:UID
-o:配合-u选项,不检查UID的唯一性
-g GID:指明用户所属基本组
-c "comment":用户注释信息
-d HOME_DIR:以指定路径为家目录
-s SHELL:指明用户默认shell程序
-G GROUP:为用户指明附加组,组须事先存在
-N:不创建私用组做主组,使用users组做主组
-r:创建系统用户
-m:创建家目录,用于系统用户
-M:不创建家目录,用于非系统用户
-p:指定密码
usermod命令 - 可以修改用户属性
#格式
usermod [option] LOGIN
userdel - 删除Linux用户
userdel [option]... LOGIN
#常见选项
-f,--force 强制
-r,--remove 删除用户家目录和邮箱
id - 查看用户的UID,GID信息
id [option]... [user]
#常见选项
-u:显示UID
-g:显示GID
-G:显示用户所属的组ID
-n:显示名称,需配合ugG使用
su - switch user:可以切换用户身份,并且以指定用户的身份执行命令
#格式
su [option...] [-] [user [args..]]
#常见选项
-l,--login su -l username,相当于su - username
-c,--command <command> 把一个简单命令传给shell
切换用户的方式:
- su username:非登录模式切换,即不会读取目标用户的配置文件,不改变当前工作目录,为不完全切换
- su - username:登录模式切换,会读取目标用户的配置文件,切换至自己家目录,即完全切换
passwd - 可以修改用户密码
#格式
passwd [options] usename
#常用选项
-d:删除指定用户密码
-l:锁定指定用户
-u:解锁指定用户
-e:强制用户下次登录修改密码
-f:强制操作
-n mindays
-x maxdays
-w warndays
-i inactivedays:非活动期限
--stdin:从标准输入接收用户密码
用户相关命令:
- chfn:指定个人信息
- chsh:指定shell
- finger:查看用户个人信息
2.用户权限管理
2.1 文件权限
常用命令
- chown:设置文件的所有者
- chgrp:设置文件的属组
2.1.1 文件权限介绍
文件权限对象定义:
- owner:属主,u
- group:属组,g
- other:其他,o
文件针对访问者的权限
- r:Readable 可读
- w:Writeable 可写
- x:Excutable 可执行
对文件的权限:
- r 可使用文件查看工具,如,cat,获取内容
- w 可修改其内容
- x 可以把此文件提请内核启动为一个进程,即可以执行此文件
对目录的权限:
- r 可以使用ls查看此目录中文件列表
- w 可在此目录中创建文件,也可以删除此目录中的文件,而和此被删除的文件的权限无关
- x 可以cd进入目录,可以使用ls -l看文件元数据,属于目录可访问的最小权限
- X 只给目录x权限,不给无执行权限的文件x权限
数学法权限:
- r 对应数字4
- w 对应数字2
- x 对应数字1
2.1.2文件授权
授权方式:
mode:who opt permission
who:u,g,o,a
opt:+,-,=
permission:r,w,x
实例:文件授权
#给文件授予用户写执行,组写执行,其他读执行
[root@local ~]# chmod u+wx,g-r,o=rx file.txt
#给目录递归授权,文件属组为读写执行权限
[root@local ~]# chmod -R g+rwx /testdir
#数字授权法:给文件授权用户读写,组读,其他用户读权限
[root@local ~]# chmod 644 file.txt
2.2 默认权限
umask - 可以用来保留在创建文件权限
实现方式:
- 新建文件:默认权限 666-umask,如果所得结果某位存在执行权限(奇数),则将其权限+1,偶数不变
- 新建目录:默认权限 777-umask
非特权用户umask默认是002
root的umask默认是022
umask用法:
[root@local ~]# umask
#模式方式显示
[root@local ~]# umask -S
#输出可被调用
[root@local ~]# umask -p
#修改umask值
[root@local ~]# umask num
持久保存umask
- 全局设置: /etc/bashrc
- 用户设置:~/.bashrc
2.3 特殊权限
r,w,x三种特殊权限:
- SUID
- SGID
- Sticky
二进制的可执行文件上SUID特殊权限功能:
1. 任何一个可执行程序文件能不能启动为进程,取决于发起者对程序文件是否拥有执行权限
2. 启动为进程后,其进程的属主为原程序文件的属主
3. SUID只对二进制可执行程序有效
4. SUID设置在目录上无意义
二进制的可执行文件上的SGID权限功能:
1. 任何一个可执行程序文件能不能启动为进程,取决于发起者对程序文件是否拥有执行权限
2. 启动为进程后,其进程的属组为原程序文件属组
Sticky权限功能:
1. 具有写权限的目录通常用户可以删除目录中的任何文件,无论该文件的权限或拥有权在目录设置Sticky位,只有文件的所有者或root可以删除该文件。
2. sticky设置在文件上无意义
特殊权限用法:
#给文件属主添加SUID权限
[root@local ~]# chmod u+s file.txt
#数字授权方式:给文件属主添加SUID权限
[root@local ~]# chmod 6xxx file.txt
#取消文件属主SUID权限
[root@local ~]# chmod u-s file.txt
#给文件属组添加SGID权限
[root@local ~]# chmod g+s file.txt
#数字授权方式:给文件属组添加SGID权限
[root@local ~]# chmod 2xxx file.txt
#取消文件属组SGID权限
[root@local ~]# chmod g-s file.txt
#给文件其他用户添加Sticky权限
[root@local ~]# chmod o+t dir
#数字授权方式:给文件其他用户添加Ssticky权限
[root@local ~]# chmod 1xxx dir
#取消文件其他用户Sticky权限
[root@local ~]# chomd o-t dir
设定文件特殊属性:
[root@local ~]# chattr +i file.txt #不能删除,改名,更改
[root@local ~]# chattr +a file.txt #只能追加内容,不能删除,改名
[root@local ~]# lsattr #显示特定属性
2.4 文件访问控制列表ACL
ACL - Access Control List,实现灵活的权限管理
除了文件的所有者,所属组和其他人,可以对更多的用户设置权限
ACL命令用法:
[root@local ~]# setfacl -m u:hong:- file.txt
[root@local ~]# getfacl file.txt
ACL备份和还原
主要的文件操作命令,如cp,mv都支持ACL,只是cp命令需要加上-p参数。
但tar等常见的备份工具是不会保留目录和文件的ACL信息
3.相关概念及操作
资源分派
- Authentication:认证,验证用户身份
- Authorization:授权,不同的用户设置不同权限
- Accouting | Audition:审计
安全上下文
Linux安全上下文context:运行中的程序,即进程(process),以进程发起者的身份运行,进程所能够访问的资源的权限取决于进程的运行者身份。