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

【Linux】权限相关指令

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

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

形象理解shell

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

为什么要有shell?

1.方便用户使用

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

补充

权限概念

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

root账号:为超级权限账号,不受任何权限限制 普通账号:受到权限限制,在Linux中只能做有限的事

su命令:su 用户名

功能:切换账号

代码语言:javascript

AI代码解释

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 -也可以实现。但是区别是?

代码语言:javascript

AI代码解释

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下
sudo:短暂的指令提权

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

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

代码语言:javascript

AI代码解释

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

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

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

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

代码语言:javascript

AI代码解释

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

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

r:对文件来说,代表可以读取文件内容;对目录来说,代表可以浏览目录内容 w:对文件来说,代表可以修改文件内容;对目录来说,代表可以删除目录中的内容 x:对文件来说,代表可以执行该文件;对目录来说,代表可以进入该目录

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

角色

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

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

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

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

解释:

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

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

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

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

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

如何描述文件权限信息?

代码语言:javascript

AI代码解释

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

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

文件权限表示方法

1.字符表示法

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

2.8进制表示法

chmod指令

语法:chmod 参数 权限 文件名

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

选项:

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

参数:

u:拥有者 g:所属组 o:other a:有所用户

实际操作展示 :

代码语言:javascript

AI代码解释

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 #以此类推,其他的权限操作类似

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

代码语言:javascript

AI代码解释

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.如果在进行相应操作时没有权限会怎么样?

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

代码语言:javascript

AI代码解释

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修改所属组出现问题?

代码语言:javascript

AI代码解释

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账号。

http://www.jsqmd.com/news/794231/

相关文章:

  • 大模型版本爆炸性增长下的治理困局(奇点智能大会闭门报告首次解密)
  • 高速ADC变压器耦合前端设计与高频失真解决方案
  • Playwright MCP终极指南:让大语言模型拥有浏览器自动化的超能力
  • 【SITS2026合规速通指南】:金融/医疗AI系统上线前必过7项可观测性审计,漏1项即触发监管熔断
  • AI 对网络安全的影响:从攻防失衡到“AI 漏洞末日“,过去 12 个月发生了什么
  • SPI协议桥接技术在FPGA中的实现与优化
  • 主流AI培训课程对比:五大选型维度实务评测
  • Python + psutil 实战:开发一个简易系统监控工具
  • ds4.c 深度解析为 DeepSeek V4 Flash 打造的本地推理引擎
  • GRBL 0.9j定时器中断详解:在STM32上如何用舵机替换Z轴步进电机(附完整代码)
  • 如何用NS-USBLoader解决Switch游戏传输的三大核心难题
  • 你的时间序列真的平稳吗?手把手教你用ADF检验(Dickey-Fuller)和滚动统计为预测模型打好基础
  • 使用Taotoken CLI工具一键配置多开发环境接入信息
  • 国内主流AI开发框架横向性能评测
  • react native(学习笔记第四课) 英语打卡微应用(3)-ocr的文字转化成语音文件(tts)
  • esp32开发与应用(wifi和蓝牙开发)
  • SPINNERchip:3G基带协处理器的异构计算与低功耗设计
  • UCC25600 LLC谐振变换器:从补偿网络设计到软启动与过流保护的实战调试
  • Java中的形式化方法
  • ARM虚拟定时器CNTV_TVAL寄存器详解与应用
  • 一文吃透Python全体系,从入门到精通,全程干货无废话
  • SITS2026隐藏资源全解锁,如何通过“非公开日程”接触OpenAI、DeepMind及中国大模型核心团队?
  • TrollInstallerX终极指南:3分钟搞定iOS 14-16.6.1越狱安装的完整教程
  • Qt界面嵌入Halcon窗口实战:告别独立弹窗,实现一体化图像处理界面
  • SpireMS的std_msgs消息详解
  • Sketchfab模型下载终极指南:3步免费获取离线3D模型
  • Prometheus监控主机,Grafana成图
  • arduino-跑马灯
  • 在自动化脚本中如何在自己的后端服务中调用open api进行用户相关操作?
  • 【限时解密】SITS 2026最新《AI原生应用SLA分级白皮书》核心框架(V2.3.1版,仅开放72小时)