0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

详解Linux权限相关指令

马哥Linux运维 来源:CSDN技术社区 2025-06-06 11:47 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Linux】权限相关指令

前言:

本文我们来讲Linux中关于权限中的一些指令

shell命令

Linux严格来说是一个操作系统,我们称之为“核心”(kernel)。而作为用户的我们并不能直接与核心交流,这时候就有一个中间人的角色出现:将我们的指令翻译为核心可以看懂的符号,交由核心执行,并将执行结果翻译并返回给我们。

这个中间人就是“包裹”在核心外的“外壳程序”,介于我们和核心之前。我们称之为:shell命令

从技术层面来讲,shell的最简单定义就是:命令解释器。其主要功能就是:

1.将命令翻译后交给核心执行

2.将核心执行的结果翻译并返回给我们

形象理解shell

假如小y过年回家打算相亲了,打算小y并不擅长与异性交流,这时候就拜托了媒人王姨作为中间人,帮忙小y和异性之前传话。这时候王姨就是“外壳程序”shell。

为什么要有shell?

1.方便用户使用

2.作为外壳程序,保护核心

补充

d7056016-4061-11f0-b715-92fbcf53809c.png

权限概念

Linux中权限分为两种:root账号、普通账号

root账号:为超级权限账号,不受任何权限限制

普通账号:受到权限限制,在Linux中只能做有限的事

su

命令:su 用户名

功能:切换账号

hyc@hcss-ecs-4ce7:/$ whoami
hyc

#切换root账号执行su即可
hyc@hcss-ecs-4ce7:/$ su
#输入root账号密码
Password:
root@hcss-ecs-4ce7:/# whoami
root

#切换普通账号:su 用户名(不需要密码)
root@hcss-ecs-4ce7:/# su hyc
hyc@hcss-ecs-4ce7:/$ whoami
hyc



补充:普通用户 -> root账号,除了su可以实现,su -也可以实现。但是区别是?

hyc@hcss-ecs-4ce7:/$ pwd
/
hyc@hcss-ecs-4ce7:/$ su
Password:
root@hcss-ecs-4ce7:/# whoami
root
root@hcss-ecs-4ce7:/# pwd
/


hyc@hcss-ecs-4ce7:/$ pwd
/
hyc@hcss-ecs-4ce7:/$ su -
Password:
root@hcss-ecs-4ce7:~# whoami
root
root@hcss-ecs-4ce7:~# pwd
/root

#我们可以看到su、su-,都成功的切换到了root。
#不同的是su切换账号并不会改变之前所处路径,既su不会改变位置
#而su-会改变位置,之前是/下,切换之后在/root下




![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)


sudo:短暂的指令提权

如果我们需要使用root权限来执行一些指令,但是却没有root密码怎么办?

在指令最前面加上sudo,就可以使用root权限执行命令

hyc@hcss-ecs-4ce7:~$sudo ls
[sudo] passwordforhyc:



这样确实方便,但是有一个问题:那岂不是人人都可以使用root权限了?这不乱套了?

Linux设计者当然考虑到了这个问题,普通用户如果想要使用sudo进行指令提权。必须要root账号给予普通账号提权权限才行。所以并不是什么普通账号都可以进行提权

没有提权权限的账户,就会显示以下报错

hyc@hcss-ecs-4ce7:~$ sudo ls
[sudo] password for hyc:
hyc is not in the sudoers file. This incident will be reported.



总结:

普通 -> root:su(不会改变位置)

su-(会改变位置:默认切换至家目录)

root -> 普通:su 用户名

sodu : 指令提权

权限管理

权限的本质是:能做或者不能做什么事情(控制用户行为,防止错误操作)

理解:

1.权限限制的是人

2.权限要求目标必须具备对应属性:权限:角色+目标属性(权限)

属性

对于Linux中的属性来说主要为三个:读、写、执行

读:r

写:w

执行:x

d72e9990-4061-11f0-b715-92fbcf53809c.png

之前我们说过第一个字母代表文件属性,而后面的一串字符则代表该文件的权限。

r:对文件来说,代表可以读取文件内容;对目录来说,代表可以浏览目录内容

w:对文件来说,代表可以修改文件内容;对目录来说,代表可以删除目录中的内容

