《Linux基础》04. 用户管理 · 用户组 · 相关文件 · 权限管理
@
本文以 CentOS7.6 为例
1:用户管理指令
Linux 系统是一个多用户多任务的操作系统。任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
1.1:添加用户
基本语法:
useradd 用户名
默认一个用户的家目录在 /home/用户名/。
当创建用户成功后,会自动的创建和用户同名的家目录。
添加用户并指定家目录:
useradd -d 指定目录 用户名
1.2:修改用户密码
基本语法:
passwd 用户名
命令执行后输入密码即可。
注意:如果只执行
passwd
命令,则是给当前登录用户更改密码
1.3:用户切换与注销
切换用户:
su - 用户名
从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。
注销用户:
方式一、logout
方式二、exit
登录时尽量少用 root 帐号登录,因为它是系统管理员,有最大的权限,操作失误后果可能会很严重。
一般用普通用户登录,如果需要,再用 “ su - root ” 命令来切换成系统管理员身份使用。
1.4:删除用户
删除用户但保留家目录:
userdel 用户名
删除用户且删除家目录:
userdel -r 用户名
一般情况下,删除时建议保留家目录。
1.5:查询用户信息
基本语法:
id 用户名
当用户不存在时,返回无此用户。
1.6:查看当前登录用户
查看登录用户:
who am i
查看当前用户:
whoami
注意:
两个指令的区别:例如使用 root 登录,然后使用 su - bob 切换到 bob 用户,则
使用 whoami 指令,显示为 bob 用户
使用 who am i 指令,显示为 root 用户
1.7:查看有哪些用户
用户信息存放在 /etc/passwd 文件中,所以可以查看 passwd 的文件内容来查看有哪些用户:
方式一、cat /etc/passwd
方式二、cat /etc/passwd | cut -f 1 -d :
2:用户组指令
类似于角色,系统可以对有共性/权限的多个用户进行统一的管理。
linux 中的每个用户必须属于一个组,不能独立于组外。
2.1:新增组
基本语法:
groupadd 组名
2.2:删除组
基本语法:
groupdel 组名
2.3:给用户分配组
添加用户时就分配组:
useradd -g 组名 用户名
如果在添加用户时不指定组,则会自动创建和用户同名的组并将用户分配到这个组。
将用户分配到指定组:
usermod -g 组名 用户名
2.4:更改用户登陆初始目录
基本语法:
usermod -d 目录名 用户名
用户需要有进入到新目录的权限。
3:用户和组相关文件
/etc/passwd:
用户(user)的配置文件,记录用户的各种信息。
每行含义:用户名 : 口令 : 用户标识号 : 组标识号 : 注释性描述 : 主目录 : 登录 Shell。
一般来说,第三个参数(即用户标识号)在500以上的,就是后面建的用户了,其它则为系统用户。
/etc/shadow:
口令的配置文件。
每行含义:登录名 : 加密口令 : 最后一次修改时间 : 最小时间间隔 : 最大时间间隔 : 警告时间 : 不活动时间 : 失效时间 : 标志。
/etc/group:
组(group)的配置文件,记录 Linux 包含的组的信息。
每行含义:组名 : 口令 : 组标识号 : 组内用户列表。
4:拥有者、所属组、其它组
在 Linux 中,对每个文件或目录(文件和目录:统称 “ 文档 ”),有拥有者、所属组、其它组的概念。
之后权限部分会涉及这些概念。
查看文档信息:
ls -ahl
示例:
如下图,红框部分即拥有者,绿框部分即所属组。
- 拥有者
默认情况下,拥有者就是文档的创建者。
修改文档拥有者:
chown [选项] 用户名 文档名
选项 | 说明 |
---|---|
-R | 如果是目录,则使其下所有子文件或目录递归生效 |
- 所属组
默认情况下,当某个用户创建了一个文档后,这个文档的所属组就是该用户所在的组。
修改文档所属组:
chgrp [选项] 组名 文档名
修改文档拥有者与所属组:
chown [选项] 用户名:组名 文档名
选项 | 说明 |
---|---|
-R | 如果是目录,则使其下所有子文件或目录递归生效 |
- 其它组
除文档的拥有者和所属组的用户外,系统的其它用户都属于其它组。
5:权限
ls -l
可用来查看目录下文档详细信息。信息可分为 7 列。
示例:
信息显示为七列:
一 | 二 | 三 | 四 | 五 | 六 | 七
=================================================================
-rw-r--r--. 1 tom root 176 Feb 2 09:39 pig.txt
drwxr-xr-x. 2 root root 4.0K Dec 16 02:34 home
=================================================================
- 第一列:表示文档类型与权限。
- 第二列:对文件:硬连接数。对目录:子目录数与文件数量之和。
- 第三列:表示拥有者。
- 第四列:表示所属组。
- 第五列:文档大小。
- 第六列:文档最后修改时间。
- 第七列:文档名称。
其中第一列又可分为10位,用 0 ~ 9 表示。
0 1 2 3 4 5 6 7 8 9
=============================
- r w - r - - r - -
d r w x r - x r - x
=============================
- 第0位:代表文档类型。
- 第1~3位:拥有者(User)对该文档拥有的权限。
- 第4~6位:所属组(Group)对该文档拥有的权限。
- 第7~9位:其它组(Others)对该文档拥有的权限。
文档类型 | 说明 |
---|---|
d | 目录。相当于 Windows 的文件夹。 |
l | 链接。相当于 Windows 的快捷方式。 |
c | 字符设备文件。如鼠标,键盘等。 |
b | 块设备。比如硬盘。 |
- | 普通文件 |
而权限分为 r、w、x。“ - ” 代表无此权限。
5.1:权限介绍
权限可作用于文件和目录。
权限 | 说明 | 作用于文件 | 作用于文件 |
---|---|---|---|
r | read,代表可读 | 可以读取,查看 | 可以读取,查看目录内容 |
w | write,代表可写 | 可以修改,但是不代表可以删除该文件 | 可以修改,可在目录内创建、删除文档 |
x | execute,代表可执行 | 可以被执行 | 可以进入该目录 |
为了方便,权限也可用数字来表示:
- r = 4
- w = 2
- x = 1
示例:
rwx = 4 + 2 + 1 = 7
rw- = 4 + 2 + 0 = 6
r-x = 4 + 0 + 1 = 5
r-- = 4 + 0 + 0 = 4
5.2:权限修改
通过 chmod 指令,可以修改文档的权限。
基本语法:
chmod [权限修改] 文档名
而 “ 权限修改 ” 操作,有两种方式。
- 方式一:
通过 +、-、= 来变更权限。“ + ” 代表授予某个权限,“ - ” 代表撤销某个权限。
且用以下字母来代表权限修改的对象:
u:拥有者。
g:所属组。
o:其它组。
a:所有人(u、g、o 的总和)。
示例:
# 给 dog.txt 文件的拥有者读、写、执行的权限,给所属组读、执行权限,给其它组读、执行权限
chmod u=rwx,g=rx,o=rx dog.txt
# 给 dog.txt 文件的拥有者除去执行的权限,增加所属组写的权限
chmod u-x,g+w dog.txt
# 给 dog.txt 文件的所有用户添加读的权限
chmod a+r dog.txt
- 方式二:
通过数字组合来变更权限。
且第一个数字为拥有者,第二个数字为所属组,第三个数字为其它组。
示例:
# 将 /home/abc.txt 文件的权限修改成 rwxr-xr-x
方式一、 chmod u=rwx,g=rx,o=rx /home/abc.txt
方式二、 chmod 755 /home/abc.txt
疏风淡月有来时,流水行云无觅处。
——《玉楼春 · 东山探梅》(宋)刘镇
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律