用户管理
创建
useradd USERNAME(名字)
[root@localhost ~]# useradd bao 创建指令
怎么判断创建成功与否(是否报错)
观察是否报错可行但用变量的方式判断会更加直观
[root@localhost ~]# echo $? 变量
什么是变量?(概念引入)
说明
变量是一块命名的内存空间,可以通过变量的名称来调用变量的值
在系统里声明一个变量
[jian@localhost ~]$ bianliang=zhangsan
注:不是比较运算,是用来赋值的
把zhangsan赋值给bianliang
调用该变量就能把所赋的值显示出来
[jian@localhost ~]$ echo $bianliang
当zhangsan变成lisi,调用也会显示lisi
[jian@localhost ~]$ bianliang=lisi
[jian@localhost ~]$ echo $bianliang
可以调用“?”变量,该变量的值为0说明程序正常执行,在Linux里叫程序的退出码
[jian@localhost ~]$ echo $?
退出码范围0-255
其中0表示正常,1-255 表示不正常
当程序执行完以后会返回一个退出码,如果返回码为0表示程序可以正常退出,如果退出码是其他非零值,则表示程序不能正常退出。
通过man手册可以了解到一些常见退出码的含义:
[root@localhost jian]# man useradd (打开手册并往下翻阅)
0.成功
1.无法更新密码文件
2.命令语法有问题(命令格式无效)
3.选项所对应的值有问题(选择参数无效)
4.所对应的UID已经被占有
6.指定的组不存在
9.用户名已经被使用
10.不能更新组文件
12.不能更新家目录
14.无法更新SELinux用户映射
举例
创建用户时如果已经被创建,再次创建会出现报错(如下)
[jian@localhost ~]$ useradd bao
[jian@localhost ~]$ echo $?
查看
创建完成查看该用户的信息:id USERNAME 查看指定用户信息
[jian@localhost ~]$ id bao 查看指令
uid(userid)用户对应的数字编码
gid(groupid)用户组对应的数字编码
groups 基本组(用户默认的组)信息以及附加组信息
注:创建用户时,若未指定组则创建同名的组
拥有基本组之后还可以加入附加组
删除
删除不再想使用的用户
[root@localhost ~]# userdel bao 删除指令
[root@localhost ~]# echo $?
删除成功
[root@localhost ~]# id bao
显示已经没有该用户,但在家目录和邮箱还可以看到
[root@localhost ~]# ll /home 家目录
[root@localhost ~]# ll /var/spool/mail/ 邮箱
如果在删除时想把信息全部删除,在末尾加-r选项
[root@localhost ~]# userdel -r USERNAME
表示同时删除该用户的家目录和邮箱
删除用户的同时也会删除用户组
修改
usermod USERNAME 修改用户
现在使用man手册了解常用的一些选项
[root@localhost ~]# man usermod
(如图所示界面可往下翻阅)
举例:(常用的指令)
-a/-G
添加用户到一个附加组,也可只使用-G的选项
[root@localhost jian]# ll /home
创建几个用户(都有基本组),再继续创建一个用户duo
让用户duo属于用户bao的组,在创建用户时就指定选项
[root@localhost jian]# useradd -g bao duo
[root@localhost jian]# id duo
用户duo的基本组是用户bao的,基本组信息也是用户bao的
再加上一个附加组
[root@localhost jian]# usermod -G lai duo
[root@localhost jian]# id duo
附加组已经添加完成
-g 表示修改基本组
-G 表示修改附加组 GROUPNAME,GROUPNAME,GROUPNAME(指定多个)
-c
表示注释或描述(昵称)
登录界面只有jian用户,如果让用户bao出现在界面应该怎么实现?
给用户bao添加用户密码
[root@localhost jian]# passwd bao
屏幕上出现名字为bao的用户,并且可以正常登录使用
同理,其他用户也可添加用户密码来实现登录界面的显示
用户登录显示设置好,再使用-c更改描述(昵称)
[root@localhost jian]# usermod -c zheyang bao
让用户bao描述为zheyang,变化很明显(如下图所示)
-l
更改用户登录名称(登录后显示的名称)
[root@localhost jian]# id bao
显示的用户名称是bao,把用户名称改成pao
[root@localhost jian]# usermod -l pao bao
[root@localhost jian]# id bao
查找不到bao的信息,但查找修改后的名称pao可以继续查找到相关信息
[root@localhost jian]# id pao
登录界面依然显示设置的comment
使用密码登录“zheyang”并查看终端情况
终端显示的名字是已经修改的pao
-L
用来锁定用户密码,在Linux下账号如果没有密码是不能登录操作系统的,如果把密码锁住,该用户就不能登录到操作系统
禁用用户pao进行实验举例:
[root@localhost jian]# usermod -L pao
此时界面没有pao的登录方式“zheyang”
不允许登录,怎么解锁?
-U
使用-U解锁
[root@localhost jian]# usermod -U pao
重新出现登录方式
-s
注:如果一个用户的shell是/bin/bash,则允许登录操作系统
例子:
[root@localhost jian]# usermod -s /sbin/nologin pao
[root@localhost jian]# grep pao /etc/passwd
不能登录用户pao(图中无登录方式)
[root@localhost jian]# su – pao
此时账号也不可以使用,现在去恢复账号的使用(操作)
[root@localhost jian]# usermod -s /bin/bash pao
[root@localhost jian]# su – pao
切换账号成功,可以使用
[pao@localhost ~]$ id
-u
修改UID
先查看原有UID
[root@localhost jian]# id pao
UID为1002
[root@localhost jian]# usermod -u 8888 pao
[root@localhost jian]# id pao
现在的UID已经修改完成,若切换GID则需要事先存在
用户组管理
指令的使用格式
groupadd GROUPNAME 添加组
groupdel GROUPNAME 删除组
groupmod GROUPNAME 修改组
grep GROUPNAME /etc/group 查看组(一般查看方法)
演示:
[root@localhost jian]# groupadd yue 添加
[root@localhost jian]# grep yue /etc/group 查看
[root@localhost jian]# groupmod -g 8888 yue 修改GID
[root@localhost jian]# grep yue /etc/group 查看
[root@localhost jian]# groupdel yue 删除
[root@localhost jian]# grep yue /etc/group 查看
注:删除之后将不会显示该组,如果还有用户属于该组,默认不能删除。