Linux用户与用户组
Linux系统用户与用户组学习记录
用户概念
用户的基本类别:
① root超级管理员,在Linux系统中拥有至高无上的权力。
② 系统用户,CentOS6=> 1 ~ 499,CentOS7=> 1 ~ 999,系统账号默认不允许登录。
③ 普通用户,大部分是由root管理员创建的,UID的取值范围:CentOS6=> 500 ~ 60000,CentOS7=> 1000 ~ 60000,对系统进行有限的管理维护操作。
用户组概念
理论上Linux系统中的每个用户在创建时都应该有一个对应的用户组,这个组就称之为用户的主组。
同时,有些情况下,某个用户需要临时使用某个组的权限,那这个组就称之为这个用户的附属组或附加组(主组唯一,附加组可以有多个)。
用户管理
查看用户
语法:
id 用户名
# 查看指定用户
[root@localhost ~]# id zhou
# 查看当前登录用户信息
[root@localhost ~]# id
创建用户
使用useradd命令可以自动的完成创建用户的信息、基本组、家目录等工作,并在创建的过程中对用户初始信息进行定制。
已创建的用户则需使用chmod命令修改账户信息,passwd命令修改密码信息。
语法:
useradd [参数] 用户名
参数:
-D:改变新建用户的预设值
-c:添加备注文字
-d:新用户每次登录时所使用的家目录
-e:用户终止日期,日期格式为YYYY-MM-DD
-f:用户过期几日后永久停权。当值为0时用户立即被停权,而值为-1时则关闭此功能,预设值为-1
-g:指定用户对应的用户组
-G:定义此用户为多个不同组的成员
-m:用户目录不存在时自动创建目录
-M:不建立用户家目录,优先与/etc/login.defs文件设定
-n:取消建立以用户名称为名的群组
-r:建立系统账号
-s:Shell文件 指定用户的登录Shell。
-u:指定用户id
[root@localhost ~]
[root@localhost ~]
[root@localhost ~]
[root@localhost ~]
[root@localhost ~]
用户密码
用于修改用户的密码值。同时也可以对用户进行锁定等操作,但需要管理员身份才可以执行。
语法:
passwd [参数] 用户名
参数:
-d:删除已有密码
-l:锁定用户的密码值,不允许修改
-u:解锁用户的密码值,允许修改
-e:下次登录强制修改密码
-k:用户在期满后仍然使用
-S:查看密码状态
[root@localhost ~]
Changing password for user root.
New password: 输入密码
Retype new password: 再次输入密码
passwd: all authentication tokens updated successfully.
[root@localhost ~]
Changing password for user user3.
New password: 输入密码
BAD PASSWORD: The password fails the dictionary check - it is based on a dictionary word
Retype new password: 再次输入密码
passwd: all authentication tokens updated successfully.
[root@localhost ~]
[root@localhost ~]
[root@localhost ~]
切换用户
su用于切换用户身份。管理员切换至任意用户身份而无需密码验证,而普通用户切换至任意用户身份均需密码验证。
语法:
su [参数] 用户名
参数:
-:完全身份变更
-c:执行完指定的指令后恢复原来的身份
-l:变更身份的同时也变更工作目录
-m:变更身份时不变更工作目录
-s:指定要执行的shell
[root@localhost ~]
[root@localhost ~]
删除用户
userdel用于删除用户账户。
Linux系统中一切都是文件,用户信息被保存到了/etc/passwd、/etc/shadow以及/etc/group文件中,
因此使用userdel命令实际就是帮助我们删除了指定用户在上述三个文件中的对应信息。
语法:
userdel [参数] 用户名
参数:
-f:强制删除用户账号
-r:删除用户主目录及其中的任何文件
[root@localhost ~]
[root@localhost ~]
修改用户账号信息
usermod用于修改用户账号中的各项参数。
语法:
usermod [参数] 用户名
参数:
-c<备注>: 修改用户账号的备注文字
-d<登入目录>: 修改用户登入时的家目录
-e<有效期限>: 修改账号的有效期限
-f<缓冲天数>: 修改在密码过期后多少天即关闭该账号
-g<群组>: 修改用户所属的群组
-G<群组>: 修改用户所属的附加群组
-l<账号名称>: 修改用户账号名称
-L :锁定用户密码,使密码无效
-s<shell>: 修改用户登入后所使用的shell
-u<uid>: 修改用户ID
-U: 解除密码锁定
[root@localhost ~]
[root@localhost ~]
用户组管理
分类:
基本组: 随着用户创建而创建,组名和用户名相同,只能有一个,用户的基本组保存在/etc/passwd中
附加组:用户加入的其他组,可以有多个。
创建组
groupadd用于创建新的用户组。
每个用户在创建时都有一个与其同名的基本组,后期可以使用groupadd命令创建出新的用户组信息,
让多个用户加入到指定的扩展组中,为后续的工作提供了良好的文档共享环境。
语法:
groupadd [参数] 组名
参数:
-g:指定新建组的id
-r:创建系统组
-k:覆盖配置文件“/etc/login.defs”
-o:允许添加组id好不唯一的组
[root@localhost ~]
[root@localhost ~]
查看组信息
组信息保存在“/etc/group”中,可以使用grep命令进行直接搜索指定组。
[root@localhost ~]
删除组
groupdel命令用于删除指定的工作组,本命令要修改的系统文件包括/ect/group和/ect/gshadow。
userdel修改系统账户文件,删除与 GROUP 相关的所有项目。
给出的组名必须存在。若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。
语法:
groupdel 组名
[root@localhost ~]
修改组
groupmod命令用于更改群组的识别码或名称时。
语法:
groupmod [参数] 组名
参数:
-g:设置新的组id
-o:重复使用群组识别码
-n:设置新的组名称
[root@localhost ~]
与用户账号有关的系统文件
完成用户管理的工作有许多种方法,但是每一种方法实际上都是对有关的系统文件进行修改。
与用户和用户组相关的信息都存放在一些系统文件中,这些文件包括/etc/passwd, /etc/shadow, /etc/group等。
下面分别介绍这些文件的内容。
/etc/passwd
Linux系统中的每个用户都在/etc/passwd文件中有一个对应的记录行,它记录了这个用户的一些基本属性。
[root@localhost ~]
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
www:x:1001:1001::/home/www:/bin/bash
uu:x:1002:1002::/home/uu:/bin/bash
zhou:x:1003:1003::/home/zhou:/bin/bash
rabbitmq:x:987:981:RabbitMQ messaging server:/var/lib/rabbitmq:/bin/bash
mysql:x:1004:1004::/home/mysql:/bin/bash
nginx:x:1005:1005::/home/nginx:/bin/bash
user1:x:1006:1006::/home/user1:/bin/bash
user2:x:1007:1007::/home/user2:/sbin/nologin
user33:x:6666:6688::/home/user3:/bin/bash
/etc/passwd中一行记录对应着一个用户,每行记录又被冒号(:)分隔为7个字段,其格式和具体含义如下:
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
/etc/shadow
/etc/shadow中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生。
它的文件格式与/etc/passwd类似,由若干个字段组成,字段之间用":"隔开。
[root@localhost ~]
apache:!!:19191::::::
www:!!:19191:0:99999:7:::
uu:!!:19192:0:99999:7:::
zhou:!!:19192:0:99999:7:::
rabbitmq:!!:19194::::::
mysql:!!:19198:0:99999:7:::
nginx:!!:19212:0:99999:7:::
user1:$6$X3v8uuF4$n3NyB6BwJhQiLJeAQTn3GLyC8dIWPavJP5Bd94wVYf6YZfIbXru6mELrbGnpuUt3QP15ehqZL6qUi9XjyBvu/.:19276:0:99999:7:::
user2:!!:19276:0:99999:7:::
user33:!!$6$qT6zM7TX$JuBdKjiYbyBev7fHnsqzZzURLbxzPUWSNaCwWXQ3xUTNIe1nuTpwpWOkQB1BvuAwCG9jo47GRCSpMCuJalExQ/:0:0:99999:7:::
这些字段是:
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
/etc/group
用户组的所有信息都存放在/etc/group文件中
当一个用户同时是多个组中的成员时,在/etc/passwd文件中记录的是用户所属的主组,也就是登录时所属的默认组,而其他组称为附加组。
用户要访问属于附加组的文件时,必须首先使用newgrp命令使自己成为所要访问的组中的成员。
[root@localhost ~]
www:x:1001:
zhou:x:1003:
rabbitmq:x:981:
mysql:x:1004:
nginx:x:1005:
user1:x:1006:
user2:x:1007:
user3:x:6688:
group1:x:6689:
group2:x:1002:
由冒号(:)隔开若干个字段,这些字段有:
组名:口令:组标识号:组内用户列表
添加批量用户
- 先创建编辑一个文本用户文件
范例文件user.txtuser001::600:100:user:/home/user001:/bin/bash
user002::601:100:user:/home/user002:/bin/bash
user003::602:100:user:/home/user003:/bin/bash
user004::603:100:user:/home/user004:/bin/bash
user005::604:100:user:/home/user005:/bin/bash
user006::605:100:user:/home/user006:/bin/bash
- 执行创建用户命令
[root@localhost ~]
- 关闭投影密码
[root@localhost ~]
- 编辑每个用户的密码对照文件
格式为:
用户名:密码
实例文件 passwd.txt
user001:123456
user002:123456
user003:123456
user004:123456
user005:123456
user006:123456
- 执行密码写入
[root@localhost ~]
- 开启用户的投影密码
[root@localhost ~]
|