linuxshell 和 权限
Posted better,faster
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linuxshell 和 权限相关的知识,希望对你有一定的参考价值。
目录
一般普通文件,起始权限是666,但是我们看到的普通文件起始权限是664,是为什么呢?
(1)进入应该目录、读取一个文件、在一个目录下写文件分别都需要什么权限?
(2)在同一目录下,如何防止其他用户删除自己创建的文件?(粘滞位)
一、什么是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中会有很多的临时文件,临时文件存放在根目录下的临时目录中,这个目录是一个公开的,大家都可以使用和访问,为了防止其他用户删除你的临时文件,可以通过设置粘滞位,防止其他用户删除你的文件。
以上是关于linuxshell 和 权限的主要内容,如果未能解决你的问题,请参考以下文章
看表情包学Linuxshell 命令及运行原理 | Linux 权限 | 文件权限的修改和转让 | 目录的权限 | Sticky bit 粘滞位