关于Linux基本权限

权限的概念

用户的分类

在Linux中用户分为两类:

  1. root——超级用户,可以在Linux系统中不受任何约束的用户
  2. 普通用户,受权限约束
    root的命令提示符是"#“,而普通用户的命令提示符是”$",我们在切换切换用户时的命令是:
su xxx//要切换的用户名

root账户切换成普通用户,不用输入密码,而普通用户切换成root时要输入密码,并且在普通用户切换root时,可以只输入su,后面的root可以忽略。

权限的管理

简单点说就是,权限 = 人 + 事物属性

文件访问者(人)

分为3类:

  1. 拥有者:user——u
  2. 所属组:group——g
  3. 其他人:other——o

文件类型和访问权限(事物属性)

我们先分创建一个文件和一个文件夹:

touch test.txt//创建一个名为test.txt的文件
mkdir new_dir//创建一个名为new_dir的文件夹

创建好后我们再查看这两个文件/文件夹的详细信息:
在这里插入图片描述
看到最前面那一串字母,什么意思呢?
首先这串字母一共10个字母,
第一个表示文件类型

d代表是一个文件夹
-表示是一个普通文件

另外还有一些:

b:块文件,block、磁盘
c:字符设备,键盘或者显示器
p:管道文件
s:网络socket文件
l:链接文件link

后面剩下9个字母表示文件访问者的权限
3个为一组,分别为rwx,共3组,
第一组表示该文件的拥有者的权限,第二组表示所属组的权限,第三组表示其他人的权限。

r —— 可读
w —— 可写
x —— 可执行

如果对应的位置为-,表示没有该对应的权限
看到这里,我们就可以分析出:
刚创建的new_dir第一个字母是d,表示它是一个文件夹,并且该目录的拥有者和所属组拥有可读可写可执行的权限,而其他人只有可读和可执行的权限。
test.txt的权限中第一个字母是-,表示它是一个普通文件,拥有者和所属组有可读可写的权限
我们也可以修改权限,要用到的命令就是chmod

chmod o+w test.txt//给test.txt的拥有者加上可写的权限

给谁加权限:
拥有者user —— u
所属组group —— g
其他人other —— o
所有人all —— a(这个也可以不加a,也表示给所有人加权限)
加什么权限,这个就更容易理解了,rwx分别对应可读、可写、可执行。
去掉权限就把“+”改成“-”。
还有另外一种改权限的方法:
我们把拥有的权限当作1,没有的或者是‘-’的表示0,那么:

-rwxrwx---
//用二进制的形式表示就是111111000

把111111000转换成八进制就是770,所以,我们就可以这样:

chmod 770 test.txt//把test.txt文件的权限改成拥有者、所属组都具有可读可写可执行权限,而other没有任何权限

起始权限和最终权限

其实,权限也分为起始权限和最终权限,我们创建出来看到的权限就是最终权限。
起始权限是系统设定的,普通文件设定的起始权限默认是666,目录的起始权限默认是777,系统为了更好的控制权限,系统会有默认的权限掩码(umask)的概念。
权限掩码:在起始权限中,去掉umask中出现的权限,不能影响其他任何权限。
我们可以通过指令查看当前权限掩码:

umask//输入指令后回车就会显示,也可以修改:在后面加上想要赋的值

我这里回车后就显示0002,前面那个数字先不看,所以此时权限掩码就是002,我们也可以修改权限掩码,只需要在umask后面加上想赋的值就行。
再来看看最终权限,其实是有个公式来算最终权限:
最终权限 = 起始权限 & (~umask)
举例:
文件的起始权限是666,转换成二进制就是110 110 110,
而此时权限掩码是002,按位取反就是111 111 101,
最后按位与:得到的结果就是110 110 100,转换成八进制就是664,所以我在前面最开始创建了一个test.txt的文件,它的最终权限就是664。

粘滞位

我们在共享文件夹(权限为777)时,存在这么一个问题:如果我把共享文件夹里自己的文件设置成仅自己可以读写,other没有任何权限,但是other还是可以进行删除,这是为什么呢?
因为在共享目录中创建或者删除文件的权限是由w(写)决定的。
那我把other的w权限去掉不就行了?如果把w权限去掉,那岂不是其他人也不能在这个共享目录里创建文件了。
所以,为了让大家共享文件,且不让其他人随便删除别人的文件,于是就有了粘滞位,它只能给文件夹添加,一般都是给共享文件夹添加,把要共享的文件都放在这个目录里。
添加粘滞位的命令如下:

chmod +t xxx//xxx表示文件夹,回车后,这个文件夹的other权限最后就不是x了,而是t

添加之后,我们(普通用户)就不能删除别人的文件了。

补充

对于文件夹来说,可读并不意味着可以直接查看该文件夹中的文件,要先有可执行权限,可执行是可以对该文件夹进行指令操作,其中就包括进入该文件夹,如果没有x(可执行)权限,那么哪怕有r(可读)权限也不能查看文件里的内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值