今日主题
Linux 用户、用户组与权限管理
今日目标
今天学完你要能做到:
1. 知道 root 用户和普通用户的区别
2. 知道用户、用户组是什么
3. 会查看当前用户
4. 会创建用户
5. 会修改文件所属用户和用户组
6. 会用 chmod 修改权限
7. 能理解为什么 Nginx / MySQL / Docker 经常会遇到权限问题
一、今天的核心理解
1. Linux 里面有“用户”和“用户组”
你可以这样理解:
用户 = 具体的人
用户组 = 一类人的集合
比如:
root 用户:系统最高管理员
nginx 用户:专门运行 Nginx 服务
mysql 用户:专门运行 MySQL 服务
普通用户:日常登录操作的用户
为什么服务要有自己的用户?
因为安全。
如果 Nginx 被攻击了,它不是 root 权限,攻击者能做的事情就会少很多。
二、今天要敲的命令
1. 查看当前用户
whoami
可能输出:
root
意思是你现在是 root 用户。
2. 查看当前用户 ID 和所属组
id
可能输出类似:
uid=0(root) gid=0(root) groups=0(root)
含义:
uid = 用户 ID
gid = 用户组 ID
groups = 当前用户属于哪些组
如果 uid=0,说明你是 root。
3. 查看系统有哪些用户
cat /etc/passwd
内容会很多,先不用全看懂。
你重点看这种格式:
root:x:0:0:root:/root:/bin/bash
大概意思:
用户名:密码占位:用户ID:组ID:说明:家目录:默认Shell
4. 查看系统有哪些用户组
cat /etc/group
格式类似:
root:x:0:
意思是:
组名:密码占位:组ID:组成员
三、创建一个测试用户
今天我们创建一个专门练习的用户。
useradd clouduser
给它设置密码:
passwd clouduser
系统会让你输入两次密码。
注意:Linux 输入密码时不会显示任何字符,这是正常的,不是键盘坏了。
四、切换用户
从 root 切换到 clouduser:
su - clouduser
查看当前用户:
whoami
应该输出:
clouduser
退出当前用户,回到 root:
exit
六、chown 修改文件所属用户
把文件所属用户改成 clouduser:
chown clouduser test.txt
ls -l
你会看到类似:
-rw-r--r-- 1 clouduser root 0 Apr 30 10:00 test.txt
意思是:
这个文件的主人变成了 clouduser
但是所属组还是 root
同时修改用户和用户组
chown clouduser:clouduser test.txt
ls -l
你会看到类似:
-rw-r--r-- 1 clouduser clouduser 0 Apr 30 10:00 test.txt
意思是:
所属用户 = clouduser
所属用户组 = clouduser
五、文件所属用户和用户组
回到 root 后,进入家目录:
cd ~
mkdir cloud-day2
cd cloud-day2
touch test.txt
ls -l
你可能看到:
-rw-r--r-- 1 root root 0 Apr 30 10:00 test.txt
重点看这两个:
root root
第一个 root:文件所属用户 第二个 root:文件所属用户组
六、chown 修改文件所属用户
把文件所属用户改成 clouduser:
chown clouduser test.txt
ls -l
你会看到类似:
-rw-r--r-- 1 clouduser root 0 Apr 30 10:00 test.txt
意思是:
这个文件的主人变成了 clouduser
但是所属组还是 root
同时修改用户和用户组
chown clouduser:clouduser test.txt
ls -l
你会看到类似:
-rw-r--r-- 1 clouduser clouduser 0 Apr 30 10:00 test.txt
意思是:
所属用户 = clouduser
所属用户组 = clouduser
七、chmod 修改权限
先看权限:
ls -l
比如:
-rw-r--r-- 1 clouduser clouduser 0 Apr 30 10:00 test.txt
权限拆解:
rw- 文件主人权限
r-- 同组用户权限
r-- 其他用户权限
对应数字:
r = 4
w = 2
x = 1
所以:
rw- = 4 + 2 = 6
r-- = 4
r-- = 4
因此:
rw-r--r-- = 644
常见权限数字
644:普通文件常用权限
755:脚本或目录常用权限
600:私密文件权限
777:所有人都能读写执行,不建议乱用
修改权限为 600
chmod 600 test.txt
ls -l
你会看到:
-rw------- 1 clouduser clouduser 0 Apr 30 10:00 test.txt
意思是:
只有文件主人可以读写,其他人没有权限
修改权限为 644
chmod 644 test.txt
ls -l
你会看到:
-rw-r--r-- 1 clouduser clouduser 0 Apr 30 10:00 test.txt
修改权限为 755
chmod 755 test.txt
ls -l
你会看到:
-rwxr-xr-x 1 clouduser clouduser 0 Apr 30 10:00 test.txt
意思是:
文件主人可以读、写、执行
同组用户可以读、执行
其他用户可以读、执行
八、今天的小实验
你今天直接按这个顺序敲。
whoami
id
cat /etc/passwd
cat /etc/group
useradd clouduser
passwd clouduser
su - clouduser
whoami
exit
cd ~
mkdir cloud-day2
cd cloud-day2
touch test.txt
ls -l
chown clouduser test.txt
ls -l
chown clouduser:clouduser test.txt
ls -l
chmod 600 test.txt
ls -l
chmod 644 test.txt
ls -l
chmod 755 test.txt
ls -l
九、面试苏打
Linux 通过用户、用户组和权限控制系统安全。每个文件都有所属用户和所属组,权限分为读、写、执行三种,分别用 r、w、x 表示,也可以用数字 4、2、1 表示。比如 644 表示文件所有者可读写,同组用户和其他用户只读;755 表示所有者可读写执行,其他人可读和执行。在实际运维中,Nginx、MySQL、Docker 等服务启动失败或无法写日志,经常和文件路径错误、权限不足、所属用户不正确有关。
小结
Code 4 云计算复盘 Day 2
1. 今日主题
Linux 用户、用户组与权限管理
2. 今日完成的命令
whoami id cat /etc/passwd cat /etc/group useradd passwd su exit chown chmod ls -l
3. 今天理解了什么?
今天理解了 Linux 中用户和用户组的作用。每个文件都有所属用户和所属组,权限由 r、w、x 组成,也可以用数字表示。r=4,w=2,x=1,所以 644、755、600 这些数字本质上就是权限组合。
4. 今天遇到的问题
这里写你真实遇到的问题。
5. 我是怎么解决的?
这里写你的解决方法。
6. 今天的面试表达
Linux 通过用户、用户组和权限控制系统安全。服务无法启动、日志无法写入、脚本无法执行,很多时候都和权限或所属用户有关。
7. 明天计划
继续学习 Linux 进程、端口、服务管理,包括 ps、top、kill、systemctl、ss、netstat。