x:对文件来说,代表可以执行该文件;对目录来说,代表可以进入该目录

但是为什么这里有多个wrx呢?这就涉及到角色的问题。

角色

上面我们说了权限=角色+对应属性。

属性代表相应的角色拥有什么权限,那么我们是如何分辨角色呢?如何知道角色对应所拥有的权限呢?

首先我们可以通过命令行得知我们当前的角色、或者使用whoami指令

d74479ea-4061-11f0-b715-92fbcf53809c.png

然后根据当前用户,来判断其说拥有的权限

d765ff7a-4061-11f0-b715-92fbcf53809c.png

解释:

我们当前用户是root,对于第一个目录来说,我们就是其拥有者。所对应拥有的权限则是rwx

而什么是所属组?什么是other呢?

所属组就是当前角色不是拥有者,但是与拥有者在同一个队伍中。这时候就会匹配所属组权限,这时候这个角色就是所属者。

所属组的存在是为了更精细化的权限管理。举例:a组和b组都在同一台Linux机器上开发项目,a组项目代码需要公开出来让a组全体成员都能看见,但是不希望b组看见。这时候就只需要将a组全体成员纳入所属组中,然后将other权限关闭,就可以实现。(现在很少用到了,了解即可)

other就是既不属于拥有者,也不属于所属者的角色。这时候就会匹配other权限。

如何描述文件权限信息?

`-rw-r--r-- 1 root root 22902 May 18 11:51 new.txt`

对于new.txt这个文件来说权限的描述应该为:拥有者权限为rw,所属组权限为r,other权限为r。

文件权限表示方法

1.字符表示法

3个字母为一组,分别为:r、w、x,如没有对应权限则用 " - "表示。其顺序是固定的不可交换

d783cc12-4061-11f0-b715-92fbcf53809c.png

2.8进制表示法

d7a77d92-4061-11f0-b715-92fbcf53809c.png

chmod指令

语法:chmod 参数 权限 文件名

功能:改变文件权限(只有root或者文件拥有者才有资格修改权限)

选项:

-R:递归的将目录下的文件权限全部修改

参数:

u:拥有者

g:所属组

o:other

a:有所用户

实际操作展示 :

root@hcss-ecs-4ce7:~# ls -l
total 28
drwxr-xr-x 5 root root 4096 May 20 13:58 new
-rw-r--r-- 1 root root 22902 May 18 11:51 new.txt

#关闭u的w权限
root@hcss-ecs-4ce7:~# chmod u-w new.txt
root@hcss-ecs-4ce7:~# ls -l
total 28
drwxr-xr-x 5 root root 4096 May 20 13:58 new
-r--r--r-- 1 root root 22902 May 18 11:51 new.txt

#开放u的w权限
root@hcss-ecs-4ce7:~# chmod u+w new.txt
root@hcss-ecs-4ce7:~# ls -l
total 28
drwxr-xr-x 5 root root 4096 May 20 13:58 new
-rw-r--r-- 1 root root 22902 May 18 11:51 new.txt


#关闭u的多条权限
root@hcss-ecs-4ce7:~# chmod u-rw new.txt
root@hcss-ecs-4ce7:~# ls -l
total 28
drwxr-xr-x 5 root root 4096 May 20 13:58 new
----r--r-- 1 root root 22902 May 18 11:51 new.txt

#开放u的多条权限
root@hcss-ecs-4ce7:~# chmod u+rw new.txt
root@hcss-ecs-4ce7:~# ls -l
total 28
drwxr-xr-x 5 root root 4096 May 20 13:58 new
-rw-r--r-- 1 root root 22902 May 18 11:51 new.txt

#开放g的w权限
root@hcss-ecs-4ce7:~# chmod g+w new.txt
root@hcss-ecs-4ce7:~# ls -l
total 28
drwxr-xr-x 5 root root 4096 May 20 13:58 new
-rw-rw-r-- 1 root root 22902 May 18 11:51 new.txt

#关闭g的w权限
root@hcss-ecs-4ce7:~# chmod g-w new.txt
root@hcss-ecs-4ce7:~# ls -l
total 28
drwxr-xr-x 5 root root 4096 May 20 13:58 new
-rw-r--r-- 1 root root 22902 May 18 11:51 new.txt

