用户管理相关命令及操作

用户信息的查看

在对文件进行操作之前,我们要先了解文件的当前状态。和文件的管理一样,在进行用户管理之前,我们也要先了解当前系统中的用户状态。

id 查看用户信息
不加参数时,查看当前用户信息
加用户名,查该其用户信息。如:id username
id -u查看该用户编号
id -g查看该用户主组
id -G查看该用户所有用户组编号
id -Gn查看该用户所有用户组名字

下图为例:
从下图中可以见到,在当前用户root下,执行id命令与id root命令的结果是一样的。
在这里插入图片描述
其中,uid为用户编号,gid为用户所在主组编号,groups为该用户全部用户组
注意:
1.用户id为0则一定为超级用户
2.所有的用户组包括主组和附加组

用户身份的切换

su - root 从当前用户切换到root用户
从root用户到其他用户不需要其密码,而从普通用户到普通用户需要密码,以及从普通用户到root超级用户需要密码
注意:
每次切换会新建一个shell(bash)进程,可以在资源管理器中查看到
因此,正确的使用该命令的方式不能是一直地切换用户,而不释放空闲用户所占用的资源
而是应该切换一用户,使用完毕后,退出该用户,然后才可以再切换为其他用户
下图为例:
下图中两次连续切换只是为了说明从root—>student,并不需要密码
而从student—>root需要密码
实际操作中并不应该这样连续地切换用户
在这里插入图片描述
注意区分:
不使用‘-’也可以切换,如:su username,但是这样只能加载用户,而不会加载相应的环境
加上’-‘后不仅切换了用户的身份(加载了shell配置文件/etc/bashrc),并且切换了用户环境(加载了系统的环境配置文件/etc/profile)

用户信息的建立,删除与修改

用户在系统中其实就是配置文件中的一串字符,用户的管理与操作,其实就是对于配置文件中的代表用户的字符串的操作。
那么在正式学习用户的建立之前,如何知道用户的状态信息是否成功更改呢?这就需要我们对于用户的状态进行实时的状态的监控。

watch 对于命令的执行实时监控
例如
watch -n 1 “tail -n 3 /etc/passwd /etc/group; ls -l /home/”
该watch命令会对于“ ”内部的命令每间隔1s(-n 1)执行一次,实时刷新状态(执行结果)
注意:
对于一段比较长的命令,我们可以分开来执行,每部分单独执行
这样的话,便于我们及时地调试错误。否则的话,我们可能无法从一段命令中准确的找到错误的所在
下图为例:
在这里插入图片描述
执行完tai -n 3 /etc/passwd /etc/group,测试该命令执行结果无误后,在历史的上一条命令的基础上,在其后在追加另一条命令。这样,测试完毕“ ”内部要执行的命令后就可以执行watch命令了。
命令watch -n 1 "tail -n 3 /etc/passwd /etc/group; ls -l /home/"执行结果如下图:
在这里插入图片描述
新建用户信息
useradd username 不加参数,按照默认规则增加
useradd -u 6000 username 指定用户uid(给该用户分配6000的uid)
useradd -g 6000 username 指定用户gid(指定用户初始组id)
useradd -G 6000 username 指定用户的附加组
注意:不能指定一个不存在的组号
useradd -c “westos“ username 指定用户说明
useradd -d /mnt/leo username 指定用户家目录
注意:
指定不存在的目录作为家目录虽然不报错,但运行时无法以其作为路径找到实际的目录作为家目录,会报错
useradd -s 6000 username 指定用户shell(-s shell)
下图为例:
在这里插入图片描述
在这里插入图片描述
上图中的-u,-c参数可以比较随意的指定,但是-g的参数必须要指定一个已经建立了的组
删除用户信息
userdel username 删除用户信息
注意:
不加参数,只直接删除用户名,但不会删除其相应的占用的资源
想将其占用资源也删除,用userdel -r usrname
下图为例:
在这里插入图片描述
在这里插入图片描述从第一幅图到第二幅图,我们可以发现,建立用户时,不仅建立了用户信息,我们还为它分配了/home目录下的家目录,但是在使用 userdel username 命令时只会删除建立的用户信息。而使用userdel -r usrname命令则会将二者都删除。
新建用户组
groupadd groupname 建立用户组
groupadd -g 6000 groupname 指定用户gid的形式建立用户组
groudel groupname 删除用户组用户组
下图为例:
在这里插入图片描述
在这里插入图片描述
更改已有用户的信息
usermod 直接在已有用户的基础上更改其用户信息
usermod -l newname oldname 将用户原名字更改为新名字
usermod -u 2000 username 更改用户编号(uid)
usermod -g 21 username 更改用户的初始组(gid)
usermod -G 21 username 更改用户的附加组(会将原来的附加组信息覆盖掉)
usermod -G “ ” username 将用户的附加组清空(将原附加组信息用空覆写)
usermod -aG 21 username 添加用户的附加组(在原信息基础上追加)
usermod -c “name” username 指定用户说明文字为name
usermod -d /home/west username 更改用户的家目录的指向
usermod -md /home/west username 更改用户的家目录(重命名原来的家目录)
usermod -s /bin/sh username 更改用户的shell
usermod -L username 冻结用户
usermod -U username 解锁用户
由于这些操作与上文的操作均类似,故不一一演示

