当前位置: 首页 > news >正文

Linux (5)| 入门进阶:Linux 权限管理的基础规则与实践

在经过前面基本指令的学习后,可能对于ls指令展示的某些东西好奇,本篇博客将为你解疑答惑

一、用户分类、用户切换和指令提权

1、用户分类

root:超级用户

[root@instance-157t533k ~]# 

root:用户名

@xxxxx:主机名

~:当前目录

#:命令行提示符

在windows下有没有类似的root用户呢?

有,类似以管理员身份运行

普通用户:以root身份,通过adduser创建的

[xzx@instance-157t533k ~]$ 

和上面只有命令行提示符的区别

在这里也有类似普通用户,可以创建,拥有自己的桌面

在我们之前的学习中可以发现,root用户进行指令操作时不会受到权限约束,而普通用户在yum安装软件的时候,date -s不能设置时间只能查看等,会受到权限的约束

结论:root基本不会受到权限的约束,普通用户是受权限约束的

2、这两个用户之间是如何切换的?

Linux中所有用户,都要有密码,无论是root,还是普通用户,即便是多个普通用户,也要一一设置密码

建议:root账号的密码和普通账号的密码不要一样

1、su -

[xzx@instance-157t533k ~]$ su -
Password: 

此时password输入的是root的密码,不是普通用户的密码!

Last login: Sun Sep 28 10:13:14 CST 2025 from 223.104.249.229 on pts/0
Last failed login: Sun Sep 28 11:05:22 CST 2025 from 196.251.83.216 on ssh:notty
There were 207 failed login attempts since the last successful login.
[root@instance-157t533k ~]# 

此时已切换成功,我们已变成root用户,我们查看一下自己的家目录用pwd

这是之前的普通用户的

[xzx@instance-157t533k ~]$ pwd
/home/xzx

这是切换后root用户的

[root@instance-157t533k ~]# pwd
/root
结论:su - 更改身份,家目录也更改了
退出:通过ctrl+d或者命令行输入exit
[root@instance-157t533k ~]# exit
logout
[xzx@instance-157t533k ~]$ 

2、su

[xzx@instance-157t533k ~]$ su
Password: 

这里的password依旧输入root的密码

同样的查看家目录用pwd

[root@instance-157t533k xzx]# pwd
/home/xzx

和上面的su -相比,可以发现su更改了用户身份,但家目录没有改

结论:su 更改身份,家目录没有更改
退出:通过ctrl+d或者命令行输入exit
[root@instance-157t533k xzx]# exit
exit

3、su + 用户名

[root@instance-157t533k ~]# adduser zhangsan
[root@instance-157t533k ~]# passwd zhangsan
Changing password for user zhangsan.
New password: 
BAD PASSWORD: The password contains the user name in some form
Retype new password: 
passwd: all authentication tokens updated successfully.

这里先回顾之前的创建用户流程(这里BAD PASSWORD是博主设置密码偷懒了,密码中包含了用户名)

可以通过ls /home/查看创建的用户

[xzx@instance-157t533k ~]$ ls /home
xzx  zhangsan

root用户su+zhangsan,可以看到不需要输入zhangsan的密码

[root@instance-157t533k ~]# su zhangsan
[zhangsan@instance-157t533k root]$ 

普通用户su+zhangsan,可以看到是需要输入zhangsan的密码

[xzx@instance-157t533k ~]$ su zhangsan
Password: 
[zhangsan@instance-157t533k xzx]$ 

3、如果我们想暂时的对一条命令提权,该怎么做?

sudo command

但另一个问题来了,如果普通用户任何一条指令都可以sudo,那岂不是普通用户也成为root用户了?

先说结论:我们通过adduser创建普通用户,是无法使用sudo的,因为系统不信任你。除非未来将该普通用户加入到系统的信任白名单。

可以用张三试试sudo

[zhangsan@instance-157t533k xzx]$ sudo yum install -y zip unzipWe trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:#1) Respect the privacy of others.#2) Think before you type.#3) With great power comes great responsibility.[sudo] password for zhangsan: 
zhangsan is not in the sudoers file.  This incident will be reported.

最后提示说zhangsan不在sudoers file中

二、权限

1、什么叫做权限?

