Linux 用户和组
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 用户和组相关的知识,希望对你有一定的参考价值。
Linux用户和组
-
资源分派(3A):
Authentication 认证
Authorization 授权
Accouting|Audition 审计 -
用户:(系统通过UID来判断用户信息)
令牌token identity:用于验明身份
Linux用户:username/UID
管理员:root 0
普通用户:1-65535
系统用户:1-499(6) 1-999(7)
对守护进程获取资源进行权限分配
登录用户:500+(6) 1000+(7)
交互式登录 -
组 group
linux组:GroupID /GID
管理员组: root 0
普通组:
系统组:1-499 1-999(7)
普通组:500+ 1000+(7) -
安全上下文:
linux安全上下文
运行中的程序:进程
以进程发起者的身份运行
root:/bin/cat
mage: /bin/cat
进程所能访问资源的权限取决于进程运行者的身份 -
组的类别
用户的主要组(primary group)
用户必须属于一个且只有一个主组
组名同用户名,且仅包含一个用户。私有组
用户的附加组
一个用户可以属于0个或者多个辅助组 -
用户和组的配置文件
/etc/passwd 用户以及其属性信息(名称 UID 主组ID)
name 用户名
passwd 密码(pwunconv可以恢复口令到passwd pwconv恢复到shadow)
UID
GID 主组
gecos 描述信息 chfn命令 change finger (finger可以直接看描述)
家目录 /etc/skel 在创建用户时系统会复制这个文件下的的文件到用户目录
shell类型 cat /etc/shell 显示系统支持的shell类型 shsh -s 改shell类型
/sbin/nologin 不允许登陆
/etc/group 组及其属性信息
组名:
组口令:普通用户可以通过获取组口令自己主动加入组(不建议)组ID 组成员:,分割不同成员 一般是附加组
/etc/shadow 用户密码及其相关属性
login name
密码字段 $$之前的salt字段,随机字段保证相同口令加密之后结果不同
最近改口令时间 距离1970 1.1计算天数,当设为0必须下次登陆更改口令
最短密码使用时间
最长密码使用时间(改口令之后计算,不能超过这个时间)
提前通知密码更改时间
密码宽限期 超过宽限期则密码锁定
账号使用有限期
保留字段################################### 没有口令的账号显示!!账号锁定 5的系统使用 usermod -U 可以解锁账号,取消一个! -L 加锁 6之后不允许这样操作,不能登录,但是可以su ################################## passwd -e username 选项可以实现下次登陆必须改口令 chage username 直接进行修改用户的口令配置信息 -d 0 username 同理 -l username 显示用户口令策略 -I --inactive INACTIVE -m --mindays MIN_DAYS -E --expiredate EXPIRE_DATE -M --maxdays MAX_DAYS -W --warndays WARN_DAYS ps:chage -m -M 12 -W 14 -I 17 username
vim /etc/login.defs 文件进行修改默认系统配置密码,邮件等信息
/etc/default /useradd 创建用户的默认配置信息/etc/gshadow 组密码及其相关属性
组名
组口令 通常也是!!
组内成员关系 可以设置多个组管理员
组成员 和group相同 -
密码加密
加密机制:
加密: 明文-->密文
解密: 密文-->明文
单项加密:哈希算法,原文不同,密文必不同
相同算法定长输出,获得密文不可逆推出原始数据
雪崩效应:初始条件的微小改变会引起结果的巨大改变更改加密算法:authconfig --passalgo=sha256 --update
-
密码的复杂性策略:
使用数字,大写字母,小写字母及特殊字符中的至少3种
足够长
使用随机密码
定期更换,不要使用最近曾经使用过的密码可以采用分级方式去设置密码难度
-
命令:
id username 显示用户id 主组id 附加组id 这个是读取配置文件的
不加username的话,一般是显示旧信息,当重新登录才会刷新信息
-u: 显示UID
-g: 显示GID
-G: 显示用户所属的组的ID
-n: 显示名称,需配合ugG使用
groups username 显示用户的组信息 主组 附加组################################
id不变用户权限不变
################################gpasswd username 给组加口令
-a user 将user添加到指定的组中
-d user 从指定组中移除用户
-A user1 user2 。。。 设定有管理权限的用户列表哦
newgrp gname 主动加入组 要输入组密码
这种方式会改变自己的主组
newgrp也可以用来临时切换主组,若已经是组成员则无需输入口令useradd
-u UID 可以超过60000
-o 配合-u 选项,不检查UID的唯一性
-g GID:指明用户所属基本组,可为组名,也可以GID
-c "COMMENT":用户的注释信息
-d HOME_DIR: 以指定的路径(不存在)为家目录
-s SHELL: 指明用户的默认shell程序
可用列表在/etc/shells文件中
-G GROUP1[,GROUP2,...]:为用户指明附加组,组须事先存在
-N 不创建私用组做主组,使用users组做主组
-r: 创建系统用户 家和邮箱都不创建 CentOS 6: ID<500,CentOS 7: ID<1000
-m 创建家目录,用于系统用户
-M 不创建家目录,用于非系统用户修改默认配置设置 /etc/default/useradd文件 useradd -D(default) 显示默认配置选项 useradd –D -s SHELL useradd –D –b BASE_DIR useradd –D –g GROUP
newusers passwd格式的文件,可以实现批量创建文件
chpasswd 批量实现用户口令的更改usermod 用户属性修改
-u UID: 新UID
-g GID: 新主组
-G GROUP1[,GROUP2,...[,GROUPN]]]:新附加组,原来的附加组将会被覆盖;
若保留原有,则要同时使用-a选项
-s SHELL:新的默认SHELL
-c ‘COMMENT‘:新的注释信息
-d HOME: 新家目录不会自动创建;若要创建新家目录并移动原家数据,同时使 用-m选项
-l login_name: 新的名字;
-L: lock指定用户,在/etc/shadow 密码栏的增加 !
-U: unlock指定用户,将 /etc/shadow 密码栏的 ! 拿掉
-e YYYY-MM-DD: 指明用户账号过期日期
-f INACTIVE: 设定非活动期限 账号宽限期
userdel
-r 删除用户家目录
ps:正在登录的用户无法删除
passwd 修改指定用户的密码
-d:删除指定用户密码
-l:锁定指定用户
-u:解锁指定用户
-e:强制用户下次登录修改密码
-f: 强制操作
-n mindays: 指定最短使用期限
-x maxdays:最大使用期限
-w warndays:提前多少天开始警告
-i inactivedays:非活动期限
--stdin:从标准输入接收用户密码
echo "PASSWORD" | passwd --stdin USERNAMEgroupadd 添加用户组
-g GID
-r 创建系统组
6 ID<500
7 ID<1000
groupmod 修改组的属性
-n new_groupname
-g new_GID
groupdel
删除主组之前要先将组内用户移动到其他组groupmems
-g, --group groupname 更改为指定组 (只有root)
Actions:
-a, --add username 指定用户加入组
-d, --delete username 从组中删除用户
-p, --purge 从组中清除所有成员
-l, --list 显示组成员列表 ?groups [OPTION].[USERNAME]... 查看用户所属组列表
-
文件操作:不推荐改配置文件
vipw vigr 在编辑passwd 和group文件时候具有语法格式检测功能
pwck grpck 用于检测语法 -
切换用户或者以其他用户身份执行命令
su username:以非登录方式去切换,不会读取目标用户的配置文件,不改变当前的工作目录
su - username:登录式切换,会读取目标用户的配置文件,切换至家目录,可以实现完全切换。root用户在su其他用户时候不需要输入密码,但是非root用户su要密码
换身份执行指令
su [-] username -c ‘指令‘su -l username 相当于su - username
以上是关于Linux 用户和组的主要内容,如果未能解决你的问题,请参考以下文章