作为Linux新手,你是不是也遇到过这样的困惑:双击某个文件提示“权限不足”,输入命令后报错“Permission denied”,明明是自己创建的文件,却没法修改或删除?其实这都是Linux的“用户和权限”在起作用。
Linux和Windows最大的区别之一,就是它是一个多用户操作系统——一台Linux服务器可以同时让多个用户登录使用,而权限机制就是为了保护每个用户的文件和系统安全,避免误操作或恶意篡改。今天就用最直白的话,带大家搞懂Linux用户和权限,看完就能解决80%的新手权限问题!
一、先搞懂:Linux里的“用户”到底是什么?
Linux里的“用户”,就像我们家里的钥匙——不同的钥匙能打开不同的门,不同的用户能操作不同的文件和命令。简单来说,用户分为3类,新手记住核心2类就够了:
1. 超级用户(root):系统的“管理员”
root是Linux系统的最高权限用户,相当于Windows里的“管理员账户”,拥有系统的绝对控制权——可以创建/删除任何用户、修改任何文件、执行任何命令,甚至能删除系统核心文件(所以新手千万别随便用root操作!)。
新手常用的“sudo”命令,其实就是“临时借用root权限”——比如你用普通用户执行命令报错,前面加个sudo,输入密码后就能临时获得管理员权限,既安全又方便。
2. 普通用户:我们日常用的“普通账户”
普通用户是管理员(root)创建的,权限有限——只能操作自己家目录(/home/用户名)下的文件,不能修改系统核心设置,也不能删除其他用户的文件。
比如你安装Linux时创建的账户,就是普通用户,日常办公、编写代码、浏览文件,用这个账户就够了,既能避免误操作搞崩系统,也能保护自己的文件安全。
3. 系统用户:系统“自带”的“隐形用户”
这类用户不是给人用的,是系统运行时自动使用的,比如运行MySQL、Nginx等服务时,会用到专门的系统用户(如www-data、mysql),新手不用关注,知道有这么个类型就行。
二、核心概念:用户组(Group)——给用户“分组管理”
如果有多个普通用户,比如公司团队共用一台服务器,每个用户都有自己的文件,但有些文件需要大家共同操作(比如项目文档),总不能一个个设置权限吧?这时候就需要“用户组”。
用户组就像“小组”,把多个用户归到一个小组里,给这个小组设置权限,小组里的所有用户就都能拥有这个权限,大大简化管理。
举个例子:创建一个“dev”组,把小明、小红两个用户加入这个组,给“dev”组设置“读取项目文件”的权限,那么小明和小红都能读取这个项目文件,不用分别给两个人设置。
每个用户默认有一个“私有组”(和用户名同名),也可以加入多个其他组,就像一个人可以加入多个兴趣小组一样。
三、重点中的重点:文件/目录的权限到底怎么看?
我们最常遇到的“权限不足”,本质是“当前用户没有操作这个文件/目录的权限”。那怎么查看一个文件的权限呢?
在终端输入命令 ls -l(注意是小写L),就能看到当前目录下所有文件/目录的详细信息,比如这样:
-rw-r--r-- 1 root root 1234 4月 26 18:44 test.txt drwxr-xr-x 2 user user 4096 4月 26 18:45 test_dir
我们重点看最前面的10个字符(比如 -rw-r--r-- 和 drwxr-xr-x),这就是文件/目录的权限信息,拆解一下,新手一看就懂:
1. 第1个字符:文件类型
不用记太多,新手重点记2个:
-
-:普通文件(比如txt、sh、文档等) -
d:目录(文件夹)
比如上面的test.txt是普通文件(开头是-),test_dir是目录(开头是d)。
2. 第2-10个字符:权限分组(3组,每组3个字符)
这9个字符分为3组,对应“所有者、所属组、其他人”,每组3个字符分别代表“读(r)、写(w)、执行(x)”权限,缺一不可:
|
权限分组 |
对应字符位置 |
含义 |
|---|---|---|
|
所有者(Owner) |
第2-4个字符 |
文件/目录的创建者,默认拥有最高权限 |
|
所属组(Group) |
第5-7个字符 |
文件/目录所属的用户组,组内用户共享这组权限 |
|
其他人(Others) |
第8-10个字符 |
既不是所有者,也不属于所属组的其他用户 |
3. 权限字符含义(新手必记)
r、w、x是权限的核心,不同权限对应不同操作,而且对“文件”和“目录”的作用不一样,别搞混了:
|
权限字符 |
对文件的作用 |
对目录的作用 |
|---|---|---|
|
r(读) |
可以查看文件内容(比如用cat、less命令) |
可以列出目录里的文件(比如用ls命令) |
|
w(写) |
可以修改、删除文件内容 |
可以在目录里创建、删除、重命名文件/目录 |
|
x(执行) |
可以运行文件(比如shell脚本、可执行程序) |
可以进入目录(比如用cd命令) |
注意:如果权限位是“-”,表示没有该权限。比如 r-- 表示只有读权限,没有写和执行权限;rwx 表示拥有读、写、执行全部权限。
举个例子,彻底看懂权限
还是看刚才的 -rw-r--r--(test.txt的权限):
-
第1个字符
-:test.txt是普通文件; -
第2-4个字符
rw-:所有者拥有“读、写”权限,没有执行权限(因为是文本文件,不需要执行); -
第5-7个字符
r--:所属组只有“读”权限,不能修改; -
第8-10个字符
r--:其他人也只有“读”权限,不能修改。
再看 drwxr-xr-x(test_dir的权限):
-
第1个字符
d:test_dir是目录; -
第2-4个字符
rwx:所有者可以读(ls)、写(创建文件)、执行(cd进入); -
第5-7个字符
r-x:所属组可以读、执行,不能写(不能创建/删除文件); -
第8-10个字符
r-x:其他人可以读、执行,不能写。
四、新手必学:常用权限操作命令(直接复制能用)
看懂权限后,更重要的是学会修改权限、管理用户,下面这些命令是新手高频使用的,记下来,遇到权限问题直接用!
1. 用户管理(创建、删除、切换)
-
创建普通用户:
sudo useradd 用户名(比如sudo useradd xiaoming); -
给用户设置密码:
sudo passwd 用户名(输入后会提示输入密码,密码输入时不显示,正常输入即可); -
切换用户:
su - 用户名(比如su - xiaoming,切换到小明账户;输入su - root切换到root账户); -
删除用户:
sudo userdel -r 用户名(-r表示同时删除该用户的家目录,避免残留文件); -
查看当前用户:
whoami(输入后会显示当前登录的用户名)。
2. 用户组管理(创建、添加用户)
-
创建用户组:
sudo groupadd 组名(比如sudo groupadd dev); -
将用户加入用户组:
sudo usermod -aG 组名 用户名(比如sudo usermod -aG dev xiaoming,把小明加入dev组); -
查看用户所属组:
id 用户名(比如id xiaoming,会显示小明的所属组)。
3. 权限修改(重点!)
修改权限用 chmod 命令,有两种方式:字符方式(新手易理解)和数字方式(高手常用),新手先学字符方式,熟练后再用数字方式。
方式1:字符方式(推荐新手)
格式:chmod 权限对象+权限字符 文件名/目录名
权限对象:u(所有者)、g(所属组)、o(其他人)、a(所有用户,即u+g+o);
权限操作:+(添加权限)、-(删除权限)、=(设置权限,覆盖原有权限);
示例(直接复制实操):
-
给test.txt的所有者添加写权限:
chmod u+w test.txt; -
给test_dir的所属组删除写权限:
chmod g-w test_dir; -
给所有人添加读权限:
chmod a+r test.txt; -
给所有者设置读、写、执行权限,所属组和其他人设置读、执行权限:
chmod u=rwx,g=rx,o=rx test.sh。
方式2:数字方式(高效)
每个权限对应一个数字,新手记住3个数字即可:r=4,w=2,x=1;
权限组合:将每组的3个权限对应的数字相加,得到每组的权限值(比如 rwx=4+2+1=7,rw-=4+2=6,r--=4);
格式:chmod 三组权限值 文件名/目录名(三组权限值对应:所有者、所属组、其他人);
示例(新手高频使用):
-
给test.sh设置“所有者rwx、所属组rx、其他人rx”:
chmod 755 test.sh(最常用,适合可执行脚本); -
给test.txt设置“所有者rw、所属组r、其他人r”:
chmod 644 test.txt(最常用,适合普通文本文件); -
给test_dir设置“所有人rwx”:
chmod 777 test_dir(⚠️ 谨慎使用!所有人都能修改/删除,有安全风险,仅测试时用)。
4. 修改文件/目录的所有者和所属组
用 chown 命令修改所有者,chgrp 修改所属组,格式如下:
-
修改所有者:
sudo chown 用户名 文件名/目录名(比如sudo chown xiaoming test.txt,把test.txt的所有者改成小明); -
同时修改所有者和所属组:
sudo chown 用户名:组名 文件名/目录名(比如sudo chown xiaoming:dev test.txt); -
修改所属组:
sudo chgrp 组名 文件名/目录名(比如sudo chgrp dev test.txt)。
五、新手避坑:常见权限问题及解决方法
新手遇到的权限问题,基本就这3种,对照解决即可:
1. 报错“Permission denied”(权限不足)
原因:当前用户没有操作该文件/目录的权限;
解决:要么用sudo临时提升权限(比如 sudo cat test.txt),要么修改该文件的权限(chmod),要么修改所有者(chown)。
2. 能查看文件,但不能修改(提示权限不足)
原因:当前用户只有“读(r)”权限,没有“写(w)”权限;
解决:给当前用户添加写权限,比如 chmod u+w 文件名(如果是其他人,用 chmod o+w 文件名)。
3. 不能进入目录(cd 目录名 报错权限不足)
原因:当前用户没有该目录的“执行(x)”权限(记住:目录的x权限是进入目录的关键);
解决:给当前用户添加执行权限,比如 chmod u+x 目录名。
六、新手总结:记住这3点,搞定权限问题
-
Linux用户分3类:root(管理员,少用)、普通用户(日常用)、系统用户(不用管);
-
权限分3组:所有者、所属组、其他人,每组有r(读)、w(写)、x(执行)3种权限;
-
常用命令:创建用户(useradd)、修改权限(chmod)、修改所有者(chown),记住高频示例,遇到问题直接复制。
其实Linux用户和权限并不复杂,核心就是“谁(用户)能对什么(文件/目录)做什么(操作)”。新手不用死记硬背,多实操几次,比如创建一个用户、修改一个文件的权限,很快就能掌握。
如果觉得本文对你有帮助,欢迎点赞收藏,后续会分享更多Linux新手实操指南~ 有疑问的话,评论区留言,一起交流学习!

3689

被折叠的 条评论
为什么被折叠?



