用户和组管理

linux 安全
Authentication:认证,验证用户身份
Authorization:授权,不同的用户设置不同的权限
Accouting|Audition:审计

当用户登陆成功时,系统会自动分配令牌token;包括:用户标识和组成员等信息。

用户:
linux中每个用户是通过User id(UID)来唯一标识的

管理员:root 0
普通用户:1-60000 自动分配
--系统用户:1-499(centOS6以前),1-999 (CENTOS7以后)
--登陆用户:500+(CentOS6以前),1000+(CentOS7以后)

linux中可以将用户加入用户组中,用户组是通过 Group ID (GID)来唯一标识的。
管理员:root 0
普通用户:1-60000 自动分配
--系统用户:1-499(centOS6以前),1-999 (CENTOS7以后)
--登陆用户:500+(CentOS6以前),1000+(CentOS7以后)

用户和组的关系:
用户的主要组(Primiary Group):用户必须属于一个且只有一个主组,默认创建用户时互自动创建和用户名同名的组
作为用户的主要组,由于此组中只有一个用户,又称为私有组。

用户的附加组(Supplementary Group):一个用户可以属于零个或者多个辅助组,附属组。

安全上下文:
linux安全上下文Context:运行中的程序,即进程(Process),以进程发起者身份运行,进程所能够访问资源的权限取决于进程的
运行者的身份。

例如:使用root和tom的身份运行 cat/etc/issue 得到的结果是不同的,资源能否被访问,是由运行者的身份决定,非程序本身。

用户和组的配置文件:
/etc/passwd:用户及其属性信息:名称、UID、主组ID等。
/etc/shadow:用户密码及其相关属性
/etc/group:组及其属性信息
/etc/gshadow:组密码及其相关属性

passwd文件格式
login name:登陆名
passwd: 密码
UID:用户身份
GID:登陆用户所在的组
GECOS:用户全名或注释
home directory:用户主目录(/home/feng)
shell:用户默认使用shell(/bin/bash)

shadow:文件格式
登陆用户
用户密码:sha加密
从1970年1月1日起到最近一次被更改的时间
密码再过几天可以被变更(0表示随时可以变更)
密码在过几天必须被变更(99999表示永不过期)
密码过期前几天系统提醒用户:默认一周
密码过期几天后账户会被锁定

---更改密码加密算法
authconfig --passalgo=sha256 --update

密码的安全策略:
---足够长
---使用、数字、大写字母、小写字母以及特殊符号中至少3种
---使用随机密码
---定期更换,不要使用最近曾用过的密码

生成随机密码:
-----tr -dc '[:alnum:]' < /dev/urandom | head -c 12
-----openssl rand -base64 9

group文件格式
组名称:组名称
组密码:通常不设定,密码是被记录在/etc/gshadow
GID:群组ID
以当前组附加组的用户列表,使用逗号为分隔符

gshadow文件格式
组名称:组名
组密码:
组管理员列表:
以当前组为附加组的用户列表,用户之间用逗号分隔

用户管理命令:
useradd
usermod
userdel

组账号维护命令:
groupadd
groupmod
groupdel

用户创建:
useradd 命令可以创建用户
格式:useradd [option] LOGIN
常用选项:
-u UID
-o 配合-u选项,不检查UID的唯一性。
-g GID 指明用户所属基本组,可为组名,也可以GID
-c "COMMENT" 用户的注释信息
-d HOME_DIR 以指定的路径为家目录
-s SHELL 指明用户默认的shell程序,
-G GROUP1 为用户指定附件组
-N 不创建私有组做主组,使用Users组做主组
-r 创建系统用户
-m 创建家目录
-M 不创建家目录,用于非系统用户

useradd 命令默认值设定由/etc/default/useradd定义

用户属性修改:
命令:usermod 格式:usermod [OPTION] login

常见选项:
-u uid:新UID
-g gid:新主组
-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可删除Linux用户
格式:userdel [option]...login

常用选项:
-f,--force 强制
-r,--remove 删除用户家目录和邮箱

查看用户相关的ID信息
id 命令可以查看用户的UID,GID信息

id [OPTION]...[USER]

常见选项:
-u:显示UID
-g:显示GID
-G:显示用户所属组的ID
-n:显示名称,需要配合ugG使用

切换用户命令
su:即,switch user,命令可以切换用户身份,并且以指定用户的身份执行命令
格式:su [options....] [-] [user[args....]]

常见选项:
-l:su -l username su - username
-c:--command

passwd 可以修改用户密码
格式:passwd [OPTIONS] UserName

常用选项:
-d 删除指定用户密码
-l 锁定指定用户
-u 解锁指定用户
-e 强制用户下次登录修改密码
-f 强制操作
-n mindays 指定最短使用期限
-x maxdays 指定最大使用期限
-w warndays 提前多少天开始警告
-i inactivedays 非活动期限
--stdin:从标准输入接收用户密码,Ubuntu无此选项

echo "password" | passwd --stdin username

修改用户密码策略:
chage可以修改用户密码策略
格式:
chage [option]...login

常见选项:
-d LAST_DAY 更改密码的时间
-m --mindays MIN_DAYS
-M --maxdays MAX_DAYS
-W --warndays WARN_DAYS
-I --inactive INACTIVE 密码过期后的宽限期
-E --expiredate EXPIRE_DATE 用户的有效期
-l 显示密码策略

创建组:
groupadd 实现创建组
格式:groupadd [OPTION]....group_name

常见选项:
-g GID 指定GID
-r 创建系统组
groupadd -g 50 -r centos

修改组:
groupmod:组属性修改
格式:groupmod [OPTION]...group
常用选项:
-f --force 强制删除,即使是用户的主组也强制删除组

更改组密码
gpasswd命令:可以更改组密码,也可以修改附加组的成员关系
格式:gpasswd [OPTION] GROUP
常见选项:
-a user 将user添加到指定组中
-d user 从指定附加组中移除用户user

gpasswd -a apache service

posted @ 2021-04-20 13:32  psy_fengtao  阅读(173)  评论(0)    收藏  举报