一件事是否允许你做

1、权限认证的时是身份(权限和"人"有关)

2、权限也和事物的属性有关

文件=文件内容+文件属性,文件属性中包括文件的权限:可读、可写、可执行

初步结论:权限=人+身份/角色

2、文件属性

1、文件的类型:Linux系统中文件名后缀没有直接意义(当然不代表没用)

drwxrwxr-x 2 xzx xzx 4096 Sep 30 11:36 test
-rw-rw-r-- 1 xzx xzx    0 Sep 30 11:35 test.txt

观察开头第一个字符

-:普通文件(文本库)
d:目录文件
b:块设备文件(磁盘文件)
c:字符设备文件(键盘、显示器文件)
Linux不以文件名后缀区分文件,但把test.c重命名为test.txt用gcc编译不过,这是为什么?

gcc是一款编译器、软件,不代表其他Linux系统上运行的其他软件不需要后缀

Linux中如何看待后缀?看我们自己的需求

2、文件的权限属性

drwxrwxr-x 2 xzx xzx 4096 Sep 30 11:36 test
-rw-rw-r-- 1 xzx xzx    0 Sep 30 11:35 test.txt

从第二个字符开始到数字之前的内容,这些字符代表文件的权限属性

r:可读
w:可写
x:可执行
-:对应的权限位置,没有权限

3、权限身份

drwxrwxr-x 2 xzx xzx 4096 Sep 30 11:36 test
-rw-rw-r-- 1 xzx xzx    0 Sep 30 11:35 test.txt
从数字到下一个数字之间的代表权限身份,第一个是拥有者,第二个是所属组,为什么没有其他人(other)呢?

因为其他人(other)太多了,没必要写进文件,占用内存

权限身份(角色)/用户(人)root普通用户
拥有者(owner)
所属组(group)
其他人(other)

这个表展现了用户所能具有权限身份,二者合起来就变成了用户所具有的权限了

什么是所属组?什么是其他人(other)?
详细版:

举个例子,公司有一个项目,需要你张三等程序员去完成,你们被分为了不同小组,你张三等人分到了A组,李四等人分到了B组。假如我们只有拥有者,那么每个人都是独立的,无法协同工作。所以便有了所属组,我们一个组的人可以在一起协助开发了。一天B组的李四想要来看看你们的工作进度,但由于你们不是一个所属组的,李四没有权限查看你们的文件。但是在李四走后,你的领导王五来查看你们的工作进度,此时给领导所属组的权限,他就能查看了。假如有一天公司将项目开源了,别人想要看看你们的源码,但他既不是拥有者,也不是所属组,所以其他人(other)便诞生了

省流版:
权限主体具体用户/群体权限设置作用
拥有者(owner)A组张三(文件创建者)读、写、可执行(最高) 完全控制文件,可修改其他人生权限
所属组(group)A组全体人员,领导王五A组:读、写,可执行领导:读A 组协同开发,管理层监督进度
其他人(other)B组李四,公司外部人员未开源:没有权限,开源:仅读未开源时保护隐私,开源时共享
drwxrwxr-x 2 xzx xzx 4096 Sep 30 11:36 test
-rw-rw-r-- 1 xzx xzx    0 Sep 30 11:35 test.txt
我们也能看到权限身份和文件权限属性具有对应关系

在test中第一组三个字符rwx代表拥有者的权限,第二组三个字符rwx代表拥有者的权限,第三组三个字符r-x代表其他人的权限

这里每个位置只有r、w、x、-四种选择,说明:

1、每个位置是什么含义是确定的!

2、每一个位置只有是或者否,具有确定的权限!

3、root和other虽然具有相同的权限,但root不受权限的限制

-rwxrwxr-x 1 xzx xzx 8440 Oct  4 15:07 a.out
-rw-rw-r-- 1 xzx xzx   69 Oct  4 15:06 test.c

对于adduser创建的普通用户lisi,它访问test.c只有读权限,访问a.out可读也可执行

通过su切换用户,我们来验证一下

[xzx@instance-157t533k 10_4]$ su lisi
Password: 
[lisi@instance-157t533k 10_4]$ pwd
/home/xzx/10_4

访问test.c,通过vim尝试修改test.c

