Linux用户和用户组管理

世事洞明皆学问,人情练达即文章。这篇文章主要讲述Linux用户和用户组管理相关的知识,希望能为你提供帮助。
Linux用户和用户组管理(上)Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。
每个用户账号都拥有一个唯一的用户名和各自的口令。
用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。
实现用户账号的管理,要完成的工作主要有如下几个方面:

  • 用户账号的添加、删除与修改。
  • 用户口令的管理。
  • 用户组的管理。
新增用户(useradd)?1:命令作用?useradd命令可以用来建立用户账号,此命令只有系统管理员root用户才能使用?
2:命令格式?useradd命令的格式为“useradd [选项] 用户账号名”?
useradd命令及含义?
-d:指定用户登入时的起始目录(家目录)?
-c:指定用户账号的失效日期?
-f:指定在密码过期后多少天即关闭该账号?
-g:指定用户所属的用户组?
-G:指定用户所属的附加组?
-r:建立系统用户账号?
-s:指定用户登入所使用的shell?
-u:指定用户id?
3:命令案例?新增一个用户user1?


新增一个用户user2,指定其UID为2000?


新增一个用户user3,指定其家目录为/opt/dir?

新增一个用户user4,指定其用户组为user3用户组?

新增一个临时用户user5,设定其账号有效期至2020年12月30日?
[root@stay admin]# cat /etc/passwd?

使用useradd命令时,加上-e选项,可以在新增用户时指定其失效日期。执行命令“useradd -e 2020-12-30 user5 ”后,查看/etc/shadow文件,可以看到user5用户信息中的失效时间为18626,这个数字是从1970年1月1日为1不断累加得到的,如果想知道这个数字对应的是哪一天,可以使用date命令?

修改用户(usermod)?1:命令作用?usermod命令用于修改用户的基本信息,但不能修改已经登录系统用户的账号名称?
2:命令格式?usermod命令格式为“usermod [选项] 用户账户名”?
3:命令选项?usermod命令选项及含义?
-d:修改用户登录时的目录(家目录)?
-e:修改账号的有效期限?
-g:修改用户所属的用户组?
-G:修改用户所属的附加组?
-l:修改用户账号名称?
-L:锁定用户密码,使密码无效?
-s:修改用户登录后使用的shell?
-u:修改用户UID?
-U:解除密码锁定?
4:命令案例?将user1用户的UID设置为1200?

将user1用户的家目录修改为/opt/dir1?

将user1用户所属的用户组修改为user2用户组?

设置用户密码(passwd)?
1:命令作用?passwd命令主要用于设置用户的密码。普通用户只能设置自己的密码,而root用户,可以为所有用户设置密码?
2:命令格式?passwd命令格式为“passwd [选项] 用户账户名”?
3:命令选项?passwd命令选项及含义?
-d:删除密码?
-f:强制执行?
-l:锁住用户密码?
-s:列出密码的相关信息?
-u:解开已锁定的账号?
4:命令案例?设置user1用户的密码为000000?

设置user1用户密码失效?

解除被锁定的user1用户?

设置user1用户账号密码为空?

切换用户(su)?1:命令作用?su命令用于用户身份的切换,包括从root用户切换为普通用户、从普通用户切换为root用户以及不同用户之间的切换三种情况。其中从root用户切换普通用户,无需输入密码,直接完成切换,其他两种情况,都需要正确输入对方的密码,才能完成切换?
2:命令格式?su命令格式为“su [选项] 用户账号名”?
3:命令选项?-c< 命令> :执行完指定的命令后,即恢复原来的身份?
-f:用于csh与tsch,使shell不读取启动文件?
-l:变更用户身份时,变更环境变量?
-s< shell> :指定要执行的shell
4:命令案例
从root用户切换至user2用户?

删除用户(userdel)?1:命令作用?userdel命令用于删除用户的相关数据,此命令只有管理员root用户才能使用?
2:命令格式?userdel命令格式为“userdel [选项] 用户账号名”?
3:命令选项?userdel命令选项及含义?
-f:强制删除用户,即使用户当前已登录?
-r:删除用户的同时,删除与用户相关的所有文件
4:命令案例