#以此类推,其他的权限操作类似

另外也可以通过八进制来实现多个用户权限的修改:

root@hcss-ecs-4ce7:~# ls -l
total 28
drwxr-xr-x 5 root root 4096 May 20 13:58 new
-rw-r--r-- 1 root root 22902 May 18 11:51 new.txt

#通过3个8进制数字实现,对多个用户权限修改
root@hcss-ecs-4ce7:~# chmod 000 new.txt
root@hcss-ecs-4ce7:~# ls -l
total 28
drwxr-xr-x 5 root root 4096 May 20 13:58 new
---------- 1 root root 22902 May 18 11:51 new.txt


root@hcss-ecs-4ce7:~# chmod 663 new.txt
root@hcss-ecs-4ce7:~# ls -l
total 28
drwxr-xr-x 5 root root 4096 May 20 13:58 new
-rw-rw--wx 1 root root 22902 May 18 11:51 new.txt

修改权限注意事项

1.任何人都可以修改文件权限吗?

只有root和文件拥有者才能修改权限!

2.如果在进行相应操作时没有权限会怎么样?

系统会拒绝我们的指令请求

hyc@hcss-ecs-4ce7:~$ ls -l
total 0
-rw-rw-r-- 1 hyc hyc 0 May 24 23:07 new.txt

hyc@hcss-ecs-4ce7:~$ chmod u-r new.txt
hyc@hcss-ecs-4ce7:~$ ls -l
total 0
--w-rw-r-- 1 hyc hyc 0 May 24 23:07 new.txt

hyc@hcss-ecs-4ce7:~$ cat new.txt
cat: new.txt: Permission denied

3.确定权限信息时,系统会先确认谁?

先确认拥有者权限,再确认所属组,最后是other。权限只会确定一次,不会多次确定,第一次匹配上的权限既为我们当前角色所拥有的权限。

4.root账号权限?

拥有最高权限,不受一切权限的限制。所有设定的限制只针对普通账号有用。

5.可执行权限?

我们之前所讲的例子中都没有可执行样例,其实可执行程序是.exe文件。普通文件一般没有x权限,当然即使拥有x权限也无法执行,因为其本身就不是可执行文件。

chown与chgrp指令

语法:chown 用户名 文件名

功能:改变文件或目录的拥有者

选项:-R 递归的修改目录中所有文件的拥有者

语法:chgrp 所属组名 文件名

功能:修改文件或目录的所属组

选项:-R递归修改目录中所有文件的所属组

使用chown修改拥有者、chgrp修改所属组出现问题?

hyc@hcss-ecs-4ce7:~$ ls -l
total 0
-rw-rw-rw- 1 hyc hyc 0 May 24 23:07 new.txt

hyc@hcss-ecs-4ce7:~$ chown root new.txt
chown: changing ownership of 'new.txt': Operation not permitted

hyc@hcss-ecs-4ce7:~$ chgrp root new.txt
chgrp: changing group of 'new.txt': Operation not permitted


原因:

系统并不支持随意的将文件的拥有者或所属组修改,这一操作只有root权限才能被允许。所以在要在这句指令前加上sodu,或者切换为root账号。

下面我切换为root账号作为演示:

root@hcss-ecs-4ce7:~# ls -l
total 24
-rw-rw--wx 1 root root 22902 May 18 11:51 new.txt
root@hcss-ecs-4ce7:~# chown hyc new.txt
root@hcss-ecs-4ce7:~# ls -l
total 24
-rw-rw--wx 1 hyc root 22902 May 18 11:51 new.txt
root@hcss-ecs-4ce7:~# chgrp hyc new.txt
root@hcss-ecs-4ce7:~# ls -l
total 24
-rw-rw--wx 1 hyc hyc 22902 May 18 11:51 new.txt

目录权限问题

1.rwx对于目录来说意味这什么?

没有r权限,无法查看其内容

hyc@hcss-ecs-4ce7:~$ ls -l
total 4
drwxrwxr-x 2 hyc hyc 4096 May 26 15:41 new
hyc@hcss-ecs-4ce7:~$ chmod u-r new
hyc@hcss-ecs-4ce7:~$ ls -l
total 4
d-wxrwxr-x 2 hyc hyc 4096 May 26 15:41 new

