Linux(二)——权限

文章介绍了Linux中的shell,它是用户与内核交互的接口。Linux系统有两种用户类型:超级用户(root)和普通用户,切换用户通常使用su命令。文件权限分为所有者、所属组和其他人三类,chmod用于修改权限,umask定义了新建文件的默认权限。此外,文章还讨论了目录的粘滞位特性,用于防止无权限用户删除他人文件。
摘要由CSDN通过智能技术生成

一、shell

Linux是一个操作系统,我们称之为“内核(kernel)”,但是一般情况下,并不会直接去访问kernel,而是通过操作系统的外围,有一层外壳(shell)的程序,来和kernel进行交互。

在Windows下,我们通过图形化界面来让操作系统执行我们的指令。

例如,我们双击一个图标,图形化界面会将这个动作转化成对应的指令给操作系统执行。

同样的,在Linux下,我们通过给shell输入指令,shell转化为kernel能理解的指令,再传递给kernel执行。

二、权限

在Linux下,存在两种用户,超级用户与普通用户。

超级用户即root用户,root用户不受权限的限制,可以在Linux下做任何事情。

普通用户即除root外的所有用户,在执行一些命令时,会受到约束。

在Linux中,通过su命令来切换用户。

如图所示,在root用户下切换用户,su 用户名即可直接切换,当前所处目录不会改变。

但是如果普通用户切换到其他用户,需要输入对应用户的密码。

同时,在命令行输入命令时,#表示当前用户是root,$表示当前用户时普通用户。

三、文件权限

1、文件的访问者

在Linux下,任何一个文件都会有三类访问者,即文件的所有者(U),文件的所属组(G),除此之外的其他人(O)。

2、文件类型

如上图所示,当输入ll命令显示目录下文件及其详细信息时,每个文件的最前面有十个字符。

其中,第一个字符表示文件的类型。

d:目录(即文件夹);

-:普通文件;

p:管道文件;

l:软链接(即快捷方式);

b:块设备文件(例如硬盘);

c:字符设备文件(例如屏幕);

s:套接口文件。

而剩下9个字符则是与文件的权限有关。

3、文件权限

权限的前三位代表拥有者的权限,中间三位表示所属组的权限,后三位表示其他用户的权限。

这三位按顺序依次表示为

r(文件的读权限,对于目录来说,是浏览目录下的文件列表的权限)、

w(文件的写权限,对于目录来说,是在该目录下增加、删除文件的权限)、

x(文件的执行权限,对于目录来说,是具有进入目录的权限),

-表示没有对应的权限。

4、文件权限的修改

我们可以使用chmod来修改对应文件的权限,当然只能由权限的拥有者或者root来修改。

# chmod u+w test.c

在上述命令中,u代表文件的拥有者,+代表邀将后面的权限付给前面的角色,test.c代表需要修改权限的文件名。

这个命令会将test.c文件的写的权限增加到文件的拥有者上。相似的,可以将u换成g、o、a,表示所属组、其他人的权限,所有人的权限,+换成-、=,表示去掉对应的权限、赋成后面的权限。

同时,也可以多个放在一起使用,如下:

另外,由于每一种角色对应的权限只有8种状态,因此我们可以使用3位8进制数来修改文件的权限。

r——4,w——2,x——1;rwx权限就表示7,rw-就表示6;如图所示。

chown、chgrp可以修改文件的拥有者和所属组。

在上述的命令中,-R选项可以将目录下的所有文件递归修改其权限。

5、umask

在创建文件时,如果是目录,默认情况下它对应的权限是777,如果是普通文件,则是666。

但是实际上,创建的目录的权限是775,普通文件的权限是664。

这是因为,在创建文件时,有一个东西叫文件掩码,用umask命令查看。

如图所示,此时的文件掩码是002。文件掩码会在文件创建时,去掉文件对应的权限。002,表示其他人的写权限。所以,如果在文件创建时如果有其他人的写的权限,会被去掉。

同时,umask后面直接跟数字可以直接修改文件掩码。

如图所示,将文件掩码设置成777,表示在文件创建时,去掉其所有人的所有权限。

6、粘滞位

在上述内容中我们知道了,对于目录来说:

没有r,就无法查看目录中有哪些文件;

没有w,就无法在目录中创建和删除文件;

没有x,就没有办法进入目录。

这时就会引发一个新的问题,如果一个用户拥有该目录的写的权限,就可以删除该目录下的任意文件。比如你写了一份代码,权限对我而言是0,但是我却可以删除你的文件。就很离谱!

为了解决这种问题,Linux引入了粘滞位这个概念。

chmod +t 目录名/路径

就会将该目录设置一个粘滞位,在具有粘滞位的目录下,只有root、该文件的拥有者、该目录的拥有者删除。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王红花x

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值