Linux(五)——用户和用户组管理
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。
每个用户账号都拥有一个唯一的用户名和各自的口令。
用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。
实现用户账号的管理,要完成的工作主要有如下几个方面:
- 用户账号的添加、删除与修改。
- 用户口令的管理。
- 用户组的管理。
1、用户账号的管理
用户账号的管理工作主要涉及到用户账号的添加、修改和删除。
添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录和登录Shell等资源。刚添加的账号是被锁定的,无法使用。
1.1、添加用户
语法如下:
useradd 选项 用户名
参数说明:
-
选项:
- -c comment 指定一段注释性描述。
- -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
- -g 用户组 指定用户所属的用户组。
- -G 用户组,用户组 指定用户所属的附加组。
- -s Shell文件 指定用户的登录Shell。
- -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
- -m 自动创建这个用户的主目录
-
用户名:
指定新账号的登录名。
**测试:**添加cheng用户,和自动创建这个用户的主目录
[root@cheng home]# adduser -m cheng
[root@cheng home]# ls
cheng peng wanli www
增加用户账号就是在/etc/passwd文件中为新用户增加一条记录,同时更新其他系统文件如/etc/shadow, /etc/group等。
1.2、删除用户
如果一个用户的账号不再使用,可以从系统中删除。删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。
语法:
userdel 选项 用户名
常用的选项是 -r,它的作用是把用户的主目录一起删除。
**测试:**删除cheng用户和该用户的主目录
[root@cheng home]# userdel -r cheng
[root@cheng home]# ls
peng wanli www
删除用户就是删除在系统文件中(主要是/etc/passwd, /etc/shadow, /etc/group等)的记录。
1.3、修改用户
修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。
语法:
usermod 选项 用户名
常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等
,这些选项的意义与useradd
命令中的选项一样,可以为用户指定新的资源值。
另外,有些系统可以使用选项:-l 新用户名
这个选项指定一个新的账号,即将原来的用户名改为新的用户名。
**测试:**修改用户目录
#先创建一个用户
[root@cheng home]# useradd -m cheng
[root@cheng home]# ls
cheng peng wanli www
#然后修改用户的目录,修改为cheng1
[root@cheng home]# usermod -d /home/cheng1 cheng
[root@cheng home]# ls
cheng peng wanli www #不显示在home目录下
不显示在home目录下,显示在/etc/passwd配置文件下
所以在修改目录前,需要先创建这个目录。
1.4、切换用户
当前用户为root用户,切换到上面创建的cheng用户:
[root@cheng home]# su cheng
[cheng@cheng home]$
#:表示超级用户
$ :表示普通用户
回到root目录:
[cheng@cheng home]$ exit
exit
[root@cheng home]#
2、用户密码的管理
用户管理的一项重要内容是用户密码的管理。用户账号刚创建时没有密码,但是被系统锁定,无法使用,必须为其指定密码后才可以使用,即使是指定空口令。
指定和修改用户密码的Shell命令是passwd
。超级用户可以为自己和其他用户指定密码,普通用户只能用它修改自己的密码。命令的格式为:
passwd 选项 用户名
可使用的选项:
- -l 锁定密码,即禁用账号。
- -u密码解锁。
- -d 使账号无密码。
- -f 强迫用户下次登录时修改密码。
测试:给用户cheng 指定密码
[root@cheng home]# passwd cheng
Changing password for user cheng.
#要求你输入新密码
New password:
BAD PASSWORD: The password fails the dictionary check - it is too simplistic/systematic
#再输一遍密码
Retype new password:
passwd: all authentication tokens updated successfully.
注:在Linux中输入密码不显示
给用户cheng 指定密码后,不能用 su cheng 命令登录用户,需要在菜单栏点击新建,然后输入主机IP,用户名(cheng),和上面指定的密码,才能登录。
修改密码:
[cheng@cheng ~]$ passwd
3、用户组的管理
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
用户组的管理涉及用户组的添加、删除和修改。
本质:组的增加、删除和修改实际上就是对/etc/group文件的更新。
创建用户组
语法:
groupadd 选项 用户组
可以使用的选项有:
- -g GID 指定新用户组的组标识号(GID)。
测试
创建一个用户组,新组的组标识号是在当前已有的最大组标识号的基础上加1
[root@cheng ~]# groupadd wei
再创建一个用户组,并指定组标识为1024
[root@cheng ~]# groupadd -g 1024 wei1
查看创建的用户组:
删除用户组
语法:
[root@cheng ~]# groupdel 用户组
测试:删除用户组wei1
[root@cheng ~]# groupdel wei1
修改用户组的属性
语法:
groupmod 选项 用户组
常用的选项有:
- -g GID 为用户组指定新的组标识号。
- -n新用户组 将用户组的名字改为新名字
测试:修改wei用户组的组标识为1024,组名为wei111
[root@cheng ~]# groupmod -g 1999 -n wei111 wei
查看效果:
修改成功!
切换用户组
如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限
如果当前在其他root用户组,而你想切换到cheng用户组:使用命令newgrp即可切换
[root@cheng ~]# newgrp cheng
4、与用户账号有关的系统文件
对用户账号和用户组的操作,实质上是在操作有关的系统文件。这些文件包括/etc/passwd, /etc/shadow, /etc/group等。
/etc/passwd文件是用户管理工作涉及的最重要的一个文件。
Linux系统中的每个用户都在/etc/passwd文件中有一个对应的记录行,它记录了这个用户的一些基本属性。
这个文件对所有用户都是可读的。它的内容类似下面的例子:
每行记录又被冒号(:)分隔为7个字段,其格式和具体含义如下:
用户名:口令(密码):用户标识号:组标识号:注释性描述:主目录:登录Shell
真正的加密后的用户口令字存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一个特殊的字符,例如“x”或者“*”。