【Linux】权限

Linux权限

1、Linux权限的概念

Linux下有两种用户

  • 超级用户:可以再linux系统下做任何事情,不受限制
  • 普通用户:在linux下做有限的事情
  • 超级用户的命令提示符是"#",普通用户的命令提示符是"$"

超级用户的用户名为root,超级用户可以无障碍切换到普通用户,普通用户切换到超级用户需要输入超级用户的密码,如果普通用户在进行操作时受限,可以切换到超级用户

2、用户切换

命令:su 用户名

  1. 从超级用户root切换到普通用户需要用到su 用户名,路径不会变
  1. 从普通用户切换到超级用户root,则使用su root时会出现提示要求输入root用户的密码

补充:命令:su -

su -同样可以进行身份的切换

su -和su的区别:

su仅仅是切换身份,文件所处的路径不变,su -是重新登录切换成超级用户,连同路径和身份一起改变

  1. 从一个普通用户切换到另一个普通用户

从普通用户A切换到普通用户B需要输入B的密码

对指令进行短暂提权:命令sudo 提权指令

如果想用sudo进行提权,首先应在root超级用户的白名单里,否则无权使用指令,例如:

加入白名单后:

2、Linux权限管理

权限=人+角色,权限也和文件的属性有关

文件属性:

通过ls -l来查看目录下文件的属性

如图所示,文件最前面的- 表示普通文件,后面的三个一组,共三组,分别为文件所有者的权限(rw-),文件所属组的权限(rw-),其他人的权限(r--),r,w,x都是文件属性,有属性就用相应的字母,没有属性就用-代替

  • r:读权限,对于普通文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
  • w:写权限,对普通文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
  • x:可执行权限,对普通文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
  • -:表示不具有该项权限

文件类型:

  • d:文件夹
  • -:普通文件
  • l:软链接(类似Windows的快捷方式)
  • b:块设备文件(例如硬盘、光驱等)
  • p:管道文件
  • c:字符设备文件(例如屏幕等串口设备)
  • s:套接口文件

3、Linux中的文件访问者

  • 文件和文件目录的所有者:u
  • 文件和文件目录的所有者所在的组的用户:g
  • 其它用户:o

所属组指的用户是指文件权限在白名单中的用户

上面的第一列me代表文件的拥有者,第二列me代表所属组,当用户操作文件时,文件会先看用户是否是拥有者,若不是则再看用户是否是所属组,若不是所属组则是其他人

eg:

上图中me既是所有者也是所属组,那么对文件进行操作时是所有者身份还是所属组身份?

当所有者和所属组都是me时

把test.txt的所有者改为root,去掉所有者读的权限,留给所在组读的权限

再用me账号访问test.txt中的内容

由上图可知,用户操作文件时,文件会先看用户是否是拥有者,若不是则再看用户是否是所属组,都不是则是其他人

4、权限的修改

4.1 chmod

功能:设置文件的访问权限

格式:chmod 参数 权限 文件名

常用选项:

  • R -> 递归修改录文件的权限
  • 说明:只有文件的拥有者和root才可以改变文件的权限

chmod命令权限值的格式

  • u:拥有者
  • g:所属组
  • o:其它用户
  • a:所有用户
  • +:向权限范围增加权限代号所表示的权限
  • -:向权限范围取消权限代号所表示的权限
  • =:向权限范围赋予权限代号所表示的权限

eg:

chmod u+w test.txt :给文件拥有者增加写权限

chmod o-x test.txt :取消其他用户的执行权限

chmod u+w,g+r,o+r test.txt :增加拥有者写权限,所属组读权限,其他用户读权限

4.2 三位8进制表示文件权限值

权限符号 二进制 八进制数值
--- 000 0
--x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7

chmod 777 test.txt :将所有用户的权限都设置成rwx

4.3 chown

功能:修改文件的拥有者

格式:chown 参数 用户名 文件名

把东西给别人时,需要征得别人同意,不能直接转交给别人,同样一个账号的文件不能随意转移到另一个账号中

但root可以把一个账号中的文件转交给另外一个账号

chown aq test.txt :把test.txt文件的拥有者改成aq

chown aq:me test.txt :把test.txt文件的拥有者改成aq,所属组改为me

4.4 chgrp

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

格式:chgrp 参数 用户组名 文件名

常用选项:

-R 递归修改文件或目录的所属组

实例:

chgrp users /abc/f2:表示把f2文件的所属组改成users

4.5 umask掩码

Linux中新建一个目录的默认权限是777,新建一个文件默认权限是666,但实际上创建后往往不是这个值,原因是受掩码umask的影响

默认权限掩码:

超级用户为0022,普通用户为0002

所以最终权限 = 其实权限&(~umask)

umask 755 表示修改默认掩码为755

4.6 目录的权限

  • 可执行权限:如果目录没有可执行权限,则无法cd到目录中
  • 可读权限:如果目录没有可读权限,则无法用ls等命令查看目录中的文件内容
  • 可写权限:如果目录没有可写权限,则无法在目录中创建文件,也无法在目录中删除文件

删除lesson2的x权限,无法进入lesson2

删除lesson1的r权限,无法查看lesson1目录下的文件

删除lesson1的w权限,无法在目录中删除或创建文件

4.7 粘滞位

如果两个用户想共享一个文件,但是其他用户无法进入另一个用户的家目录来查看文件,这时需要通过root超级用户建立一个共享文件

但如果目录有w写权限,那么别的用户可以在目录下创建、删除、修改文件,这时如果想保留w权限并解决用户互删文件的操作,需要用到粘滞位

chmod o+t shared :给共享目录的other加上粘滞位权限

t是一种特殊的x权限,只允许文件拥有者或root能删除这个文件

相关推荐
小此方1 小时前
Re:Linux系统篇(四十六)信号篇·四:一文串联操作系统底层:时钟中断、内核态切换、系统调用与 Linux 信号处理全解析
linux·驱动开发·信号处理
无人生还别怕3 小时前
如何制作一个linux标准iso镜像
linux·iso·opencloudos·openanolisos
Yana.nice10 小时前
Linux 只保留 30 天内日志(find命令删除日志文件)
linux·运维·chrome
DFT计算杂谈14 小时前
无 Root 权限在 Tesla K80 零门槛部署 DeepSeek 大模型
linux·服务器·网络·数据库·机器学习
Zhang~Ling15 小时前
从 fopen 到 struct file:从零开始拆解 Linux 文件 I/O
linux·运维·服务器
DeeplyMind15 小时前
Linux 深入 per-VMA lock:Linux 缺页路径如何摆脱 mmap_lock
linux·per-vma lock
爱写代码的森15 小时前
蒙三方库 | harmony-utils之FileUtil文件重命名与属性查询详解
linux·运维·服务器·华为·harmonyos·鸿蒙·huawei
XMAIPC_Robot16 小时前
软硬协同实时控制|RK3588业务调度+FPGA硬件时序,ethercat实现半导体设备微秒级响应(125us)
linux·arm开发·人工智能·fpga开发
重生的黑客17 小时前
Linux 进程优先级、切换与调度:从孤儿进程到 O(1) 调度模型
linux·运维·服务器·进程优先级·nice