一、用户与用户组的概念
在计算机里面创建的用户必须属于一个组,一个组中可以有多个用户,一个用户可以分别属于多个组,但是要注意:一个用户只能有一个初始组,可以有多个附属组。
初始组(主组):给用户一开始分配的或加入的组,一个用户只能有一个初始组。
附加组(附属组):后面给用户分配的组,附属组可以有多个。
二、用户与用户组的配置文件
在linux 里面,通过使用配置文件来记录用户与用户组信息的。有4个配置文件:
- 用户组的配置文件:/etc/group
- 用户组的密码文件:/etc/gshadow
- 用户的配置文件:/etc/passwd
- 用户密码的配置文件:/etc/shadow
1. /etc/group 用户组的配置文件
每一行是表示一个组,用冒号分成了4列。
第一列:表示组名。
第二列:表示组密码,此处是x,x不是真正的密码,真正的密码是存储到/etc/gshadow配置文件里面的。
第三列:组的id(GID) 0表示是管理员组 1-499是系统组,系统默认创建的组。500-65535之间是我们自己创建的组。
第四列:隶属于该附属组的用户。
2. /etc/gshadow 用户组的密码文件
每一行是表示一个组,用冒号分成了4列,每一行和/etc/group配置文件里面的行一一对应。
第一列:组的名称。
第二列:组的密码,如果为! 或空则表示没有密码。
第三列:组的管理员。
第四列:隶属于该附属组的用户。
3. /etc/passwd 用户的配置文件
每一行表示一个用户,通过使用冒号分成7列。
第一列:用户的名称。
第二列:用户的密码,此处的x不是真正的密码,真正的密码是保存在/etc/shadow文件中的,
第三列:用户的id,如果是0,则是超级管理员,1-499是系统创建的用户(伪用户)的id,500-65535是我们自己创建的用户的id,如果把一个普通用户的id改成0,则该用户变成了超级管理员了。注意:伪用户不能登录,不能删除。
第四列:用户的主组的组id,在创建一个用户时,如果没有指定该用户的主组,则会自动生成一个和用户名同名的组,该组就该用户的主组。
第五列:用户的备注信息。
第六列:用户的家目录。
第七列:shell类型,执行的命令集类型。
4. /etc/shadow 用户密码的配置文件
每一行表示一个用户, 每一行和/etc/passwd配置文件里面的行一一对应。
第一列:用户的名称。
第二列:用户的密码,该密码是加密后的密码,如果有!或*则是没有密码。
三、用户组管理命令
1. 添加用户组
groupadd [选项] 组名
-g 添加用户组时指定组ID
案例:创建zu1组和id为888的zu2
2. 修改用户组信息
groupmod [选项] 组名 -n 修改组名 -g 修改组ID
案例1:把zu1改名为zu3
语法:groupmod -n 新组名 旧组名
案例2:把zu2组的组id改为999
语法:groupmod -g 999 组名
3. 删除用户组
groupdel 组名
注意:如果一个组下有用户,是不能删除这个组的
案例:比如把前面创建的zu2组给删除掉
四、用户管理
1. 添加用户
useradd [选项] 用户名 -g group_name 添加用户指定所属主组 -d home 添加用户时指定自己的家目录
案例1:添加一个刘备的用户。
注意:在创建一个用户时,如果没有指定该用户的主组,则会自动生成一个和用户名同名的组,该组就该用户的主组。
案例2:添加一个sanguo组,在该组里面添加一个guanyu的用户。
案例3:添加一个zhangfei的用户,主组为sanguo,家目录为“/xiaofei”。
2. 修改用户
usermod [选项] 用户名 -c comment 修改备注信息 -l login_name 修改用户名 -d home_dir 修改用户家目录 -g group_name 修改用户所属组
案例:把guanyu改名为guangong并且把家目录改为/home/xiaoguan
3. 删除用户
userdel [选项] 用户名
-r 删除用户的家目录
案例:删除guangong这个用户
五、密码管理
新建的用户,如果没有设置密码则是无法登陆的。
passwd [选项] 用户 -S 查看用户密码状态 -l 锁定用户的密码(禁止登录) -u 解除用户密码锁定 -d 删除用户密码
案例1:给liebei设置密码
加密之后的密码:
案例2:锁定liubei用户
锁定liubei用户后,密码的状态:
也可以直接修改/etc/shadow文件里面用户的密码,也能够完成用户的锁定,注意,在修改密码时,一般在该密码前面添加一个特殊的符号,比如使用!,当解除锁定时,直接把密码前面的特殊符号给去掉即可。
案例3:删除liubei用户的密码。
删除用户密码的用户,只能在本地登陆,不能进行远程登录。
案例4:查看liubei用户的密码状态。
六、禁止账号登陆
1. 禁止某个账号登陆
方式一:通过 passwd –l 用户名 命令执行。
方式二:通过修改 /etc/shadow 配置文件中,用户对应的密码内容,一般前面添加特殊字符。
2. 禁止所有普通账号登陆
想要禁止所有的用户登录,则需要在/etc目录下面新建一个 nologin 的文件。
建立一个新文件的命令是 touch /etc/nologin 命令。
注意:无法禁用root用户。
七、添加删除组成员
gpasswd [选项] 组名 -a user_name 添加组成员 -d user_name 删除组成员
案例:把liubei用户添加到sanguo附属组。
八、赋予普通用户特殊权限
普通用户的权限受限,比如通过普通用户执行添加用户的操作,会出现如下的提示:
/etc/sudoers 在这个文件中,记录了哪些用户可以执行哪些命令。
visudo 或 vi /etc/sudoers 这两个命令都可以用来管理 /etc/sudoers 文件。
案例:比如给liubei用户授予添加用户的权限。
使用 visudo 命令:
切换到liubei登录用户,使用 sudo –l 查看当前用户可以执行哪些指令
使用“sudo 某些命令” 来执行特权命令。
sudo useradd 添加的用户
whereis 命令,查看该命令的全路径。