提示我们没有w权限,因为lisi是other,权限为r--,表示只能看文件内容

对于a.out可执行程序lisi是可以执行的,它具有r-x的权限

[lisi@instance-157t533k 10_4]$ ./a.out
Hello Linux[lisi@instance-157t533k 10_4]$ 

此时我们切换为root,观察root用户是否能修改test.c

[root@instance-157t533k 10_4]# vim test.c
[root@instance-157t533k 10_4]# cat test.c
#include<stdio.h>int main()
{printf("Hello Linux\n");printf("Hello,Linux\n");return 0;
}

按道理,root也应该和lisi一样不能修改,但结果是root可以修改

说明root是不受权限限制的

4、权限修改问题

权限修改者:1、文件的拥有者 2、root

修改指令:chomd 权限 文件

修改方式:

1、u+r/w/x g+r/w/x o+r/w/x u-r/w/x g-r/w/x o-r/w/x

这里的u代表user(不是owner的原因,避免重复使用o)拥有者,这里的g代表group所属组,这里的o代表other

通过将o+w,lisi就可以对test.c进行写操作了

[xzx@instance-157t533k 10_4]$ ll
total 16
-rwxrwxr-x 1 xzx xzx 8440 Oct  4 15:07 a.out
-rw-rw-r-- 1 xzx xzx   97 Oct  9 10:48 test.c
[xzx@instance-157t533k 10_4]$ chmod o+w test.c
[xzx@instance-157t533k 10_4]$ ll
total 16
-rwxrwxr-x 1 xzx xzx 8440 Oct  4 15:07 a.out
-rw-rw-rw- 1 xzx xzx   97 Oct  9 10:48 test.c

此时可以对test.c的内容进行修改了

[xzx@instance-157t533k 10_4]$ vim test.c
[xzx@instance-157t533k 10_4]$ cat test.c
#include<stdio.h>int main()
{printf("Hello Linux\n");printf("Hello,Linux\n");printf("Hello,World\n");return 0;
}

假如有多个权限更改可以用(,)逗号隔开,例如u+rwx,g+rwx,o+rws

也可以用a(all,代表所有人)+rwx和上面是一样的,也可以a-r所有人没有读权限

这里可以举另一个例子证明3的root不受权限限制

先对test.c减去所有权限,即a-rwx or u-rwx,g-rwx,o-rwx

[xzx@instance-157t533k 10_4]$ chmod a-rwx test.c
[xzx@instance-157t533k 10_4]$ ll
total 16
-rwxrwxr-x 1 xzx xzx 8440 Oct  4 15:07 a.out
---------- 1 xzx xzx  123 Oct  9 13:05 test.c

此时我们拥有者尝试读写操作

读提示我们没有权限

[xzx@instance-157t533k 10_4]$ cat test.c
cat: test.c: Permission denied

写也是如此

通过:wq!强制退出vim底行模式(vim一种工具,后面会介绍)

我们能看到在将所有权限减去后,我自己作为拥有者是不能读不能写的,接下来看看root的表现

[xzx@instance-157t533k 10_4]$ su root
Password: 
[root@instance-157t533k 10_4]# cat test.c
[root@instance-157t533k 10_4]# vim test.c
[root@instance-157t533k 10_4]# cat test.c
#include<stdio.h>int main()
{printf("Hello,Linux\n");return 0;
}

可以看到虽然root没有r和w权限,但是在vim :wq!强制写入下test.c被写入了内容,写入的内容可以通过cat查看到

这个例子也能说明root不受权限约束的

2、由于权限是333一组的,每个权限有或没有是固定的,由此三个二进制组成一个八进制数

例如rwx 111 7,rw- 110 6,r-x 101 5,r-- 100 4,-wx 011 3,-w- 010 2,--x 001 1

通过chmod 777 test.c实现全权限拥有

[root@instance-157t533k 10_4]# ll
total 16
-rwxrwxr-x 1 xzx xzx 8440 Oct  4 15:07 a.out
---------- 1 xzx xzx   71 Oct  9 13:24 test.c
[root@instance-157t533k 10_4]# chmod 777 test.c
[root@instance-157t533k 10_4]# ll
total 16
-rwxrwxr-x 1 xzx xzx 8440 Oct  4 15:07 a.out
-rwxrwxrwx 1 xzx xzx   71 Oct  9 13:24 test.c

