Linux的账号和用户组
用户账号
用户账号有两个重要的文件:
- 管理用户UID/GID参数的
/etc/passwd
。UID指User ID,GID指Group ID - 专门管理密码相关数据的
/etc/shadow
。
1. /etc/passwd文件结构
每一行都代表一个账号,有几行就代表有几个账号在系统中,一般权限为-rw-r--r--
,举例如下:
root:x:0:0:root:/root:/bin/bash
每一行使用“:”分隔开,共7个字段
- 账号名称,即账号。用来对应UID,root的UID对应是0。
- 密码。现在密码放在
/etc/shadow
中,一般用x
表示。 - UID。用户标识符。0表示系统管理员,即root。1-499为系统账号,权限稍弱于root,一般不可登录。500-65535为可登陆账号,给一般用户使用。
- GID。与
/etc/group
有关 - 用户信息说明列。用于解释账号的意义。
- 主文件夹。用户的主文件夹,以上述例子来看,root的主文件夹在
/root
中,当root登录后会立即跑到/root目录里面。默认的用户主文件夹在/home/账号名称
中 - Shell。 一般使用bash
2. /etc/shadow文件结构
/etc/shadow
一般存储对应账号的密码,具体不做详细解读。
有效与初始用户组: groups,newgrp
1. /etc/group文件结构
这个文件用于记录GID与组名的对应,举例如下:
root:x:0:root
每一行代表一个用户组,以“:”作为分割符,共分为四列。
- 用户组名称。
- 用户组密码。一般为x。
- GID。用户组ID。
- 此用户组支持的账号名称。一个账号可以加入多个用户组。
2. 有效用户组与初始用户组
- 初始用户组。即在
/etc/passwd第四列的GID
。当用户登录系统时,就立即拥有这个用户组的相关权限 - 有效用户组。对于一个拥有多个用户组的账号,当前所在的用户组就是有效用户组。
- groups命令表示有效与支持用户组的查看,输出的第一个用户组为当前用户组
- newgrp命令表示有效用户组的切换。
newgrp 用户组
。使用newgrp命令是另外以一个shell来提供这个功能,若要退回到当前环境,输入exit
命令即可。
3. /etc/gshadow
gshadow最大的功能就是创建用户组管理员,减轻root的负担,但现在已较少使用。举例如下:
root:::root
同样以“:”分隔,分为四个字段,字段可为空
- 用户组名
- 密码列,开头为!表示无合法密码,即无用户组管理员
- 用户组管理员的账号
- 该用户组拥有的账号
账号管理
新增用户命令: useradd
useradd [-u UID] [-g 初始用户组] 用户账号名
参数:
-r 创建一个系统的账号,该账号的UID会有限制
举例如下:
用users为初始用户组,uid为700创建一个名为vbird2的账号
useradd -u 700 -g users vbird2
创建一个系统账号,名称为vbird3
useradd -r vbird3
添加账号密码命令: passwd
- 命令:
passwd 账号
,一般在root用户下使用,表示要帮一般账号新建密码 - 命令:
passwd
表示修改自己的密码。
新增用户组命令: groupadd
格式:
groupadd [-g gid] [-r] 用户组名
参数:
-r:新建系统用户组
设置用户组管理员命令: gpasswd
系统管理员(root)的操作:
groupadd groupname
新建用户组gpasswd groupname
设置用户组密码gpasswd [-A user1] groupname
将user加入用户组为groupname的管理员,A
表示将groupname的主控权交由后面的用户管理
用户组管理员(Group administrator)做的操作:
gpasswd [-a] user groupname
将user加入到groupname用户组。谨记在root操作完之后还需要在用户组管理员操作时添加
sudo
sudo虽然是以管理员身份(仅有/etc/sudoers
内的用户才能够执行sudo
命令)运行命令,但是输入的密码为当前用户的密码
shell和终端的区别
- 终端:即所谓的命令行界面,用户输入shell命令用的窗口
- shell:用户和操作系统之间的壳中介,shell将用户输入翻译为操作系统能处理的命令
每个人的环境变量配置在~/.bashrc