服务器 > 服务器 > Linux

Linux的权限问题详解

6人参与 2026-01-31 Linux

一、shell运行原理–外壳程序

为什么我们不是直接访问的操作系统?

1.人不善于直接使用操作系统

2.如果让人直接访问操作系统

那我们是如何访问操作系统的呢?那么图形化界面&&指令操作究竟是什么东西呢?

是操作系统提供的外壳程序

1.用户在系统中输入一个不存在的命令,但是外壳程序返回command not found,操作系统拒绝了命令的执行

2.用户在系统中输入一个存在的命令,但是操作系统不给权限让你执行,当用户进行非法操作时,不会传给操作系统,外壳程序就会直接拒绝

外壳程序的意义:

1.是用户和操作系统交互中间软件层

2.可以在一定程度,起到保护操作系统的作用

外壳程序的核心作用

1.将使用者的命令翻译给核心(kernel)处理

2.同时,将核心的处理结果翻译给使用者

二、linux权限(主体,重点)

对人操作

1.root:只有一个,具有linux下的最高权限(一般不受权限约束)

2.普通用户:可以有多个,要受权限的约束

3.对角色和文件操作

权限:

ll显示第一列的第一个字符,表明该文件的文件类型

后面三列表示拥有者的权限,接着后三列表示所属组的权限,最后三列表示other的权限

其中r表示可读,w表示可写,x表示可执行

linux下,不以文件后缀来区分文件类型(并不代表不可以使用,在系统层面没意义,给自己看的)

gcc是linux环境下的一个软件 gcc==linux系统吗

第一列的root的拥有者,第二列的root是所属组

//ugo+-
chmod u+x myfile.txt  //给文件的拥有者加上可执行权限
chmod u-rw myfile.txt //给文件的拥有者删除可读可写权限
chmod u+r,u-x myfile.txt //给文件的拥有者加上可读权限,给文件删除可执行权限
chmod u+rwx myfile.txt  //给文件的拥有者加上所有权限

chmod g-r myfile.txt  //给文件的所属组删除可读权限

chmod o+w myfile.txt  //给文件的other加上写权限

chmod a+x myfile.txt   //给文件的所有人加上可执行权限

//八进制方案
chmod 777 myfile.txt   //给文件的所有人加上所有权限
chmod 000 myfile.txt   //给文件的所有人删除所有权限
chmod 444 myfile.txt   //给文件的所有人加上读权限

//修改人 (在root权限下)
chown zl myfile.txt   //修改文件的拥有者为zl
chgrp zl myfile.txt   //修改文件的所属组为zl

sudo chown whb myfile.txt   //执行后续命令,要以root的权限级别来执行
//如果用户想要执行sudo,提升权限,需要该用户在信任列表里面,才可以执行sudo,添加用户到信任列表是需要root身份的!

//使用root权限将给出去的拥有者给所属组要回来
chown zl:zl test.txt

//目录文件结构
r:是否允许我们查看指定目录下的文件内容
w:是否允许我们在当前目录下进行创建,更改,删除
x:是否允许用户进入对应的目录

三、常见的权限问题

目录权限

进入一个目录,需要什么权限?必须得有x权限(对于cd)

查看文件必须得有r权限(对于ls)

创建文件必须得有w权限(对于touch)

umask

linux默认:

粘滞位

在目录当中,新建和删除文件跟文件本身的权限没有关系,而是跟它所处的目录是否给了它读写权限有关。

如果直接去掉所有other的写权限,会导致自己无法对自己的文件进行写操作

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

如果我们去掉了共享目录的w权限,我们也同时无法创建文件了。你的共享目录,共享体现在哪里?

大家所有用户都在一个共同的路径下,对该目录具有读写执行权限

1.当多个用户共享一个目录,需要在该目录下,进行读写,创建删除文件

2.但是自己只能删除自己的,而不能删除别人的(w:可以互删的,但是不满足条件)

chmod +t mytemp    //将文件的other的可执行权限x改成粘滞位权限t

ls -l /            //里面有一个tmp的共享目录,是linux系统里面共享的

修改粘滞位权限后,自己只能删除自己的文件,不能删除其他人的文件

粘滞位只能给目录设置! 粘滞位一般是谁设置谁取消(root)

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

您想发表意见!!点此发布评论

推荐阅读

Linux系统下gitee使用git提交代码方式

01-31

CentOS7 curl版本升级过程

01-31

CentOS8 VNC远程桌面实践

01-31

Linux下查看DNS配置信息的常用命令说明

01-31

Linux使用touch命令创建空文件的技巧分享

01-31

Ubuntu bash:没有那个文件或目录问题及解决

01-31

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论