1.用户存在的意义
系统用户即系统的使用者,用户管理是对文件进行管理,用户的存在是为了回收权力
2.组存在的意义
组的存在是为了共享权力,组和用户是两个不同的机制
3.组的分类
组可以分为初始组和附加组;
初始组 | 用户出生时就加入的组 |
---|---|
附加组 | 用户后期加入的组 |
4.系统中查看用户信息的命令
命令 | 作用 |
---|---|
(1)whoami | 查看当前用户 |
(2)id 用户名 | 查看用户的id信息 |
(3)id -u 用户名 | 查看用户的uid(用户出生时就有的id) |
(4)id -g 用户名 | 查看用户的gid (用户的初始组) |
(5)id -G 用户名 | 查看用户的所有组的id(包括用户的初始组和附加组) |
(6)id -n 用户名 | 查看用户组的名字(和-G一起使用可以查看用户的所有组的名字) |
以上命令的作用由下图可以看出:
5.用户切换
(1)su - student 切换用户,还在超级用户下,但窗口的环境变了
‘-’会改变用户所在环境和身份,不加‘-’环境不变身份变了,su表示切换身份;
低级用户切换向高级用户需要输入密码,高级向低级不需要输密码,平级切换也需要输密码,密码没有回显
***** 操作完后 exit退出 ,多层次打开容易出错,是不规范的操作 *****
如图:
(2)gnome-session-quit --force 注销当前用户,重新登陆
6.用户在系统中的存储方式
(1)/etc/passwd 用户信息文件(查看这些文件可以用vim)
用户名:x是占位符,密码:uid(用户的id):gid(用户初始组的id): 用户说明文字: 家目录: 用户默认使用软件 (默认shell必须是系统里已有的软件)
如图是vim查看passwd文件和group文件
root列表示用户名;x列是占位符,这个位置上的是用户密码;0列是root的uid;第二个0列是root用户的gid;下来是用户说明;/root列是该用户的家目录;/bin/bash列表示的是该用户默认使用的软件
(2)/ect/group 用户组信息文件
组的名字:组密码:组id:组成员
如图所示:
(3)/etc/shadows 认证信息文件
(4)/etc/skel/.* 默认开启shell文件的配置,用户的骨文件
(5)/home/username 用户的家目录( 用户和系统交流时对话的软件,含有nologin不提供交互界面,sbin下含有nologin,其他的shell是提供交互界面的)
*********注:序号不能超过2^32,uid最小是1000,最大是60000 *********
7.查看命令当前的状态
watch 查看命令当前的状态,进入之后ctrl+c退出
如:watch date 查看时间 watch -n 1 每秒更新一次
注:同时监控多个命令时可以用’ ‘将watch -n 1后的命令括起来,’ '里的命令可以用;隔开
例如:用户信息监控命令 watch -n 1 ‘tail -n 3 /etc/passwd /etc/group;ls -l /home/’
如图第一行的命令是每秒更新一次并查看passwd和group文件的后三行;第二行则是查看后七行
8.用户管理命令
(1)新建用户
命令 | 作用 |
---|---|
useradd 用户名 | 建立新的用户 |
useradd -u xxx 用户名 | 指定用户的uid即建立id为xxx的用户(uid默认为1001,因为student用户的uid是1000) |
useradd -g xxx 用户名 | 指定用户的gid,此时的xxx必须是已经存在的组 |
useradd -G xxx 用户名 | 指定用户的附加组,这个组也必须存在 |
useradd -c “www” 用户名 | 指定用户的说明 |
useradd -d /home/hhh 用户名 | 指定用户的家目录 |
useradd -s /bin/lala 用户名 | 指定用户的默认shell |
以下是依次建立并监控上述要求的用户的过程,-g和 -G后的id必须是已经存在的
下图是一次性将所有要求都实现在一个用户上的操作
(2)删除用户
userdel 用户名 | 删除用户但没有删除用户的配置文件 |
---|---|
userdel -r 用户名 | 删除用户并且删除用户的配置文件 |
如图是将刚刚建立的所有用户的过程可以监控到passwd和group文件下已经没有了刚刚建立的所有用户的信息
注:一般删除用户时避免出现问题都加“ -r ”删除用户并且删除其配置文件
(3)新建组
groupadd 组名 | 建立组 |
---|---|
groupadd -g xxx 组名 | 指定组的id |
如图:
(4)组的删除
groupdel 组名 ##删除组
注:当组内的用户没有删除时组删除不了
如图 当组内的用户还存在时删除组会报错
而删除了组下的用户后删除组就不会报错
(5)如果建立好用户之后用su - xxx切换到了新用户,又打开一个新的terminal,在其中要删除刚刚建好的用户这时会报错:此用户被进程xxxx占用,这是kill -9 进程ID 可以杀死进程
下面是建立了一个新的用户并切换到该用户下,打开一个新的terminal,并删除刚刚建立的用户,此时系统提示这个用户正在被进程占用
kill -9 进程号 杀死该进程,之后再删除用户,这时会自动切换回之前的目录