目录
二、用户和组相关的管理命令(useradd、passwd、配置文件)
一、用户和组介绍(安全上下文、组、用户配置文件)
-
认证方式
- token:密码认证,不区别于用户名,
- identity(username/password):密码+用户名认证
-
资源分配使用的3A机制
- Authentication:认证⇨Authorization:授权⇨Accouting:审计【也有称audition】
-
Linux用户:Username/UID
- 管理员:root,0
-
普通用户:1-65536
-
系统用户:1-499【centos6】,1-999【centos7】
- 作用:对守护进程获取资源进行权限分配
-
登录用户:500+【centos6】、1000+【centos7】
- 作用:交互式登录
-
系统用户:1-499【centos6】,1-999【centos7】
-
Linux组:Groupname/GID
- 管理组:root,0
-
普通组
- 系统组:1-499【centos6】,1-999【centos7】
- 普通组:500+【centos6】,1000+【centos7】
-
Linux安全上下文
- 完成任务是运行中的程序:进程(process)
-
以进程发起者的身份运行
- root:cat【root用户可访问成功】
- test:cat【test用户访问失败】
- 总结:进程能够访问的所有资源的权限取决于进程发起者的身份
-
Linux的类别
-
用户的基本组(主组):
- 组名同用户名,且仅包含一个用户,私有组
-
用户的附加组(额外组):
- 一个用户,可以属于多个组
-
uid:用户UID gid:用户组GID groups:附加组【默认和gid相同】
-
用户的基本组(主组):
-
Linux用户和组相关的配置文件
-
/etc/passwd:用户及其属性信息(名称、UID、基本组ID等等)【不保存密码】
- 帮助查看其文件格式命令:man 5 passwd
-
name:password:UID:GID:GECOS:directory:shell
- 用户名:密码:UID:GID:GECOS:主目录:默认shell
-
/etc/group:组及其属性信息
- 帮助查看其文件格式命令:man 5 group
-
group_name:password:GID:user_list
- 组名:组密码:GID:以当前组为附加组的用户列表(分隔符为逗号)
-
/etc/shadow:用户密码及其相关属性;
- 帮助查看其文件格式命令:man 5 shadow【共九个字段】
-
查看shadow文件:cat /etc/shadow【以 :分割各字段】
- 用户名:加密了的密码:最近一次更改密码的日期:密码的最小使用期限:最大密码使用期限:密码警告时间段:密码禁用期:账户过期日期:保留字段
-
加密机制
- 加密:明文--> 密文
- 解密:密文--> 明文
-
单向加密:提取数据指纹【从文件可以加密,不能从加密解密出文件】
- md5: message digest, 128bits
- sha1: secure hash algorithm, 160bits
- sha224: 224bits
- sha256: 256bits
- sha384: 384bits
-
sha512: 512bits
-
特性
- 1、雪崩效应:初始的条件的微小改变,将会引起结果的巨大改变
- 2、定长输出
-
特性
-
密码的复杂性策略
- 1、使用数字、大写字母、小写字母及特殊字符中至少3种
- 2、足够长
- 3、使用随机密码
- 4、定期更换;不要使用最近曾经使用过的密码
-
/etc/gshadow:组密码及其相关属性;
- 帮助查看其文件格式命令:man 5 gshadow【共九个字段】
-
查看shadow文件:cat /etc/gshadow【以 :分割各字段】
- !:标识禁用状态
- 组名:加密了的密码:管理员:成员
- 帮助查看其文件格式命令:man 5 gshadow【共九个字段】
-
/etc/passwd:用户及其属性信息(名称、UID、基本组ID等等)【不保存密码】
二、用户和组相关的管理命令(useradd、passwd、配置文件)
-
用户创建:useradd
- 格式:useradd [options] LOGIN
- -u UID: [UID_MIN, UID_MAX], 定义在/etc/login.defs【不指定,默认从最大的ID号上+1】
- -g GID:指明用户所属基本组,可为组名,也可以GID【组名必须事先存在】
- -c "COMMENT":用户的注释信息
-
-d /PATH/TO/HOME_DIR: 以指定的路径为家目录
-
所有的用户家目录下,都会存在从:/etc/skel/【下copy文件,定义了用户的家环境】
-
所有的用户家目录下,都会存在从:/etc/skel/【下copy文件,定义了用户的家环境】
- -s SHELL: 指明用户的默认shell程序,可用列表在/etc/shells文件中
- -G GROUP1[,GROUP2,...[,GROUPN]]]:为用户指明附加组;组必须事先存在
- -r: 创建系统用户
-
/etc/default/useradd:添加用户的读取的默认文件
-
useradd -D -s shell:修改配置文件,设置为shell
-
useradd -D -s shell:修改配置文件,设置为shell
-
组创建:groupadd
-
格式:groupadd [OPTION]... group_name
- -g GID: 指明GID号;[GID_MIN, GID_MAX]、定义在/etc/login.defs【不指定,默认从最大的ID号上+1】
-
-r: 创建系统组
- CentOS 6: ID<500
- CentOS 7: ID<1000
-
格式:groupadd [OPTION]... group_name
-
查看用户相关的ID信息:id
-
格式:id [OPTION]... [USER]
- -u: UID
- -g: GID
- -G: Groups
- -n: Name【id -G -n:显示GID号的组名】
- id test1 -u :查看用户test1的用户UID
-
格式:id [OPTION]... [USER]
-
切换用户或以其他用户身份执行命令:su
-
格式:su [options...] [-] [user [args...]]
-
切换用户的方式
- su UserName:非登录式切换,即不会读取目标用户的配置文件
- su - UserName:登录式切换,会读取目标用户的配置文件;完全切换;
- 注意:root su至其他用户无须密码;非root用户切换时需要密码;
-
换个身份执行命令
- su [-] UserName -c 'COMMAND'
- -l:“su -l UserName”相当于“su - UserName”
-
切换用户的方式
-
格式:su [options...] [-] [user [args...]]
-
用户属性修改:usermod
-
格式:usermod [OPTION] login
- -u UID: 新UID
- -g GID: 新基本组
- -G GROUP1[,GROUP2,...[,GROUPN]]]:新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用-a选项,表示append;
- -s SHELL:新的默认SHELL
- -c 'COMMENT':新的注释信息;
- -d HOME: 新的家目录;原有家目录中的文件不会同时移动至新的家目录;若要移动,则同时使用-m选项;
- -l login_name: 新的名字;
- -L: lock指定用户
- -U: unlock指定用户
- -e YYYY-MM-DD: 指明用户账号过期日期
- -f INACTIVE: 设定非活动期限
-
格式:usermod [OPTION] login
-
给用户添加密码:passwd
- 格式:passwd [OPTIONS] UserName 【修改指定用户的密码,仅root用户权限】
-
passwd: 修改自己的密码
- -l: 锁定指定用户
- -u: 解锁指定用户
- -n mindays: 指定最短使用期限
- -x maxdays:最大使用期限
- -w warndays:提前多少天开始警告
- -i inactivedays:非活动期限
-
--stdin:从标准输入接收用户密码;
- echo "PASSWORD" | passwd --stdin USERNAME
-
特殊设备:
- /dev/null, bit buckets【数据黑洞,可以吞噬所有数据,不保存在硬盘上】
- /dev/zero【可以永远吐出】
-
删除用户:userdel
-
格式:userdel [OPTION]... login
- -r: 删除用户家目录
-
格式:userdel [OPTION]... login
-
组属性修改:groupmod
-
格式:groupmod [OPTION]... group
- -n group_name: 新名字
- -g GID: 新的GID
-
格式:groupmod [OPTION]... group
-
组删除:groupdel
- groupdel GROUP
-
组密码:gpasswd
- 格式:gpasswd [OPTION] GROUP
- -a user: 将user添加至指定组中
- -d user: 删除用户user的以当前组为组名的附加组
- -A user1,user2,...: 设置有管理权限的用户列表
-
newgrp命令:临时切换基本组;
- 如果用户本不属于此组,则需要组密码
- 检查密码文件的完整性:pwck
-
修改用户密码属性:chage
- 格式:chage [OPTION]... LOGIN
- -d LAST_DAY:最近一次修改密码时间
- -E, --expiredate EXPIRE_DATE:修改的账号的过期期限
- -I, --inactive INACTIVE:非活动期限
- -m, --mindays MIN_DAYS:密码最小使用天数
- -M, --maxdays MAX_DAYS:密码最大使用天数
- -W, --warndays WARN_DAYS:提前多少天开始警告
-
其他命令:chfn
-
chfn test:修改name用户的名字、办公、办公电话、家庭电话
-
chfn test:修改name用户的名字、办公、办公电话、家庭电话
-
chsh:修改shell
-
chsh zhangzhang
-
chsh zhangzhang
三、权限管理(chown、chmod)
-
文件的权限主要针对三类对象进行定义
- owner: 属主, 缩写:u
- group: 属组, 缩写:g
- other: 其他, 缩写:o
-
每个文件针对每类访问者都定义了三种权限:
- r: Readable【可使用文件查看类工具获取其内容】
- w: Writable【可修改其内容】
- x: eXcutable【可以把此文件提请内核启动为一个进程】
-
对目录来说,r、w、x
- r: 可以使用ls查看此目录中文件列表
- w: 可在此目录中创建文件,也可删除此目录中的文件
- x: 可以使用ls -l查看此目录中文件列表,可以cd进入此目录
-
权限转变成二进制数
- 权限:--- 位数:000 二进制数:0
- 权限:--x 位数:001 二进制数:1
- 权限:-w- 位数:010 二进制数:2
- 权限:-wx 位数:011 二进制数:3
- 权限:r-- 位数:100 二进制数:4
- 权限:r-x 位数:101 二进制数:5
- 权限:rw- 位数:110 二进制数:6
- 权限:rwx 位数:111 二进制数:7
-
修改文件权限:chmod
- 格式:chmod [OPTION]... OCTAL-MODE FILE...
- -R: 递归修改权限,目录下的文件同样修改为此权限
-
修改一类用户的所有权限:Mode
- u=rwx:属主增加读、写、执行
- g=
- o=
- ug=rwx:属主、属组增加读、写、执行
- a=rwx:属主、属组、其他增加读、写、执行
- u=,g=
-
修改一类用户某位或某些位权限
- u + w:属主增加写权限
- o - r:其他减少读权限
-
参考RFILE文件的权限,将FILE的修改为同RFILE;
- chmod [OPTION]... --reference=RFILE FILE...
- 例子:chmod --reference=./c.txt a.txx 【把a.txt的权限修改的和c.txt权限一致】
-
修改文件的属主和属组:仅root可用
- 修改文件的属主:chown
-
格式:chown [OPTION]... [OWNER][:[GROUP]] FILE...
- OWNER 【只改属主】
- OWNER:GROUP【修改属主、属组】
- :GROUP【只改属组】
- 注意:命令中的冒号可用【 . 】替换
- -R:【把目录及目录下的文件,都该变属组,属主】
-
参考RFILE文件的权限,将FILE的修改为同RFILE
- 格式:chown [OPTION]... --reference=RFILE FILE...
- 例子:chmod --reference=./c.txt a.txx 【把a.txt的属组、属主权限修改的和c.txt权限一致】
- 修改文件的属组:chgrp【与chown权限一致】
-
文件或目录创建时的遮罩码:umask【root用户是0022】
-
FILE权限: 666-umask
- 如果某类的用户的权限减得的结果中存在x权限,则将其权限+1
- DIR权限: 777-umask
- umask: 查看umask
- umask #: 设定umask的值,仅对当前shell进程有效,如果都有效,需要写入配置文件
-
FILE权限: 666-umask