linux系统--用户和用户组
一、用户和用户组的概念
- 用户:使用操作系统的人
- 用户组:具有相同系统权限的一组用户。在linux系统中可以存在多个用户组
1.1 /etc/group
这里存储当前系统中所有用户组的信息
每一行对应一个用户组,每一个用户组分成4段,每一段都用一个 冒号 来连接。
组密码占位符:用户有登录密码,用户组也有一个登录密码
组编号:每一个用户组都有一个独立的编号
组中用户名列表:当用户名与组名称是相同的时候,可以省略用户名
组号0一定是root用户,组号1-499属于系统预留的组编号,一般来说是预留给安装在操作系统中的软件或者服务的(一般是把未被使用的最小组号分配给安装的软件或者服务)。
用户手动创建的用户组编号是从500开始。把大于等于500的最小组号分配给用户手动创建爱你的用户组
组密码占位符一律用x
1.2 /etc/gshadow
存储当前系统中用户组的密码信息。
每一行都与group文件中对应
组密码为 * 或为空 或为 !的时候,都认为uzu的密码为空,即没有密码。
组管理者即是哪些用户可以管理这个用户组,若为空,则为所有用户都可以管理用户组
1.3 /etc/passwd
存储当前系统中所有用户的信息
每一行对应一个用户的信息
1.4 /etc/shadow
存储当前系统中所有用户的密码信息
二、用户和用户组命令
2.1 用户组命令
2.2.1 创建用户组——groupadd
groupadd 用户组名:创建一个用户组
可以看见,创建了一个编号为 1001 的用户组 hand
同时创建用户组和编号
groupadd -g 888 test
2.1.2 修改组名称——groupmod
groupmod -n 新组名称 原组名称
-n 表示修改用户组的名称
2.1.3 修改组编号——groupmod
groupmod -g 修改的组编号 组名称
2.1.4 删除用户组——groupdel
groupdel 用户组名
在删除用户之前,必须先删除用户组中的用户,否则处在用户组中的用户关于用户组的信息就无法跟组对应上,就变成了系统中的黑户,就会受到权限上的限制。
2.1.5 给用户组设定密码
gpasswd 用户组
2.2 用户命令
2.2.1 创建用户——useradd
先创建一个用户组:groupadd hand
创建用户:useradd -g 用户组名 用户名
创建用户的时候通过 -d 参数指定用户的个人文件夹
useradd -d /home/xxx hand4
若是没有创建用户个人文件夹,系统会在指定目录中创建个人文件夹
2.2.2 给用户添加注释——usermod
usermod -c 注释 用户名
2.2.3 修改用户名
usermod -l 新用户名 旧用户名
指定新的个人文件夹
2.2.4 修个一个用户的所属用户组
usermod -g 目标用户组名 用户名
2.2.5 删除用户——userdel
userdel 用户名
这种删除并不会删除用户的个人文件夹里面的文件夹
userdel -r 用户名
可以删除个人用户以及个人用户文件夹
2.2.6 禁止除了root账号以外的其他账户登录服务器
创建一个nologin空文件即可达到效果
touch /etc/nologin
2.2.7 锁定账户——passwd
passwd -l 用户名
2.2.8 解锁账户——passwd
passwd -u 账户名
2.2.9 使账户无密码登陆:清除账户的密码
passwd -d 用户名
三、主要组与附属组
- 用户可以同时属于多个组
- 一个主要组
- 多个附属组
3.1 将用户添加进/删除另一个组中(即添加进附属组)
gpasswd -a 用户名 其他组名
若一次添加多个用户组,可以将组名用 逗号 隔开来一次添加多个附属组。
将用户从附属组中删除:
gpasswd -d 用户名 其他组名
3.2 将身份切换到附属组
当一个用户属于多个用户组的时候,用户创建的文件默认情况下属于它的主要组。如果要以附属组组员的身份来创建一个文件,需要把身份临时切换到附属组中去。用户需要自己的用户模式下执行,不能在root权限下。
newgrp 附属组名称
3.3 创建爱你用户的时候即指定主要组,也指定附属组
useradd -g 主要组 -G 附属组
多个附属组用逗号连接
四、Linux中用户管理其他命令
4.1 切换用户
把当前用户切换到其他用户
su 切换的用户名
4.2 Whoami 显示当前登陆用户名
4.3 id 用户名
显示指定用户信息,包括用户编号、用户名
主要组编号及名称,附属组列表