5、拥有者、所属组、拥有者和所属组的更改

修改拥有者指令:chown 用户名 文件

[root@instance-157t533k 10_4]# ll
total 16
-rwxrwxr-x 1 xzx xzx 8440 Oct  4 15:07 a.out
-rwxrwxrwx 1 xzx xzx   71 Oct  9 13:24 test.c
[root@instance-157t533k 10_4]# chown root test.c
[root@instance-157t533k 10_4]# ll
total 16
-rwxrwxr-x 1 xzx  xzx 8440 Oct  4 15:07 a.out
-rwxrwxrwx 1 root xzx   71 Oct  9 13:24 test.c

也可以配合sudo 对chown提权

修改所属组指令:chgrp 用户名 文件

[root@instance-157t533k 10_4]# ll
total 16
-rwxrwxr-x 1 xzx  xzx 8440 Oct  4 15:07 a.out
-rwxrwxrwx 1 root xzx   71 Oct  9 13:24 test.c
[root@instance-157t533k 10_4]# chgrp root test.c
[root@instance-157t533k 10_4]# ll
total 16
-rwxrwxr-x 1 xzx  xzx  8440 Oct  4 15:07 a.out
-rwxrwxrwx 1 root root   71 Oct  9 13:24 test.c

修改拥有者和所属组指令:chown 用户名:用户名 文件

[root@instance-157t533k 10_4]# ll
total 16
-rwxrwxr-x 1 xzx  xzx  8440 Oct  4 15:07 a.out
-rwxrwxrwx 1 root root   71 Oct  9 13:24 test.c
[root@instance-157t533k 10_4]# chown xzx:xzx test.c
[root@instance-157t533k 10_4]# ll
total 16
-rwxrwxr-x 1 xzx xzx 8440 Oct  4 15:07 a.out
-rwxrwxrwx 1 xzx xzx   71 Oct  9 13:24 test.c

为什么没有修改other?和前面的原因一样,因为other太多了,不需要修改

6、多角色权限认证问题

-r--rw---- 1 xzx xzx   71 Oct  9 13:24 test.c

对于此时的test.c我能写吗?看权限拥有者只有r,但所属组是r和w,那应该能写,我们来验证一下是否能写

依旧vim打开test.c

提示我们只有读权限(但:wq! 强制写入是不需要w权限的)

再看另一个例子

[xzx@instance-157t533k 10_4]$ chown lisi test.c
chown: changing ownership of ‘test.c’: Operation not permitted
[xzx@instance-157t533k 10_4]$ sudo chown lisi test.c
[sudo] password for xzx: 
[xzx@instance-157t533k 10_4]$ ll
total 16
-rwxrwxr-x 1 xzx  xzx 8440 Oct  4 15:07 a.out
-r--rw---- 1 lisi xzx   97 Oct  9 14:11 test.c

(结合上面chown指令的演示,我们能发现更改为root用户时,不需要额外操作,但如果更改为另一普通用户,则需要sudo提权)

我们通过sudo提权将拥有者强行更改为lisi,此时test.c拥有者是lisi只有r,我是所属组有r和w,我能写吗?依旧验证一下

[xzx@instance-157t533k 10_4]$ ll
total 16
-rwxrwxr-x 1 xzx  xzx 8440 Oct  4 15:07 a.out
-r--rw---- 1 lisi xzx   97 Oct  9 14:22 test.c
[xzx@instance-157t533k 10_4]$ cat test.c
#include<stdio.h>int main()
{printf("Hello,Linux\n");printf("hello,linux\n");return 0;
}
[xzx@instance-157t533k 10_4]$ vim test.c
[xzx@instance-157t533k 10_4]$ cat test.c
#include<stdio.h>int main()
{printf("Hello,Linux\n");printf("hello,world\n");printf("hello,linux\n");return 0;
}

可以看到,我们成功写入了

结合这两个例子,我们可以知道在进行权限认证的时候,只能选择一个角色进行认证!而且是先看是否属于拥有者,如果是就不关注其他角色,不是才看所属组和其他人

