Linux用户组管理
学习路线
用户的概念和分类
1.用户指的是Linux操作系统中用于管理系统或者服务的人,用户管理的是相应的文件
2.用户的分类:
1) 超级用户:也叫管理员,root。该用户具有所有权限,UID并且绝对只能是0.
2) 系统用户:也叫程序用户。一般都是由程序创建,用于程序或者服务运行的身份;
默认不允许登陆系统。
注:Centos6/RHEL6中,系统用户UID范围:1<=UID<=499;
Centos6/RHEL6中,系统用户UID范围:1<=UID<=999
3) 普通用户: 一般都是由管理员创建,用于对系统进行有限的管理维护操作。
默认可以登录系统。UID小于60000
特别说明:
1. 用户指的是操作系统上管理系统或服务的人,是人,就有相关的属性信息
2. 用户的属性信息包括但不限于,如:家目录、唯一身份标识(UID)、所属组(GID)等
用户创建及相关配置文件
1.创建用户
useradd [option] username -u:表示自定义UID 示例: [root@localhost ~]# useradd -u 888 jf2 [root@localhost ~]# tail -1 /etc/passwd jf2:x:888:888::/home/jf2:/bin/bash -g:表示使新增用户属于已经存在的某个组,后面可以跟组id,也可以跟组名。 示例: [root@localhost ~]# useradd -g test jf3 [root@localhost ~]# tail -1 /etc/passwd jf3:x:889:503::/home/jf3:/bin/bash -G:表示使用附加组 示例: [root@localhost ~]# useradd -G test jf4 [root@localhost ~]# cat /etc/group test:x:503:jf4 -c:表示添加注释内容 示例: [root@localhost ~]# useradd -c lianxi jf5 [root@localhost ~]# tail -1 /etc/passwd jf5:x:891:891:lianxi:/home/jf5:/bin/bash -d:表示自定义用户的家目录 示例: [root@localhost ~]# useradd -d /home/test jf9 [root@localhost ~]# tail -1 /etc/passwd jf9:x:895:895::/home/test:/bin/bash -M:表示不创建家目录 示例: [root@localhost ~]# useradd -M jf10 [root@localhost ~]# su - jf10 su: 警告:无法切换到目录/home/jf10: 没有那个文件或目录 -s:表示自定义shell 示例:[root@localhost ~]# useradd -s /sbin/nologin jf11 [root@localhost ~]# tail -1 /etc/passwd jf11:x:897:897::/home/jf11:/sbin/nologin -r:添加系统用户 示例: [root@localhost ~]# useradd -r apache [root@localhost ~]# tail -1 /etc/passwd apache:x:498:498::/home/apache:/bin/bash
2.用户信息的保存文件
[root@localhost ~]# head -3 /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin /etc/paswd由:分割成7个字段。 ·第一字段为用户, 它代表用户账号的字符串。 ·第二字段存放的是该账号的口令。 ·第三个字段为一个数字,这个数字代表着用户标识号,也称uid。系统通过这个数字识别用户身份的。这里的0就是root,也就是说我们可以修改test用户的uid为0,那么系统会认为root和test为同一个账户。uid的取值范围是0-65535.Centos7的普通用户标识号从1000开始。 ·第四个字段也是数字,标识组标识号,也称gid。这个字段对应着/etc/group中的一条记录。 ·第五个字段为注释说明,没什么意义 ·第六个字段为用户的家目录,当用户登录时,就出在这个目录下。 ·最后一个字段为用户的shell。 [root@localhost ~]# head -5 /etc/shadow root:$6$sO4k9N7S/4.hzm1G$hylKE5GxsZMN42kY1CkWi/qB03./1IvlwCJKGl/hQpb3uJnnsCYEdbfQlQ2v5Efmyjgt4BbcKyvi5Kfzwns.M.:17602:0:99999:7::: bin:*:17246:0:99999:7::: daemon:*:17246:0:99999:7::: /etc/shadow由:分割成9个字段。 ·第一个字段为用户名 ·第二个字段为用户密码,是该账号的真正密码。 ·第三个字段为上次更改密码的日期,这个数字以1970年1月1日和上次更改密码的日期为基准计算而来。 ·第四个字段为要过多少天才可以更改密码,默认是0,即不受限制。 ·第五个字段为密码多少天后到期,即在多少天内必须更改密码。默认是9999 ·第六个字段为免到期前的警告期限。 ·第七个字段为账号失效期限。 ·第八个为账号的生命周期。 ·最后一个字段作为保留用的。
用户信息的修改
1.usermod(更改用户的)
usermod [option] [参数]USERNAME -u;更改用户ID -g GID:更改用户的基本组 -a -G:不使用-a选项,会覆盖原有的附加组 -c:“注释内容” -d -m:指定用户的家目录,如果用户登录过,则加上-m选项,移动其此前的文件到新的家目录 -s;更改用户的shell -l:更改用户的登录名(Login) -L:锁定账号 -U:解锁账号
2.chage(更改用户的账号信息)
chage -operation USERNAME -d 修改用户最后一次更改密码的时间(为0时,登录系统时强制更改密码) -m 修改密码的最小存活期(几天后才能修改密码) -M 修改密码的最大存活期(每隔多少天更新一次密码) -W 修改密码过期前警告(过期前几天发出警告) -I (大写I)修改允许密码过期几天 -E 修改账户过期时间 -l(小写l) 列出账户的信息
删除用户
usermod -operation USERNAME -r: 删除用户并且移除其家目录和邮箱 -f: 强制删除正在登陆的用户
组管理
1.核心功能:方便管理用户
用户是操作系统上管理维护系统或服务的人 组是用户的一个属性信息
任何一个用户默认都会有一个主组(默认组)
一个用户除了主组也可以有多个其他组(附加组)
2.组的创建和删除
groupadd [-g GID] groupname 示例: [root@localhost ~]# groupadd test [root@localhost ~]# groupadd -g 888 test1 [root@localhost ~]# tail -2 /etc/group test:x:503: test1:x:888: 3.删除组命令groupdel groupdel groupname 示例: [root@localhost ~]# groupdel test1 [root@localhost ~]# tail -2 /etc/group jf1:x:502: test:x:503:
3.组成员管理
gpasswd -operation GROUPNAME 常见选项: -a 添加用户到组 -d 从组中删除成员 -A 指定管理员 -M 指定组成员,可以批量添加用户到组中 -r 删除密码 gpasswd 组名 给组设置密码
用户信息的查看
1.查看属性信息:id
id [option] [username] -u:显示用户的ID号 -g:显示用户所在的基本组的组ID号 -G:显示用户所在的附加组的组ID号 -un gn Gn:显示ID号相对应的名字 示例: [root@localhost ~]# id jf5 uid=891(jf5) gid=891(jf5) 组=891(jf5) [root@localhost ~]# id -u jf5 891 [root@localhost ~]# id -un jf5 jf5
2.查看用户账号信息:finger
[root@localhost ~]# finger alice Login: alice Name: alice oscar Directory: /home/alice Shell: /bin/bash Never logged in. No mail. No Plan.
用户的密码管理:passwd
passwd [option] [USERNAME] --stdin:标准输入,即passwd从标准输入(键盘)读取密码 用途:Linux中为了安全尽量避免捕获用户接口,即尽量不和用户交互 当用脚本批量创建用户和密码时不能自动执行(半夜时候)此时会用到--stdin 实例:[root@ns1 ~]# echo "aaa...111" | passwd --stdin jf 更改用户 jf 的密码 。 passwd: 所有的身份验证令牌已经成功更新。 -l:锁定用户 示例:[root@ns1 ~]# passwd -l jf 锁定用户 jf 的密码 。 passwd: 操作成功 -u:解除用户
其他的用户相关指令
1.检查用户账号完整性:pwck
[root@ns1 ~]# pwck 用户“adm”:目录 /var/adm 不存在 用户“uucp”:目录 /var/spool/uucp 不存在 用户“gopher”:目录 /var/gopher 不存在 用户“ftp”:目录 /var/ftp 不存在 用户“rpc”:目录 /var/lib/rpcbind 不存在 用户“saslauth”:目录 /var/empty/saslauth 不存在 用户“oprofile”:目录 /home/oprofile 不存在 pwck:无改变
2.显示当前登录到系统的用户名:whoami
[root@ns1 ~]# su - jf [jf@ns1 ~]$ whoami jf