Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员(root)申请一个账号,然后以这个账号的身份进入系统。
用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。
用户和用户组相关的指令都需要root权限
一、用户标识符
每个用户都有用户id(UID)和群组(组id:GID),每个用户在创建时都有用户主组(默认和用户名同名,且只有一个),用户创建后可添加任意个附加组。
- 存用户相关信息的文件:
(1)存储用户信息:/etc/passwd
sudo vim /etc/passwd
用户名:密码:UID:GID:注释:家目录:解释器shell
每一行代表一个账号(有很多是系统账号),UID为0是root账号,UID为1~999是保留的系统账号,1000以上一般是给一般用户的。GID是用户主组的ID
(2)存储用户组信息:/etc/group
vim /etc/group
组名:用户组密码:GID:用户组支持的账号
(3)存储用户密码信息:/etc/shadow
sudo vim /etc/shadow
账号名称:密码:密码更新日期:密码不可被更改的天数:密码需要被更改的天数:密码需要更改期限前的警告天数:密码失效日:账号失效日期:保留字段
二、用户管理
1. whoami指令(查看当前用户)
whoami
2. adduser指令(添加用户)
adduser 选项用户名
sudo adduser -uid 8888 lyx
sudo adduser -gid p2310 //组id默认是p2310
常用选项:
gid:表示指定用户的用户主组,选项的值可以是用户组id,也可以是组名(默认创建同名的用户组)
uid:用户的id(用户的标识符),系统默认会从1000之后按顺序分配uid,如果不想使用系统分配的,可以通过该选项自定义
验证是否创建成功:
- 验证letc/passwd的最后一行,查看是否有pointer 的信息
sudo vim /etc/passwd //查看是否创建成功
- 验证是否存在家目录(自动创建家目录)
cd ..
ls
3.usermod指令(修改用户)
usermod 选项 用户名
常用选项:
- g:指定用户主组
- u:指定UID
- l:修改用户名
- G:指定附加组
- a: 与-G合用(-a -G),增加附加组(保留原组)
- 修改用户名
sudo usermod -l 要修改的 原用户名 //家目录不会修改
sudo usermod -l lyx1 lyx //家目录不会修改
- 修改用户主组
sudo usermod -g pot pointer
4.passwd指令(设置/更改密码)
passwd 用户名 //默认修改root的密码
sudo passwd lyx1
5.su指令(切换用户)
su 用户名
如果用户名不指定则表示切换到root用户
6. deluser指令(删除用户)
deluser --remove-home 用户名 //删除用户的同时,删除其家目录
//如果要删除的用户正使用,就关闭终端再开一个在执行命令
三、用户组管理
1. addgroup指令(用户组添加)
addgroup 选项 用户组名
【常用选项】:
gid:设置GID,默认从1000之后递增
sudo addgroup -gid 6666 demo2 //添加组
2. groupmod指令(用户组编辑)
groupmod 选项 用户组名
【常用选项】:
-g:设置GID
-n:修改用户组名
sudo groupmod -n demo3 demo2
3. delgroup指令(用户组删除)
delgroup 用户组名
sudo delgroup demo3
【注】:不允许删除某个用户的主组,需要从组内移出所有用户才能删除。
四、文件的拥有者和所属用户组
lyx1和lyx分别是拥有者和所属用户组
1. chown指令(改变文件拥有者)
change owner,改变文件拥有者(属主)
chown新用户名待修改文件
sudo chown lyx1 x.c
chown -R 新用户名 待修改文件 //递归修改,连同目录下所有文件都变更
sudo chown -R lyx1 day1
chown 新用户名:新用户组名 待修改文件 //修改拥有者和所属用户组
sudo chown -R lyx1:lyx day1
2. chgrp 指令(改变文件所属用户组)
change group,改变文件所属用户组
chgrp 新用户组名 待修改文件
【常用选项】:
R,递归
sudo chgrp lyx1 x.c