三、扩展问题

1、起始权限问题

[xzx@instance-157t533k 10_9]$ ll
total 8
drwxrwxr-x 2 xzx xzx 4096 Oct  9 19:10 dir1
drwxrwxr-x 2 xzx xzx 4096 Oct  9 19:10 dir2
-rw-rw-r-- 1 xzx xzx    0 Oct  9 19:10 test1.txt
-rw-rw-r-- 1 xzx xzx    0 Oct  9 19:10 test2.txt

对于我们创建的目录文件和普通文件,为什么它们的默认权限是我们所看到的样子?

为什么目录文件是775(八进制rwxrwxr-x)?

为什么普通文件是664(八进制rw-rw-r--)?

可以看到other都没有w(写)权限

这里需要补充一个知识:umask,权限掩码

[xzx@instance-157t533k 10_9]$ umask
0002

这里的umask除开前导0,剩下的三位各代表一个八进制数

而权限掩码的作用是:凡是在umask中出现的权限,不会再最终的文件权限中出现!

在解答上面疑问的过程中,还需要我们了解两个东西

1、默认给目录文件的起始权限其实是777

2、默认给普通文件的起始权限其实是666

这可以通过暂时修改umask值来新建目录文件和普通文件验证

[xzx@instance-157t533k 10_9]$ umask 0000
[xzx@instance-157t533k 10_9]$ mkdir dir3
[xzx@instance-157t533k 10_9]$ touch test3.txt
[xzx@instance-157t533k 10_9]$ ll
total 12
drwxrwxr-x 2 xzx xzx 4096 Oct  9 19:10 dir1
drwxrwxr-x 2 xzx xzx 4096 Oct  9 19:10 dir2
drwxrwxrwx 2 xzx xzx 4096 Oct  9 19:28 dir3
-rw-rw-r-- 1 xzx xzx    0 Oct  9 19:10 test1.txt
-rw-rw-r-- 1 xzx xzx    0 Oct  9 19:10 test2.txt
-rw-rw-rw- 1 xzx xzx    0 Oct  9 19:28 test3.txt

可以看到目录文件为777,普通文件为666

它们是如何通过权限掩码变成775和664的?

是减法吗?

看起来倒像那麽一回事,我们改变umask验证一下,将umask改为0100看是否符合我们的减法运算

[xzx@instance-157t533k 10_9]$ umask 0111
[xzx@instance-157t533k 10_9]$ rm -rf dir1 dir2 dir3
[xzx@instance-157t533k 10_9]$ rm -rf test1.txt test2.txt test3.txt
[xzx@instance-157t533k 10_9]$ touch test.txt
[xzx@instance-157t533k 10_9]$ ll
total 0
-rw-rw-rw- 1 xzx xzx 0 Oct  9 20:05 test.txt

减法得到的结果是555,但普通文件却是666,这也证明了权限掩码并不是单纯的二进制减法

这里小编也不卖关子了,最终权限计算:

起始权限 &(按位与) (~umask)(对umask的二进制位取反)

(可以下来自己修改umask的值研究为什么是这样计算的,这里对umask赋值是暂时的,并不会永久改变)

2、目录权限

drwxrwxr-x 2 xzx xzx 4096 Oct  9 20:13 test

我们能看到目录文件的权限基本是满的,所以我们可以研究一下权限对我们行为的影响

我们已知可以用ls+选项or ll查看目录信息,我们把目录的r权限减去后看看还能不能使用ll展示信息

[xzx@instance-157t533k 10_9]$ ll
total 4
drwxrwxr-x 2 xzx xzx 4096 Oct  9 20:13 test
[xzx@instance-157t533k 10_9]$ chmod u-r test
[xzx@instance-157t533k 10_9]$ cd test
[xzx@instance-157t533k test]$ ll
ls: cannot open directory .: Permission denied
[xzx@instance-157t533k test]$ cd ..
[xzx@instance-157t533k 10_9]$ ll
total 4
d-wxrwxr-x 2 xzx xzx 4096 Oct  9 20:13 test

可以看到在r权限没有后,在test目录下ll提示没有权限

r:是否允许我们查看指定目录下的文件内容

