文件属主 文件属组 其它用户
权限隔离机制 (基于多用户实现)
操作系统识别用户
用户:UID 组:GID 逻辑容器:包含用户 实现多个用户对于某个文件或应用程序分配相同的权限)
用户分类:
管理员用户:root UID:0 普通用户:1000-65535 程序(系统)用户:1-999
组分类: 逻辑容器,实现为用户集中授权
管理员组/普通组 基本组:Linux的中,新建用户时,没有指定隶属于的组,系统会为该用户指定一个同名组,作为该用户的基本组 附加组:方便以后为用户分配权限,有效组
用户名解析:
/ etc / passwd : 存储用户基本信息
第一列:用户的登录名 第二列:加密密码(x:标识密码占位符,密码保存在/ etc / shadow) 第三列:UID号 第四列:GID号 第五列:用户的描述信息 第六列:用户的宿主目录 第七列:用户默认使用的shell
/etc/shadow:存储用户的影子口令
第一列:用户得到登录名 第二列:用户加密后的密码 密码区域解释:$id$salt$encypted man 3 crypt 第一部分:加密算法,以id号区分 1. MD5 5. SHA-256 6. SHA512 第二部分:随机序列号,目的抗撞库 第三部分:随机序列号和密码共同加密后的字符串 第三列:最后一次密码更改的时间 第四列:密码最短使用时间(用户无法更改密码) 第五列:密码最长使用时间(用户必须更改密码) 第六列: 用户密码过期前的警告时间 第七列: 密码过期后一个宽限时间 第八列: 用户密码失效时间 第九列: 保留选项
/ etc / group:存储组的基本信息
/etc/default/useradd
GROUP=100 可以创建普通组 HOME=/home 普通用户宿主目录 INACTIVE=-1 是否启用用户过期停止使用权,-1表示不启用 EXPIRE= 过期时间:20170501 SHELL=/bin/bash 默认使用shell SKEL=/etc/skel 新用户宿主目录模板目录 CREATE_MAIL_SPOOL=yes · 是否启用邮件通知功能
/etc/skel/ :用户宿主目录的模板目录 只对新建用户生效
.bash_logout 用户注销时执行党的命令 .bash_profile 用户登录系统时执行的命令 .bashrc 用户登录新shell时执行的命令
/etc/login.defs : 只对新建用户生效
MAIL_DIR /var/spool/mail //用户邮件目录 PASS_MAX_DAYS 99999 //密码最长使用期限 PASS_MIN_DAYS 0 //密码最短使用期限,0代表不受限制 PASS_MIN_LEN 5 //密码最短长度 PASS_WARN_AGE 7 //密码过期警告时间 UID_MIN 500 //普通用户最小UID号 UID_MAX 60000 //普通用户最小UID号 SYS_UID_MIN 201 //系统用户最小UID SYS_UID_MAX 999 GID_MIN 500 GID_MAX 60000 SYS_GID_MIN 201 SYS_GID_MAX 999 CREATE_HOME yes //时候出房间宿主目录 UMASK 077 //关于权限反掩码 USERGROUPS_ENAB yes //删除用户时是否删除组 ENCRYPT_METHOD SHA512 //用户密码的加密方式
useradd : 添加新用户 (更改/etc/passwd /etc/shadow /etc/group /home/username)
useradd [options] username -c 为用户添加描述信息 -d 指定用户宿主目录 -D 改变默认值,修改/etc/default/useradd里的默认配置,不加选项可以查看默认配置 -g 修改组 -b 修改宿主目录 -f 修改过期是否停用 -e 修改过期时间 -s 修改默认shell -e 新建用户时,设置默认过期时间 -g 指定用户的基本组(没有该选项,Linux新建用户时会新建同名组,作为用户的基本组) -G 新建用户时,指定用户的附加组,可以有多个,以,隔开 -m 创建宿主目录,和-k(指定skel)一起使用 -M 创建用户时,不创建宿主目录 -p 创建用户时,设置加密密码 -r 创建系统用户(不创建宿主目录,UID和GID为系统ID) -s 指定默认shell -u 指定用户的UID,不加该选项默认加1
passwd : 修改用户密码
普通用户设置密码时,先验证当当前密码,符合密码策略 root用户设置密码时,不验证当前密码,不要求符合密码策略 pass [options] username 不加选项表示为自己设置密码 -l 锁定用户(暂时无法登录系统) -u 解锁用户 -S 查看用户状态,显示/etc/shadow文件中各个字段的内容
--stdin 标准输入,经常用于shell脚本编程
-d delete用户密码,允许普通用户以空密码登录 -e 快速设置用户密码过期,用户登录时需要修改密码 -n 设置密码最小使用天数,修改shadow中第四列 -x 设置密码最大使用期限 -w 设置密码过期前的警告时间 -i 设置密码过期后的宽限时间
userdel : 删除用户 userdel [options] username (更改/etc/passwd /etc/shadow /etc/group)
-r 删除用户时,连同删除宿主目录
usermod : 修改用户属性 usermod [options] username (修改 /etc/passwd)
-c 更改用户的描述信息
-d 更改用户的宿主目录 -e 更改用户的过期时间,格式为年-月-日 -f 更改/etc/shadow第七列内容 -g 修改用户的基本组 -G 修改用户的附加组 -l 修改用户的登录名,修改passwd
-s 修改用户的shell -L 锁定用户 -U 解锁用户
chsh 修改用户的shell,相当于usermod -s ,chsh [options] username
-s 更改用户的shell
比如限制apache用户登录系统(/sbin/nologin) -l 显示当前系统支持的shell(/etc/shells)
finger 显示用户的基本信息
chfn 修改用户的基本信息
-o 修改办公室 -p 修改办公室电话号码 -h 修改家庭电话号码 -f 修改用户名
id 显示用户和组的ID id [options] username
id 显示当前用户id -a 忽略系统版本差别 -Z 显示安全上下文内容 -g 显示基本组id -G 显示所属组的id -n 不显示组号,显示组名 -u 仅显示用户ID
chagel 修改用户密码的时间信息(shadow) chagel [options] username
-l 列出用户详细的密码参数 -d 修改shadow中第三列内容,后面跟2017-05-1 -E 修改shadow中第八列内容,账号的失效时间 -I 修改shadow中第七列内容,密码过期后的宽限时间,跟天数 -m 修改shadow中第四列内容,密码最小使用期限,跟天数 -M 修改shadow中第五列内容,密码最大使用期限,跟天数
配置文件
/etc/group
第一列:组的名字 第二列:组的密码区域 第三列:组的ID号 第四列:组的成员 /etc/gshadow
第一列:组的名字 第二列:组的密码 第三列:组的管理员 第四列:组的成员列表
组管理命令
groupadd [options] groupname
-d 创建组时指定组的ID -r 添加一个系统组
groupdel groupname
默认情况下不能删除基本组 可以通过修改用户的基本组 usermod -g tom mike userdel mike 可以删除用户的同时,系统会删除同名基本组(要求该组是一个用户的基本组)
groupmod [options] groupname
修改组的属性 -n 修改组名 -g 修改GID
gpasswd [options] groupname
为组设置密码,设置组的管理员,添加组成员 gpassword groupname 为组设置密码 -A 为组设置管理员 gpasswd -A username groupname -M 批量添加用户,用,隔开 -r 为组移除密码 -R 让组的密码失效 -a 为组添加成员(组的管理员操作) -d 删除组成员(组的管理员操作)
newgrp
为用户修改有效组(只在当前shell生效) newgrp groupname 为当前用户修改属主 exit 退出newgrp
groupmems
为组添加成员,显示组成员列表 -l 显示组成员列表 -a 删除一个用户 -d 删除一个用户
yum -y install vim make cmake mlocate man man-pages sysstat net-tools yum -y groupinstall "Development tools" mandb //生成whatis数据库 updatedb //生成locate数据库,查找文件 vim /etc/selinux/config SELINUX= disabled systemctl disabled firewalld //开机禁用防火墙 systemctl stop firewalld //开机停止防火墙