【linux】shell 和 权限

目录

一、什么是shell?

二、为什么存在shell?

bash和shell的区别

一、什么是权限?

二、修改权限

一、修改文件权限

二、修改用户

三、不受权限约束的超级用户“root”

三、默认权限

1、默认的权限

2、umask(权限掩码)

一般普通文件,起始权限是666,但是我们看到的普通文件起始权限是664,是为什么呢?

修改权限掩码

4、权限的经典面试题

(1)进入应该目录、读取一个文件、在一个目录下写文件分别都需要什么权限?

(2)在同一目录下,如何防止其他用户删除自己创建的文件?(粘滞位)

(3)粘滞位的应用场景


一、什么是shell?

shell是命令解释器,是包裹再操作系统外层的软件层(类似于Windows的图形化界面)

二、为什么存在shell?

因为用户不擅长直接和操作系统交流,所以通过shell,把用户的请求任务传递给操作系统,把操作系统执行结果,通过shell外壳返回给用户

shell还有一个作用就是可以保护操作系统,拒绝用户的非法操作

bash和shell的区别

bash是shell的一种,在centos 7 中使用的是bash。


一、什么是权限?

权限即就是:决定某件事情,某人能否做

文件权限=“人” + 事物属性

所以文件受“人”的影响:人指代拥有者、所属者、other

还受文件本身的属性(事物属性)影响:权限属性  r (读)、w(写)、x(执行权限)

如图:lesson1文件的文件属性:rw- rw-  r--,表示拥有者(owner)可读可写不可执行、所属者(group)可读可写 不可执行、其他(other)可读

注意:

1、上述信息没有显示other用户,是因为显示了拥有者和所属者后,其他的用户就是other

2、默认的拥有者和所属者都是创建文件的用户本身,如果所属者没有添加过其他用户,就是自己本身

3、group存在的意义是,在安全的前提下,方便组内协同

二、修改权限

一、修改文件权限

//拥有者(owner) 、所属者(group) 、其他(other)

chmod u+r 文件名     //给拥有者加上读权限
chmod g-w 文件名     //给所属者加上写权限
chmod o+rwx 文件名   //给其他加上读写执行权限
chomd a+r 文件名     //给所有用户加上读权限
chmod u+r,g-w,o+rwx 文件名    //给拥有者加上读权限、给所属者加上写权限、给其他加上读写执行权限

chmod u=rw- 文件名   //把拥有者权限修改为可读可写不可执行

 除了上述的修改权限命令外,还有一种命令方法。

是否可读:可以理解用0/1二进制表示,不能用0表示,可以用1表示

例如:rw-  ——>110  ;转化成8进制数就是6

所以 ,666——>rw- rw-rw-

chmod 666 文件名     //将权限修改为拥有者、所属者、其他都可读可写不可执行

二、修改用户

//修改用户需要进行sudo提权
sudo chown 用户名 文件名     //将文件的拥有者修改为命令里的用户

sudo chgrp 用户名 文件名     //将文件的所属者修改为命令里的用户

sudo chown 用户名1:用户名2 文件名    //将文件的拥有者修改为用户名1,所属者修改为用户名2

三、不受权限约束的超级用户“root”

用户分类:

        超级用户:root

        普通用户:自己创建的用户

关于用户的常用命令:

创建命令: 
adduser  用户名
passwd  用户名   //设置密码

其他关于用户的命令:

ls /home:查看所有用户
whoami:查看当前用户
su - 用户名 :切换用户

sudo 其他命令:可以暂时提权,让普通用户有root用户的权限

三、默认权限

1、默认的权限

一般普通文件,起始权限:666 (rw- rw- rw-)

一般目录文件,起始权限:777(rwx rwx rwx)

2、umask(权限掩码)

一般普通文件,起始权限是666,但是我们看到的普通文件起始权限是664,是为什么呢?

是因为umask的存在,umask是权限掩码

凡是在umask中出现的权限,都不应该在最终权限中出现

计算规则为:

        权限  &  -umask

        也就是权限与运算,权限掩码的反

所以,即使普通文件的默认权限是666,也因为umask(权限掩码)的存在,让初始权限为664。

修改权限掩码

umask 三八进制数

例:
umask 003     //将默认权限掩码改为了003

4、权限的经典面试题

(1)进入应该目录、读取一个文件、在一个目录下写文件分别都需要什么权限?

答:

目录权限:

一个目录下写文件      w权限

读取一个目录             r权限

进入一个目录需要      x权限        //特别注意,进入一个目录需要x权限,并非r权限

(2)在同一目录下,如何防止其他用户删除自己创建的文件?(粘滞位)

答:sudo chmod +t dir

上述命令叫做设置粘滞位,给目录设置粘滞位可以防止普通用户删除该目录下的文件

补充:如果其他用户直接删除目录,也是无法删除的,因为删除目录前需要删除掉该目录下所有的文件,因为粘滞位的存在,也是无法操作成功的。

(3)粘滞位的应用场景

在Linux中会有很多的临时文件,临时文件存放在根目录下的临时目录中,这个目录是一个公开的,大家都可以使用和访问,为了防止其他用户删除你的临时文件,可以通过设置粘滞位,防止其他用户删除你的文件。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>