Linux是一个多用户操作系统,可以允许多个用户同时登陆同一台Linux主机,本介绍一下Linux中用户组的创建、修改和删除,用户的创建、更改和删除
1.本文基于Windows10系统
2.本文基于Windows10的虚拟机VMware14
3.本文虚拟的Linux系统是 centos7
4.本文均以root账户进行操作
5.参考资料:《跟阿铭学Linux(第三版)》--- 第五章 Linux用户和用户组管理
参考链接:https://blog.csdn.net/shgh_2004/article/details/79992739
1.所有 用户 都有一个单独的id,即 uid
2.所有 用户 都属于 某一个 用户组
3.每个 用户组 都有一个 组编号,即 gid
4.每个用户组下可以存在多个用户
1.useradd : 添加用户
2.userdel : 删除用户
3.passwd : 自动生成密码
4.usermod : 修改用户属性(*)
5.groupadd : 添加用户组
6.groupdel : 删除用户组
7.groupmod : 修改用户组的属性(*)
8.passwd : 创建用户密码
groupadd droupdel useradd userdel usermod passwd tail id su
1./etc/passwd
2./etc/shadow
3./etc/group
因为用户存在于用户组下,所以本文主线以创建用户组开始,再创建用户的顺序讲述几个命令和相关概念。
centos Linux用户中分为三类用户:即超级用户(root用户、根用户,用户UID=0)、普通用户(用户UID>=1000)、伪用户(用户UID=1~999)
超级用户拥有系统的最高权限,甚至可以删除系统;普通用户相对于超级用户少了很多权限,比如删除用户,禁止用户,添加用户组,删除用户组,修改系统配置等等;伪用户是无法使用密码登陆的,即仅仅用于系统自动的用户,人是无法用于登陆使用的
参考链接:https://blog.csdn.net/qq_34556414/article/details/78902662
这是Linux系统重要的两个文件,/etc/passwd是用来储存用户信息的文件,/etc/shadow是用来储存密码及密码相关属性的文件
该文件所有行中,以 :为分界点,将每行分为7列。第一列表示用户名字,第二列是表示用户密码,由于保密关系,使用了x来表示密码,正真的密码保存在/etc/shadow文件中,第三列表示用户的用户id(uid),第四列表示用户的组id(gid),第五列表示用户的注释信息,用来储存用户信息的列,第六列表示用户的家目录:当用户登陆时的默认位置就在家目录中,第七列就表示用户用户登陆时运行的shell脚本。
该文件同passwd分界方式一样,第一列表示用户名,第二列表示用户的密码,我们看到的时乱码,这是因为密码被加密了,但是有些高级黑客仍然可以破解,第三列表示该用户的上一次更改密码的日期,计算方法公式:更改那年的全年天数*(year-1970)+(year-1970)/4+1,第四列表示多少天才可以更改密码,默认时0,表示不受限制,第五列表示密码多少天内必须修改一次,默认99999天,第六段表示密码多少天前发出更改密码警告,第七段表示密码失效多少天后账户锁定,即表示密码过期后多少天锁定账户,第八列表示账户在指定日期前有效,过期作废,计算方法同第三列一样,最后一列作为保留
其命令的选项有:
其中最常用的有-g ,用于指定用户组组id的选项
比如我现在要创建一个用户组,命令实例如下:
#groupadd -g 5222 testGro
#tail /etc/group
命令解说:groupadd命令即表示添加用户组,后面的-g表示指定用户组的组id,这句命令的意思就是创建testGro用户组,且指定testGro用户组的组id为5222。然后我们使用tail命令查看/etc/group的最后十行文本,发现最后一行的名为testGroup组的组gid即是5222
如果不使用-g命令,使用groupadd创建用户组的时候,就会按照用户组中组id(gid)默认为上一个gid自增一个id。就是在最大组的id数值上加一作为自己的组id(gid),示例:
#groupadd testGro1
#tail /etc/group
该命令用于更改用户组的相关设置和属性
groupdel命令在删除用户组的时候,要求其用户组下没有归属的用户才能删除,否则不能删除用户组,例如我们执行如下命令:
#groupdel testUser4
所以我们将使用usermod将testtUser4用户转移到gid为5222的testGro用户组之
#usermod -g 5222 testUser4
#groupdel testUser4
#tail -n 5 /etc/group
命令解说:我们使用usermod -g 5222 testUser4 命令改变了testUser4的所属组,然后使用groupdel testUser4命令删除了testUser4的原组,再使用tail -n 5 /etc/group查看了/etc/group文件中最后五行的数据,显示testUser4用户组已经不存在了
参考链接:http://www.cnblogs.com/diantong/p/9436027.html
该命在创建用户的时候,如果不指定用户的所属组,则默认会创建一个和用户名相同的用户组,该用户默认会归属于与用户名字相同用户组,而新建用户的用户id(uid)则默认以当前所有用户id(uid)中最大的一uid号个自增1作为自己的用户id(uid)
示例命令:
#gourpadd testUser3
#tail /etc/passwd
我们可以在添加用户的时候指定该新用户的所属组和uid,比如以下命令:
#useradd -u 5523 -g 1000 testUser1
#id testUser1
参考链接:https://www.cnblogs.com/Alanf/p/7994324.html
通常我们创建号用户后用户密码时没有的,这时候,我们需要使用passwd初始化密码
例如我们创建的testUser1 testeUser2 testUser3 是没有初始化密码的,所以可以通过passwd命令来初始化密码,命令示例
#passwd testUser2
#su testUser2
参考链接:https://www.cnblogs.com/aofo/p/6185511.html
在使用此命令的时候最好加上r选项,加上以后Linux会自动删除其用户名下的所有文件以及相关配置。如果不使用的话,你还要手动去删除相关的配置,会比较麻烦,所以在删除用户的时候最好加上r选项