我们可以在目录下创建普通文件和目录文件,也可以对其更改,还可以删除,这些行为对应哪个权限呢?

我们大胆猜测,小心求证,先把w权限减去试试吧!

[xzx@instance-157t533k test]$ touch data.txt
[xzx@instance-157t533k test]$ ll
total 0
-rw-rw-r-- 1 xzx xzx 0 Oct  9 22:20 data.txt
[xzx@instance-157t533k test]$ cd ..
[xzx@instance-157t533k 10_9]$ chmod u-w test
[xzx@instance-157t533k 10_9]$ cd test
[xzx@instance-157t533k test]$ mkdir dir
mkdir: cannot create directory ‘dir’: Permission denied

哇哦,居然一下就猜中了(哈哈1/2的概率),当然这里只是验证了创建,感兴趣可以去验证一下更改和删除

w:是允许我们在当前目录下进行创建、更改和删除

剩下的一个x可执行权限,结合我们之前了解指令的本质(可执行程序),大胆猜测一下,没有x权限我们或许就不能执行指令了,来验证一下吧

[xzx@instance-157t533k 10_9]$ chmod u-x test
[xzx@instance-157t533k 10_9]$ ll
total 4
drw-rwxr-x 2 xzx xzx 4096 Oct  9 22:20 test
[xzx@instance-157t533k 10_9]$ cd test
-bash: cd: test: Permission denied

看来和我们想的一样,缺少了x权限不能执行指令,我们现在都不能通过cd进入test目录了

x:是否允许用户进入对应的目录

3、粘滞位

在团队协作和开发时,我们会在一个工作目录下各自分工,组长可以随时查看每个人的进度,同事之间也可以一起工作。

假如你的小伙伴上传了一份学习资料在你们的共享目录下,每个人都可以去查看资料,也可以增加新的内容。结果有次你和朋友闹矛盾了,朋友一怒之下把你的r和w权限都删除了,此时的你打不开资料,也不能增加或修改资料,此时你能把资料删掉吗?

我们来模拟验证一下

[xzx@instance-157t533k 10_9]$ chmod o+w test
[xzx@instance-157t533k 10_9]$ ll
total 4
drwxrwxrwx 2 xzx xzx 4096 Oct  9 22:20 test
[xzx@instance-157t533k 10_9]$ cd test
[xzx@instance-157t533k test]$ ll
total 0
-rw-rw-r-- 1 xzx xzx 0 Oct  9 22:20 data.txt
[xzx@instance-157t533k test]$ chmod o-r data.txt
[xzx@instance-157t533k test]$ ll
total 0
-rw-rw---- 1 xzx xzx 0 Oct  9 22:20 data.txt

我们将test目录的other设置为满权限,test目录下的data.txt普通文件other设置无权限,我们切换为lisi,来看看我们能否删除data.txt

[xzx@instance-157t533k test]$ su lisi
Password: 
[lisi@instance-157t533k test]$ ll
total 0
-rw-rw---- 1 xzx xzx 0 Oct  9 22:20 data.txt
[lisi@instance-157t533k test]$ rm data.txt
rm: remove write-protected regular empty file ‘data.txt’? y
[lisi@instance-157t533k test]$ ll
total 0

居然lisi在既没有r,也没有w的前提下把data.txt给删除了,这是为什么呢?

我们将test目录other的w权限给减去在试一试

[xzx@instance-157t533k 10_9]$ chmod o-w test
[xzx@instance-157t533k 10_9]$ ll
total 4
drwxrwxr-x 2 xzx xzx 4096 Oct  9 22:44 test
[xzx@instance-157t533k 10_9]$ cd test
[xzx@instance-157t533k test]$ touch data1.txt
[xzx@instance-157t533k test]$ ll
total 0
-rw-rw-r-- 1 xzx xzx 0 Oct  9 22:47 data1.txt
[xzx@instance-157t533k test]$ chmod o-r data1.txt
[xzx@instance-157t533k test]$ ll
total 0
-rw-rw---- 1 xzx xzx 0 Oct  9 22:47 data1.txt
[xzx@instance-157t533k test]$ su lisi
Password: 
[lisi@instance-157t533k test]$ rm data1.txt
rm: remove write-protected regular empty file ‘data1.txt’? y
rm: cannot remove ‘data1.txt’: Permission denied