用户认证信息

/etc/shadows文件中存放了系统中用户的认证信息(密码相关信息)

westos:!!:17890:0:99999:7: : :
文件的每一行字符串被划分为9列,以“:“符号划分
1.westos 用户名称
2.!! 用户密码(用户密码的加密字符串,前有 ! 时说明被冻结, ! 的个数代表被冻结程度)
3.17895 用户密码最后一次修改的时间(该数字是从1970-1-1起的累计天数)
4.0 用户密码最短有效期:当前时间距离上次修改密码时间必须大于等于最短有效期才可以更改密码
5.99999 用户密码最长有效期:用户密码在该期限内必须要更改一次
6. 7 密码警告期:在密码过期前的指定天数内对用户发送警告信息
7. “ ” 用户非活跃天数:此列默认为空,若设置数值,则在密码最长有效期过期后,仍可在该天数内使用
8. “ ” 用户到期日:此列默认为空,表示用户过了该时间点后一定会被冻结(冻结程度是上文中usermod -L username 命令的2倍)
9. “ ” 用户自定义列,目前未启用(将来用于拓展功能)

用户密码属性更改
passwd:
psswd -S username 查看用户密码信息
passwd username 更改用户密码
passwd -d username 清空该用户密码
passwd -l username 冻结用户(在用户密码前加 !!
passwd -u username 解锁用户
usermod:
usermod -L username 冻结用户(在用户密码前加 !
usermod -U username 解锁用户(在用户密码不为空时使用)
下图为例:
图一,在清空admin用户密码前后查看其用户认证信息
图二,将被清空密码的admin用户重置密码
图三,将admin用户的账户冻结(密码前多出两个!!)
图四,将admin用户的账户解冻
在这里插入图片描述
![在这里插入图片描述]( https://img-blog.csdnimg.cn/20190715220701572.png?x-oss-process=image 在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意:
普通用户更改密码时:
1.要知道当前用户的原始密码
2.账户名与密码不能很相似
3.密码不能为有序的纯数字或纯字母
4.当密码为纯数字或纯字母时要大于8位
但是超级用户不受任何限制
passwd命令,可以修改密码及大多数的密码属性
chage命令,可以修改所有的密码属性,但不能更改密码
使用以上两命令更改密码属性如下:
(1)用户密码上一次被修改时间
passwd -e username 将用户密码上一次修改时间改为0(用户在第一次登陆时会强制更改密码)
chage -d 0 username 与上面的命令功能一致
(2)用户密码最短有效期
passwd -n 1 username 将用户的密码最短有效期更改为1(n)
chage -m 0 username
(3)用户密码最长有效期
passwd -x 40 username 将用户的密码最长有效期更改为40(x)
chage -M 50 username
(4)密码警告期限
passwd -w 2 username 将用户的密码警告期限更改为2(w)
chage -W 2 username
(5)用户非活跃天数
passwd -i 1 username 将用户密码属性的非活跃天数更改为1(i)
chage -I 1 username
(6)用户到期日
chage -E 2018-11-11 username 将用户密码属性的用户到期日更改为2018-11-11,超过这个时间点账户会被冻结
(7)用户自定义列(目前未启用)
下图为例:
图一,二,将用户上一次密码修改时间更改为0
图三,四,将用户最短密码有效期更改
图五,六,分别使用passwd,chage更改用户密码属性
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

用户授权

用户授权文件sudoers
但我们一般使用visudo命令修改该文件,因为该命令会有语法的检测
而使用vim命令对/etc/sudoers文件直接编辑没有语法检测
授权方法
visudo
100行左右
用户 主机名称 = (得到的用户身份) 命令
tom localhost = (root) /usr/sbin/useradd tom用户在该主机上可以root身份执行/usr/sbin/useradd命令
tom localhost = (root) NOPASSWD: /usr/sbin/useradd 授权意义同上,但可以免密执行
(查看主机名称:hostname)
下图为例:
在这里插入图片描述
测试是否成功授权
使用su - username命令切换到被授权用户
sudo 授权命令 参数 操作对象
验证是否授权成功
下图为例:
下图中,以普通用户admin身份,成功新建用户weas
在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 使用date命令显示当前日期。 2. 使用 who命令显示当前所有登录用户的信息,试依次打开多个终端,再查看输出结果的变化。 3. 查看当前linux服务器的主机名的命令。(hostname) 4. 使用clear命令,清除屏幕信息。 5. 添加一个组账号,名称为group1,打开图形界面观察执行后的结果。 6. 查询文件group中group1的记录,改变group1组的GID 为666, 再查看文件group中group1的记录。 7. 以自己的姓名全拼创建一个用户,指定UID为555, 加上用户的备注信息(姓名全称、所在院系等),初始组为group1,有效组为root,打开图形界面观察执行后的结果。 8. 为以自己姓名命名的账户设置密码,并查看passwd文件和shadow文件的最后一行。 9. 使用命令给自己的姓名账户密码冻结,用passwd查看账户相关信息,最后给账户解冻。 10. 进入以自己姓名命名的用户主目录,显示当前的路径,退出当前目录,返回根目录。 11. 复制文件/etc/passwd到用户主目录,文件名不变,打开图形界面Nautilus的窗口观察执行后的结果。 12. 统计文件/etc/passwd文件的字节数和行数。 13. 创建普通文件/home/abc1,创建普通文件/home/abc2。 14. 将/etc/passwd的内容追加到文件abc1中,将/etc/group的内容追加到文件abc2中。(利用附加输出重定向命令)。 15. 修改文件abc1的属性为:属主具有一切权限,同组用户和其他用户具有可读可写的权限。(使用数字模式) 16. 修改abc2的属性为:给其他用户增加可执行的权限。(使用功能模式) 17. 以长文件形式显示文件abc1的详细信息。 18. 进入/home目录,将文件abc1和abc2打包成文件ab.tar,放在以自己姓名命名的用户主目录下(比如/home/liqun),打开图形界面Nautilus的窗口观察执行后的结果。 19. 创建Readme.txt文本文件,内容为你的姓名全拼、学号等信息,保存关闭后用命令查看Readme.txt文件的内容,并在每一行前加行号。 20. 在root目录下创建新文件夹mydir1,其绝对路径为“/root/testdir/mydir1”(假设testdir目录事先并不存在)。 21. 在root目录下创建新文件夹dir1,将其移动到 /root/testdir/mydir1目录下。在root目录下创建新文件夹dir2,将其移动到 /root/testdir目录下,并将其改名为mydir2。打开图形界面Nautilus的窗口,观察以上这些步骤执行后的结果。 22. 分别删除/testdir目录下的mydir1和mydir2目录。(注意rm命令不加-r选项,系统会提示mydir1是个目录不能删除。)(尝试重复步骤20和步骤21,重建上述目录,执行步骤22,比较增加-f选项的区别)。 23. 建立文件/etc/group的符号链接文件/root/a.b,打开图形界面Nautilus的窗口观察a.b文件的特征。 24. 进入根目录的tmp目录下,建立test1和test2两个文件夹,在test1中建立文件a.log, b.log,用ls命令查看所创建的文件a.log,b.log。再把a.log 硬连接到test2目录,文件同名。把b.log 软链接到test2目录下,文件同名。用ls命令查看test2文件夹下所创建的文件,并打开图形界面Nautilus的窗口观察文件夹test2下a.log文件和b.log文件的特征。 25. 由超级用户切换为以自己姓名命名的普通用户身份,并使用普通用户的环境变量,再切换回超级用户身份。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值