Linux平台下用户基本管理机制及原理剖析(一)
Linux是一个多用户、多任务的操作系统,具有很好的安全性和稳定性。
用户和群组存在的意义
用户的存在是为了使你的工作环境更加安全,就是有一个隐私空间,这个空间只有用户本人有权限。
而群组存在的意义是为了让大家有一个共享的空间,为了更加方便多个用户在一个共享空间中操作。
好比是三个不认识的人合租,每人一间卧室,大家都有自己的私人空间。但是客厅就是共用的。
用户的查看
查看当前用户
whoami ##查看当前的用户
系统中用户的查看
id username ##查看指定用户的id信息
id username ##查看指定用户的id信息
id -u username ##查看用户的uid
id -g username ##查看用户的gid
id -G username ##查看用户所在的所有组的id
id -n username ##显示名字而不显示id数字
说明几点问题:在上面可以看到:
student为初始组,初始组之能有一个
wheel为附加组,附加组可以不只一个
用户切换
su - username
su - 中的“-表示在用户身份切换的同时切换当前用户的环境
su - 执行时高级用户切换到低级用户时不需要密码,低级用户切换至高级用户时需要密码,平级用户之间切换时也需要密码
注意: 1. 每次切换到其他用户操作后必须退出,然后再切换到其他的用户,不然会发生异常,命令不能正常的运行;
2. 切换需要密码时,密码不外显。
对了切换其他用户还有一种办法:
在命令行中输入
gnome-session-quit --force ##注销当前的用户
注销了当前的用户后,可以登陆其他用户。
用户在系统中的储存方式
/etc/passwd
用户信息文件
用户名称:密码:uid:gid:说明:家目录:默认shell
注意:默认shell的指定有哪些,可以查看系统中/etc/shells
/etc/group
用户组信息文件
组的名字:组密码:组id:组成员
/etc/shadows
认证信息文件
/etc/skel/.*
默认开启shell的配置,用户的骨文件
/home/username
用户的家目录
用户管理命令
为了方便观察用户信息的变化,便于我们监控用户存储文件内容的变化。
先为大家介绍一个监控命令:watch:
例如在命令提示符中输入 watch date 即可得到下面的动态时间:
所以为了监视用户信息储存文件,我们可以用如下的指令来进行实时监控:
watch -n 1 'tail -n 3 /etc/passwd /ect/group;less -l /home/'
这行代码表示每秒监视一次,监视的内容为用户存储信息文件和用户组信息文件的倒数三行
运行以上代码,可以看到如下结果:
1)用户的删除:userdel
userdel student ##删除用户但不删除用户的配置文件
userdel -r student ##删除用户并删除用户的配置文件
2)用户建立:
useradd ##建立用户的,建立用户时,读取/etc/login.defs 文件内容确定规则
useradd -u 8888 newuser ##指定用户uid
注意:用户的uid不能超过60000,即2^32
useradd -g 21 newuser ##指定用户初始组id,“ 21用户组必须是存在的”
useradd -G 21 newuser ##指定用户份附加组id,“21用户组必须存在”
useradd -c "hello" newuser ##指定用户的说明
useradd -d /home/dir newuser ##指定用户的家目录
useradd -s /bin/sh newuser ##指定用户的默认shell
###########################################################################
groupadd newgroup ##建立用户组
groupadd -g 888 newgroup ##建立用户组,并指定用户组的id
groupdel groupname ##删除用户组
在桌面虚拟机里输入以下指令:
得到如下的结果:
注意:如图,当你删除一个用户并删除其配置文件时,可能会遇到以下报错,出现这种情况时,先结束其所在的进程,
通过 kill + 进程id 即可结束进程,结束进程后就可以顺利地删除用户及其配置文件了。