hyc@hcss-ecs-4ce7:~$ ls new
ls: cannot open directory 'new': Permission denied



没有w权限,无法在其内部创建文件

hyc@hcss-ecs-4ce7:~$ ls -l
total 4
drwxrwxr-x 2 hyc hyc 4096 May 26 15:41 new
hyc@hcss-ecs-4ce7:~$ chmod u-w new
hyc@hcss-ecs-4ce7:~$ ls -l
total 4
dr-xrwxr-x 2 hyc hyc 4096 May 26 15:41 new
hyc@hcss-ecs-4ce7:~$ ls
new

hyc@hcss-ecs-4ce7:~$ touch ./new/my.txt
touch: cannot touch './new/my.txt': Permission denied

没有x权限,无法进入目录

hyc@hcss-ecs-4ce7:~$ ls -l
total 4
drw-rwxr-x 2 hyc hyc 4096 May 26 15:41 new
hyc@hcss-ecs-4ce7:~$ cd new
bash: cd: new: Permission denied



rwx这三个权限都与目录的正常使用相关,所以我们创建的目录默认权限这三个都有

2.理解Linux中多用户是如何相互“隔离”的?

root@hcss-ecs-4ce7:~# ls -l /home
total 8
drwxr-x--- 3 hyc hyc 4096 May 26 15:41 hyc
drwxr-x--- 2 ye ye 4096 May 26 16:03 ye



所有用户的other权限都是全部关闭的,任意用户都无法进入。这就带来了“隔离”

3.缺省权限

对于普通文件:默认起始权限是666

对于目录:默认起始权限是777,带x

但我们看到的默认权限一般都不是我们说所的起始权限 ,这是为什么?

root@hcss-ecs-4ce7:~# ls -l
total 4
drwxr-xr-x 2 root root 4096 May 26 16:59 new
-rw-r--r-- 1 root root  0 May 26 16:40 new.txt




因为Linux中存在一个东西叫做权限掩码(umask)

root用户的权限掩码为:022

普通用户的权限掩码为:002

root@hcss-ecs-4ce7:~# umask
0022
(最前面的0表示八进制)



最终的权限=起始权限&(~umask)

d7bdb8f0-4061-11f0-b715-92fbcf53809c.png

umask的目的是什么?

凡是出现在umask上的权限,都不会出现在最终的权限上面。

umask为什么会出现?

可以让我们自定义默认权限,是一种灵活满足需求的表现

4.文件的删除由谁决定?

一个文件是否可以被删除与文件本身无关,而在于目录的w权限。

粘滞键

如果有两个或者多个用户需要在文件层面上的相互合作,那么所创建的文件就不能在私人目录下。将目录创建根目录下,这样所有用户就都可以访问并写入自己的内容。

但是这里存在一个问题,就是如果在众多用户中存在隔壁公式派来的内鬼(bushi),内鬼可以删除自己的文件也可以删除被人的文件(文件是否可以被删除与自己无关,与文件的w权限有关)!

这该怎么办??关闭w权限吗?不行,这会影响其他用户的正常使用,那怎么办?

Linux给粘滞键有效的解决这一问题

`chmod +t`

给权限加上粘滞位,加上粘滞位的目录有以下效果:

1.文件只能被root删除

2.文件只能被其拥有者删除

3.文件只能有该目录的拥有者删除

其实系统已经为我们准备好了这一特殊目录,就是根目录下的temp目录

d7dc9112-4061-11f0-b715-92fbcf53809c.png

我们可以看到temp的other权限最后一个字母是t,这就代表粘滞位。

一般需要文件上的多人合作,都是在temp里进行。

链接:https://blog.csdn.net/huangyuchi/article/details/148154142

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    88

    文章

    11628

    浏览量

    217959
  • 操作系统
    +关注

    关注

    37

    文章

    7328

    浏览量

    128624
  • 程序
    +关注

    关注

    117

    文章

    3836

    浏览量

    84760

