linux用户和组
Posted 我听过
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux用户和组相关的知识,希望对你有一定的参考价值。
1、安全 3A
资源分派:Authentication:认证
Authorization:授权
Accouting|Audition:审计
2、令牌(token):用户一登录成功系统分配令牌 token,用户凭借该令牌访问该令牌可以访问的文件,用户想要得到最新的令牌必须重新登录
3、Linux 用户:Username/UID Linux 组:Groupname/GID
用户管理员:root,UID=0
普通用户UID:1-65535
系统用户UID:1-499(centos6),1-999(centos7)
系统用户:对守护进程获取资源进行权限分配
登录用户:500+(centos6),1000+(centos7)
组管理员:root,GID=0
系统组GID:1-499(centos6),1-999(centos7)
普通组GID:500+(centos6),1000+(centos7)
4、Linux 安全上下文
运行中的程序:进程(process)
以进程发起者的身份运行:当用户执行程序的时候,用户的身份是程序的一个发起者即上下文:context(运行此程序的用户身份,用户组身份)
进程所能访问资源的权限取决于进程的运行者身份
5、组的类别:
用户账号可以属于组1 组2 组3,权限为三组累加权限
用户的主要组(primary group)
用户必须属于一个且只有一个主组
组名同用户名,且仅包含一个用户,私有组
用户的附加组(supplementary group)
一个用户可以属于零个或多个辅助组
6、 Linux 用户和组的主要配置文件:
1>/etc/default/useradd:与创建用户默认属性值(属于组、配置文件(/etc/skel/)…)有关
2>/etc/passwd:用户及其属性信息(名称、UID、主组 ID 等)
用户 :密码 :UID :GID :描述信息 :家目录 :shell 类型
密码处使用 X 占位,使用命令 pwunconv 显示密码,使用命令 pwconv 占位
使用命令 chfn 账号名 添加描述信息;使用 finger 账号名 查看用户信息
如果要更改家目录,不只是要更改家目录还要更改配置,给更改的用户家目录权限 cp -r /etc/skel/.[^.]* /[用户新家目录]
支持的 shell 类型:/etc/shells;使用 chsh -s /bin/sh 账号名 更改 shell 类型
/sbin/nologin:不能登录,一般给服务使用
3>/etc/group:组及其属性信息
gpasswd [用户名] 设置组口令
普通用户可以自己加入组(前提:得知道该组的口令) //不建议
#newgrp [组名] 输入密码,加入该组,加入后加入组临时成为主组,如果已经在该组里面使用 newgrp 暂时切换主组
4>/etc/shadow:用户密码及其相关属性
用户名 :加密后的口令 :更改口令的时间 :口令最短更改期 :口令过期日期 :密码警告时间 :密码禁用期 :账户过期日期:保留字段
在/etc/login.defs 更改默认口令有效期
5>/etc/gshadow:组密码及其相关属性
root :口令(!锁定):组长:组成员(和 group 最后一个字段相同)
6>文件操作:vipw 和 vigr(具有语法检查功能) pwck 和 grpck(检查格式)
7>用户和组管理命令
(1)用户管理命令:
useradd、usermod、userdel(增加 修改 删除)
(2)组账号维护命令:
groupadd、groupmod、groupdel(增加 修改 删除)
getent passwd [用户名] 只显示/etc/passwd 中关于该用户的一行
useradd -o //配合-u,不检查 UID 的唯一性
useradd -g //GID:指明用户所属基本组,可为组名,也可以为 GID
useradd -c //用户的注释信息
useradd -d //以指定的路径(不存在)为家目录
useradd -s //指明用户的默认 shell 程序
useradd -G //为用户指明附加组,组必须事先存在
useradd -N //不创建私有组做主组,使用 users 组做主组
useradd -r //创建系统用户 CentOS6:ID<500,CentOS7:ID<1000
useradd -m //创建家目录,用于系统用户
useradd -M //不创建家目录,用于非系统用户
useradd -D 显示默认设置
useradd -D -s shell 更改 shell
useradd -D -b BASE_DIR 更改 BASE_DIR
useradd -D -g GROUP 更改 GROUP
创建用户默认值设定在:/etc/default/useradd 中
批量新建用户和批量修改口令:
批量新建用户:复制/etc/passwd 中的用户信息,追加至users.txt文件里,通过newusers users.txt 批量创建用户(不限终端,跨终端使用scp远程拷贝再批量创建)
批量修改口令:追加多个"用户名:密码"至passwd.txt文件,cat passwd.txt | chpasswd 批量修改密码
usermod [OPTION] login
-u UID:新 UID
-g GID:新 GID
-G :新附加组,原来的附加组被覆盖,若要保留同时使用-a 选项
删除附加组:usermod -G “” login 或 usermod -G login login
-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 login //顺便删除家目录
切换用户身份:su
passwd [OPTIONS] login:修改指定用户的密码
-d:删除指定用户密码
-l:锁定指定用户
-u:解锁指定用户
-e:强制用户下次登录修改密码
-f:强制操作
-n mindays:指定最短使用期限
-x maxdays:最大使用期限
-w warndays:提前多少天开始警告
-I inactivedays:非活动期限
-stdin:从标准输入接收用户密码
echo “password” | passwd --stdin username
chage [选项] 登录
选项:
-d, --lastday 最近日期 将最近一次密码设置时间设为“最近日期”
-E, --expiredate 过期日期 将帐户过期时间设为“过期日期”
-h, --help 显示此帮助信息并推出
-I(大写 i), --inactive INACITVE 过期 INACTIVE 天数后,设定密码为失效状态
-l(小写 L), --list 显示帐户年龄信息
-m, --mindays 最小天数 将两次改变密码之间相距的最小天数设为“最小天数”
-M, --maxdays 最大天数 将两次改变密码之间相距的最大天数设为“最大天数”
-R, --root CHROOT_DIR chroot 到的目录
-W, --warndays 警告天数 将过期警告天数设为“警告天数”
实例:
chage -d 0 [用户] //下一次登录强制重设密码
chage -m 0 -M 42 -W 14 -I 7 [用户]
chage -E 2020-02-01 [用户]
创建组:
groupadd [OPTION]… group_name
-g GID:指定 GID
-r 创建系统组(CentOS6:ID<500 CentOS7:ID<1000)
修改和删除组:
groupmod [OPTION]… group //修改组
-n group_name:新名字
-g GID:新 GID
groupdel GROUP //删除组(主组不能直接删,附加组可以)
组密码:gpasswd
gpasswd [OPTION] GROUP
-a user 将 user 添加至指定组中
-d user 从指定组中移除用户 user
-A user1,user2,… 设置有管理权限的用户列表
newgrp:临时切换主组,如果用户不属于此组,则需要组密码
groupmems -l -g 组名 //查看组成员
groupmems -a 用户名 -g 组名 //往组里添加用户(删除-d 全清-p)
groups 用户名 //查用户属于哪个组
7、 密码加密
加密机制:加密:明文→密文 解密:密文→明文
单项加密:哈希算法,原文不同,密文必不同
相同算法定长输出,获得密文不可逆推出原始数据
雪崩效应:初始条件的微小改变,引起结果的巨大改变
加密算法:md5、sha1、sha224、sha256、sha384、sha512
更改加密算法:authconfig –passalgo=sha256 –update //其实更改了/etc/login.defs
密码的复杂性策略,生产中使用
以上是关于linux用户和组的主要内容,如果未能解决你的问题,请参考以下文章