技术分享
🤭linux—权限
00 min
2024-10-13
2024-11-21
type
status
summary
date
slug
tags
category
icon
password

1.linux权限的概念

linux用户分为两种:超级管理员root,和普通用户(其他)
那什么是权限呢?
一件事情是否允许被你做
1.权限认定的是身份
2.权限也和事务(文件)的属性有关
文件属性:可读?可写?可执行?
在linux中一般不通过文件后缀来区分文件类型,通过ll指令中的第一类别来判断实行
但是操作系统不用后缀来区分文件类型,但是在linux上跑的软件像gcc编译器就需要通过后缀来识别
所以正常情况下还是正确标写文件后缀
💡
su 用户名:用于切换账号
root账号下切换账号不需要密码
sudo 用户名:能提权(将普通用户的权限提升至root账号权限),但是需要将该用户增加到系统信任名单里面

文件(ll中列举出来的属性的解析):

第一列类别:
1.-开头:普通文件
2.d开头:目录
3.c开头:字符设备文件(显示器设备,键盘等)
4.b开头:块设备文件(磁盘文件)
5.p开头:管道文件
第二列类别:
r:可读
w:可写
x:可执行
-:对应的权限位置没有权限
notion image
对应: 文件类型 rex文件对应权限 拥有者 所属组 大小 创建修改时间 文件名
当这个用户与拥有者和所属组对比都不符合时候说明就是other了
权限角色:
1.拥有者(可以访问文件)权限为100
2.所属组(可以访问文件)
3.other(不能访问文件)权限为0
💡
这里不难发现在rwx权限上有三份,其实这三份分别是对应着拥有者,所属组,other的权限
但是权限是对root账号是基本没有改变的还是rwx
 
那如何修改权限呢?
能修改权限的人只能有root或者拥有者
1.chmod u或g或o+(-)r或w或x 文件名
2.也能用二进制的方法改变权限:二进制的111其实就是rwx全部权限转化为十进制其实就是7,110就是6以此类推然后能写三位:
chmod 777 文件名:其实就是开放全部权限
3.chown:更改拥有者:chown 用户 文件名
但是如果是用户权限是不允许这样操作的:
sudo chown 用户 文件名
4.chgrp 用户 文件名:更改所属组
 
 
💡
思考一下为什么目录文件他的默认权限是775,普通文件是664?
默认给普通文件的起始权限是666,给目录文件是777
linux中存在umask(权限掩码),凡是在umask中存在的权限,不会在最终的文件权限中出现(umask:000 000 010)其实就是002
在root账号中umask值是022
最终权限 = 起始权限 & (~umask)
那所谓的目录的read权限到底是怎么定义的呢?
你能看见里面的内容但是不能看见这个目录下文件
那目录的write权限是什么?
是否允许在指定目录下进行创建文件,更改,删除
那目录文件的x权限呢?
其实就是就是否能够允许被进入
 
每一个用户的家目录里面的文件的权限都是700,别人都看不见但是肯定存在需要共享文件,所以如果需要建立一个共享文件就需要在根目录下创建共享文件
 
 
一个文件是否能被删除或者删除,由这个文件所处的上层文件的w权限决定
那这样就很奇怪了,你在这个共享文件中创建了自己的文件但是别人却可以删掉你自己的文件,但是如果这个上层shared文件的的w权限被删除后,既不能删除文件也不能创建文件了?那这个文件的共享的意义何在呢?所以这里linux引入了一个新的特殊权限t,取代了x位置
粘滞位t:一般给共享文件设定,给目录设置,设置之后,只能拥有者删除这个文件或者root
 
上一篇
多线程
下一篇
linux-linux工具