我们通过将other的w权限恢复后发现,普通文件data1.txt不能被属于other的lisi给删除

一个文件能否被删除,并不由文件本身做决定,而是由这个文件所处目录决定的!

话又说回来了,假如让你实现一个共享目录,你会怎么实现?

放在我自己的家目录下是不行的,因为普通用户自己的家目录权限是700,在我家目录下创建文件别人看不见

[xzx@instance-157t533k home]$ ll
total 8
drwx------  4 lisi lisi 4096 Oct  4 15:26 lisi
drwx------ 26 xzx  xzx  4096 Oct  9 19:10 xzx

所以我创建的共享目录,不能在任何一个人的家目录,那共享目录该放在哪里呢?

在根目录(/)下创建一个目录,并打开权限770

但我们会面临上面的问题,一个没有r和w的other能够随意删除你共享目录的东西,这你咋办?

如果把共享目录的w权限去掉,那我们自己也无法创建文件!这个共享目录,共享体现在哪里?

由此粘滞位就诞生了

粘滞位:给目录设置,一般是共享目录,设置粘滞位后,大家可以在目录中进行各自的文件的增删改查,只允许文件拥有者or root能删除这个文件,其他人一概不许。

如何设置粘滞位? chmod +t 目录

共享目录系统会自动生成 /tmp

四、总结

至此,我们围绕 Linux 用户与权限两大核心模块展开了完整梳理:从 root 与普通用户的权限差异、切换方式(su -/su/su 用户名)、sudo 提权逻辑,到文件权限的身份划分(拥有者 / 所属组 / 其他人)、属性解读(r/w/x)、修改方法(字符法 / 数字法),再到 umask 权限掩码计算、目录特殊权限(r/w/x 对应功能)及粘滞位(chmod +t)的实用场景,均通过实操案例验证了核心规则 ——root 不受权限约束,普通用户受角色与文件属性双重限制

这些知识点是 Linux 系统安全与协作的基础:日常操作中,避免直接用 root 操作,通过 sudo 按需提权;共享目录用粘滞位保障文件安全;修改权限时结合业务场景选择字符或数字方式,既能满足协作需求,也能防范越权风险。后续可结合实际需求灵活运用,进一步深化对 Linux 权限体系的理解~

http://www.dtcms.com/a/478444.html

相关文章:

  • 常见压缩包格式详解:区别及在不同系统中的解压方式
  • 【数学 进制 数位DP】P9362 [ICPC 2022 Xi‘an R] Find Maximum|普及+
  • .net过滤器和缓存
  • 张家港网站建设培训班电力建设专家答疑在哪个网站
  • 零基础学AI大模型之大模型的“幻觉”
  • 网站快速优化排名排名c语言入门自学零基础
  • MySQL排序规则utf8mb4_0900_ai_ci解析
  • 做网站别名解析的目的是什么同城广告发布平台
  • GPT4Free每日更新的免登录工作AI提供商和模型列表
  • 网站群建设座谈会云浮新增病例详情
  • Proxmox 9 一键更新虚拟机mac
  • C# WPF DataGrid使用Observable<Observable<object>类型作为数据源
  • sem网站建设网站是由多个网页组成的吗
  • redis中的数据类型和适用场景
  • 从字节到网页:HTTP 与 TCP 的底层密码全解析
  • 建设局招标办网站百度seo搜索引擎优化厂家
  • 隧道高清晰广播+紧急电话系统的应用
  • Ubuntu使用图片
  • C# 求圆柱体的周长(Find the perimeter of a cylinder)
  • php 网站部署点击网站出现微信二维码的链接怎么做
  • MCU和GPIO (1)
  • STM32H743-ARM例程18-SPI
  • 力扣Hot100--94.二叉树的中序遍历
  • NXP - 用MDK建立基于arm-none-eabi工具链的工程框架
  • 中卫网站推广网络营销电器网站建设流程
  • MavenException【测试】
  • IPv6怎么开启?图文详解你的电脑和路由器设置方法
  • CSS 01【基础语法学习】
  • 北京网站平台建设深圳东莞网站建设
  • 02--CSS基础