原文标题:Linux权限管理太复杂?3个命令轻松搞定!90%的人不知道的技巧

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    linux权限指令

    一、进入目录需要哪些权限?在目录中执行增删查(cd, touch, ls, rm, mv等)改文件动作, 需要哪些权限权限分类可见,权限有四种:一种是执行
    发表于 07-04 06:58

    Linux 中文件权限管理的探讨

    Linux 是一种多用户的操作系统,其文件权限管理在文件管理中占有重要的地位。为了更好地把握Linux 的文件权限相关内容,本文以多种
    发表于 06-11 09:37 11次下载

    Linux改变文件或目录的访问权限命令

    Linux改变文件或目录的访问权限命令 Linux改变文件或目录的访问权限命令  Linux系统中的每个文件和目录都有访问许可
    发表于 01-18 12:46 1334次阅读

    linux指令大全

    linux指令大全 名称:cat 使用权限:所有使用者 使用方式:cat [-AbeEnstTuv] [--help] [--version] fileName 说明:把档案串连接后传到基本输出(萤幕或加 > fileName
    发表于 01-18 12:56 684次阅读

    浅谈Linux权限管理的ACL权限

    Linux权限管理是Linux很重要的一项内容,重则引起用户信息泄露,轻则导致文件错乱和丢失。企业服务器里有些目录下面的东西暂时保密,不希望别人可以进入目录并查看。有些文件希望别人可以看,但不能删除。有些目录只有root等管理员
    的头像 发表于 08-18 11:13 9442次阅读

    Linux进程权限的分析说明

     在linux下,关于文件权限,大部分人接触比较多,也比较熟悉了解。但是对进程权限一般知之甚少。本文总结一下linux系统下进程权限问题和现
    发表于 07-17 10:55 1065次阅读

    linux修改文件权限

    我们首先使用`ls -l`指令查看文件的权限信息(以/etc/fstab为例)。
    的头像 发表于 01-11 10:45 1521次阅读

    linux文件访问权限怎么设置

    Linux 文件访问权限是操作系统中一个非常重要的概念。正确地设置文件访问权限可以保护系统的安全性,防止未经授权的人员对文件进行修改、删除或执行。本文将详细介绍 Linux 文件访问
    的头像 发表于 11-23 10:20 2499次阅读

    Linux把目录权限给指定用户

    Linux是一个开放源代码的操作系统,它基于Unix的设计原则,提供了丰富的权限管理功能,允许用户对系统中的文件和目录进行精确的控制。在Linux中,每个文件和目录都有相应的权限,这些
    的头像 发表于 11-23 10:30 1w次阅读

    详解Linux中的权限控制

    本章将和大家分享Linux中的权限控制。废话不多说,下面我们直接进入主题。
    的头像 发表于 08-05 15:32 1315次阅读
    <b class='flag-5'>详解</b><b class='flag-5'>Linux</b>中的<b class='flag-5'>权限</b>控制

    Linux用户身份与进程权限详解

    在学习 Linux 系统权限相关的主题时,我们首先关注的基本都是文件的 ugo 权限。ugo 权限信息是文件的属性,它指明了用户与文件之间的
    的头像 发表于 10-23 11:41 1146次阅读
    <b class='flag-5'>Linux</b>用户身份与进程<b class='flag-5'>权限</b><b class='flag-5'>详解</b>

    Linux文件权限详解

    权限的意义在于允许某一个用户或某个用户组以规定的方式去访问某个文件。
    的头像 发表于 11-01 09:45 1092次阅读

    linux权限管理详解

    权限:在计算机系统中,权限是指某个计算机用户具有使用软件资源的权利。
    的头像 发表于 12-25 09:43 1104次阅读

    Linux权限管理基础入门

    Linux的广阔天空中,权限管理犹如一只翱翔的雄鹰,掌控着系统的安全与秩序。掌握Linux权限,不仅能让你的系统管理更加得心应手,还能有效防止未授权访问和数据泄露。本文将带你深入探索
    的头像 发表于 05-06 13:44 549次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>权限</b>管理基础入门

    Linux权限体系解析

    你真的了解Linux权限吗?大多数人只知道rwx,但Linux权限体系远比你想象的复杂和强大。今天我们深入探讨Linux的12位
    的头像 发表于 07-23 16:57 592次阅读