Linux用户和用户组管理(下)?新增用户组(groupadd)?1:命令作用?groupadd命令可用来建立新的用户组,只有系统管理员root用户可以使用groupadd命令,新用户组的信息将被添加到系统文件中?
2:命令格式?groupadd命令格式为“groupadd [选项] 用户组名”?
3:命令选项?groupadd命令选项及含义?
-g:指定新建用户组GID?
-K:覆盖配置文件“/ect/login.defs”?
-o:允许使用重复的用户组GID?
-p:设置用户组密码?
-r:创建系统用户组?
4:命令案例?新增一个用户组group1?


新增一个系统用户组group2?

新增一个用户组group3,指定其GID为1600?

新增一个用户组group4,指定其GID为1600?
允许使用重复的用户组GID?

[root@stay admin]# groupadd -g 1600 group4?
groupadd:GID “1600”已经存在?
[root@stay admin]# groupadd -o -g 1600 group4?
[root@stay admin]# cat /etc/group


修改用户组(groupmod)?1:命令作用?groupmod命令用来修改用户名的相关信息,如用户组GID、名称等?
2:命令格式?groupmod命令格式为“groupmod [选项] 用户组名”?
3:命令选项?groupmod命令选项及含义?
-g:修改用户组名?
-o:允许使用已存在的用户组GID?
-n:修改用户组名称
4:命令案例将group4用户组的GID修改为1200?

[root@stay admin]# groupmod -g 1200 group4?
[root@stay admin]# cat /etc/group


将group3用户组的GID修改为1200?

[root@stay admin]# ?
[root@stay admin]# groupmod -g 1200 group3?
groupmod:GID “1200”已经存在?
[root@stay admin]# groupmod -o -g 1200 group3?
[root@stay admin]# cat /etc/group


将group4用户组的组名修改为newgroup?

管理用户组(gpasswd)?1:命令作用?gpasswd命令用于将一个用户添加到用户组或者从用户组中删除,还可以使用该命令给用户组设置一个组管理员?
2:命令格式?gpasswd命令格式为“gpasswd [选项] 用户组名”?
3:命令选项?gpasswd命令选项及含义?
-a:将一个用户加入到一个用户组中?
-d:将一个用户从一个用户组中删除?
-r:取消一个用户组的组密码?
-R:限制其成员访问用户组?
-A:指定用户组的管理员?
4:命令案例?设置用户组group1的密码为123456?

[root@stay admin]# gpasswd group1?
正在修改 group1 组的密码?
新密码:?
请重新输入新密码:?
[root@stay admin]#


删除用户组(groupdel)?1:命令作用?groupdel命令用于删除用户组,此命令只有root用户才能使用。此命令仅适用于删除“不是任何用户初始组”的用户组,如果用户组还是某用户的初始组,则无法成功删除?
2:命令格式?groupdel命令格式为“groupdel 用户组名”?
3:命令案例?
[root@stay admin]# groupdel group1?
[root@stay admin]# groupdel group2?
[root@stay admin]# groupdel group3?
[root@stay admin]# groupdel newgroup


可见已经删除?
切换用户组(newgrp)?1:命令作用?newgrp命令可以从用户的附加组中选择一个用户组,作为用户新的初始组?
2:命令格式?newgrp命令格式为“newgrp 用户组名”?
3:命令案例?新增2个用户组usergroup1、usergroup2?

[root@stay admin]# groupadd usergroup1?
[root@stay admin]# groupadd usergroup2?
[root@stay admin]# useradd test?
[root@stay admin]# passwd test
更改用户 test 的密码 ?
新的密码:?
重新输入新的密码:?
passwd:所有的身份验证令牌已经成功更新。?
[root@stay admin]#


创建一个用户test,将用户test加入到usergroup1和usergroup2中?

从root用户切换至test用户,创建file1文件,将test用户所属用户组切换为usergroup1,创建file2文件,将test用户所属用户组切换为usergroup2,创建file3文件?

使用ll命令,可以看到刚创建的三个文件所属用户组分别是test用户组、usergroup1用户组、usergroup2用户组,这就是newgrp命令发挥的作用,即通过切换附加组使之成为新的初始组,从而让用户获得使用各个附加组的权限?




【Linux用户和用户组管理】

备注:如有错误,请谅解!
此文章为本人学习笔记,仅供参考!如有重复!!!请联系本人


    推荐阅读