linux用户组的管理讲解,linux用户组讲解


安全上下文

在CentOS中的访问控制时基于主体与客体的相关的访问控制属性的。其中访问控制属性被称为安全上下文。客体(文件、套接字、管道、网络主机)与主体(进程)之间有一个和他们相关的单一安全上下文。

一个安全上下文有三个元素:用户(user):角色(role):类型标识符(type)。

[root@CentOS7 ~]# ls /data/file.txt -Z
-rw-r--r--. root root unconfined_u:object_r:etc_runtime_t:s0 /data/file.txt

进程能够访问资源的权限取决于进程的运行者身份。

用户user、组group

令牌(token)

登陆令牌,利用token值来判断用户的登陆状态,只在用户登陆时颁发。

用户类别(user)

每个用户都有用户名与UID号。UID号决定用户的权限,管理员的UID为0,普通用户的UID为1~63354,其中在CentOS6中1~499为系统用户,CentOS7中是1~999。

用户的管理

用户的配置文件:/etc/passwd 存放用户及其属性信息 /etc/shadow 存放用户密码及其属性信息

组的配置文件: /etc/group 存放组及其属性信息 /etc/gshadow 存放组密码及其属性信息

[root@CentOS7 ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
[root@CentOS7 ~]# cat /etc/shadow
root:$6$psry5aGBkNnFOj4o$DleLy2xDe.MowyenDm.OJSFlZMgoXjxgpb51/AndAFjM7BvjSiLZqXbFj/d2Btnii.zSH6Pnaov5DZBQ1gmHh0::0:99999:7:::

passwd:login name:登录用名

passwd:密码 (x)

UID:用户身份编号

GID:登录默认所在组编号

GECOS:用户全名或注释

home directory:用户主目录

shell:用户默认使用shell

shadow:登录用名

用户密码:一般用sha512加密

从1970年1月1日起到密码最近一次被更改的时间

密码再过几天可以被变更(0表示随时可被变更)

密码再过几天必须被变更(99999表示永不过期)

密码过期前几天系统提醒用户(默认为一周)

密码过期几天后帐号会被锁定

从1970年1月1日算起,多少天后帐号失效

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

密码位开头的两个"$"之间表示加密算法,到第三个"$"之间是盐,用来使相同密码之间的密文不同。

[root@CentOS7 ~]# cat /etc/group
root:x:0:gentoo
[root@CentOS7 ~]# cat /etc/gshadow
root:::gentoo

group:group name:群组名称

passwd:密码 (x)

GID:群组身份编号

user list:以当前组作为附加组的用户列表

gshadow:群组名称

密码

组管理员列表

以当前组作为附加组的用户列表

getent命令用于查看系统中数据库内的数据

比如:/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow

id命令用于查看系统中用户相关的ID信息。

语法:id [选项] [用户]

[root@CentOS7 ~]# id jiangbowen
uid=1000(jiangbowen) gid=1000(jiangbowen) groups=1000(jiangbowen)

选项

-u 显示UID

-g 显示GID

-G 显示用户所属组的ID

-c "COMMENT":用户的注释信息

su命令用于切换当前用户的身份到其他用户身份。

语法:

[root@CentOS7 ~]# su - jiangbowen
Last login: Mon Apr  2 04:48:44 CST 2018 on :0
[jiangbowen@CentOS7 ~]$ 

使用"su 用户"是非登陆式切换,即不会读取目标用户的配置文件,不改变当前工作目录;使用"su - 用户"是登录式切换,会读取目标用户的配置文件,切换至家目录,完全切换。root切换至其他用户无须密码;非root用户切换时需要密码。

user和group管理的命令

useradd命令用于在系统中创建新的用户。

语法:useradd [选项] 用户名

[root@CentOS7 home]# useradd linux -g jiangbowen
[root@CentOS7 home]# id linux
uid=1006(linux) gid=1000(jiangbowen) groups=1000(jiangbowen)

选项

-u UID

-o 配合-u 选项,不检查UID的唯一性

-g GID:指明用户所属基本组,可为组名,也可以GID

-c "COMMENT":用户的注释信息

-d HOME_DIR: 以指定的路径(不存在)为家目录

-s SHELL: 指明用户的默认shell程序

-G GROUP1[,GROUP2,...]:为用户指明附加组,组须事先存在

-N 不创建私用组做主组,使用users组做主组

-r: 创建系统用户

-m 创建家目录,用于系统用户

-M 不创建家目录,用于非系统用户

系统在创建新用户时,会自动从/etc/stel中复制必要的配置文件,如果在/etc/passwd中修改用户的家目录,会导致次用户的异常。

创建新用户的默认配置文件在/etc/default/useradd文件中,可以使用

useradd -D [选项]修改默认配置。

usermod命令用于在系统中修改用户的属性。

语法:usermd [选项] 用户名

[root@CentOS7 home]# id linux
uid=1006(linux) gid=1007(linux) groups=1007(linux)
[root@CentOS7 home]# usermod linux -g jiangbowen
[root@CentOS7 home]# id linux
uid=1006(linux) gid=1000(jiangbowen) groups=1000(jiangbowen)

选项

-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: 设定非活动期限

系统的用户限制文件在/etc/login.defs中,可以修改创建用户时的:邮箱目录,密码最大有效期,密码最小有效期,密码最小长度,密码警告时间,最小UID、GID,最大UID、GID,删除用户使用的脚本,使用useradd命令创建用户时是否创建家目录,初始权限,userdel时是否保留组成员,使用哪种算法加密。

userdel命令用于从系统中删除用户。

语法:userdel [-r] 用户

[root@CentOS7 ~]# userdel -r linux
[root@CentOS7 ~]# id linux
id: linux: no such user

passwd命令用于设置用户的认证信息。

语法:passwd [选项] 用户

[root@CentOS7 ~]# echo "dengniaiwo123" | passwd --stdin jiangbowen
Changing password for user jiangbowen.
passwd: all authentication tokens updated successfully.

选项

-d:删除指定用户密码

-l:锁定指定用户

-u:解锁指定用户

-e:强制用户下次登录修改密码

-f: 强制操作

-n: 指定最短使用期限

-x:最大使用期限

-w:提前多少天开始警告

-i:非活动期限

--stdin:从标准输入接收用户密码

chpasswd用于批量修改用户口令。

语法:chpasswd < [文件]

文件的格式必须是"用户名:密码"为一行。

chage命令用于修改用户认证策略。

语法:chage [选项] 用户

[root@CentOS7 ~]# chage -l jiangbowen
Last password change					: Apr 03, 2018
Password expires					: never
Password inactive					: never
Account expires						: never
Minimum number of days between password change		: 0
Maximum number of days between password change		: 99999
Number of days of warning before password expires	: 7

选项

-d LAST_DAY

-E --expiredate EXPIRE_DATE

-I --inactive INACTIVE

-m --mindays MIN_DAYS

-M --maxdays MAX_DAYS

-W --warndays WARN_DAYS

–l 显示密码策略

\

pwconv、pwunconv命令用于决定用户口令存放在/etc/shadow还是/etc/passwd中。

pwck、grpck命令用于检查passwd、group的文件内容格式。

groupadd命令用于在系统中创建群组。

语法:groupadd [选项] 组名称

[root@CentOS7 ~]# groupadd magedu
[root@CentOS7 ~]# grep magedu /etc/group
magedu:x:1007:

-g 指明GID号-

-r 创建系统组

groupmod命令用于修改群组的属性。

语法:groupmod [选项] 群组

[root@CentOS7 ~]# groupmod magedu -n MAGEDU
[root@CentOS7 ~]# grep mage
[root@CentOS7 ~]# grep MAGEDU /etc/group
MAGEDU:x:1007:

-g 修改GID

-n 修改名字

groupdel命令用于删除群组。

gpasswd命令用于管理群组成员。

语法:gpasswd [选项] 群组

[root@CentOS7 ~]# gpasswd MAGEDU -a jiangbowen
Adding user jiangbowen to group MAGEDU
[root@CentOS7 ~]# grep MAGEDU /etc/group
MAGEDU:x:1007:jiangbowen

选项

-a 将user添加至指定组中

-d 从指定组中移除用户user

-A 设置有管理权限的用户列表

newgrp命令用于临时切换主组。

[root@CentOS7 ~]# newgrp jiangbowen
[root@CentOS7 ~]# id -g
1000

groupmems命令用于更改和查看组成员

语法:groupmems [选项] [行为]

选项:

相关内容