指令与权限
1.shell命令以及运行原理
命令行
用户名 @ 主机名: 所处的目录
提示符#:root
$:普通用户
从技术角度:
shell最简单定义:命令行解释器主要包含将使用者的命令翻译给核心处理,同时,将核心的处理结果翻译给使用者
外壳-》进程-》新命令-》创建子进程
为什么要存在shell:方便用户操作,外壳程序,保护内核
2.Linux权限
Linux用户:
root(超级用户,权限高)用户or 普通用户(权限低,受管控)
命令:su 【用户名】
功能:切换用户
命令:sudo
功能:指令短暂提权
权限是什么
权限的本质是:能或者不能做什么事情
为什么:控制用户的行为,防止错误的发生
权限首先限制的是角色
权限要求目标必须具备对应的属性
权限=角色+目标属性(读写执行)
角色:拥有者 所属组 other
other不需要记录
权限
读:r
写:w
可执行:x
文件属性修改(chmod)
给拥有者加权限 chmod u+权限 文件
给拥有者减权限 chmod u-权限 文件
给所属组: chmod g+-权限 文件
其给他: chmod o+-权限 文件
给所有: chmod a+-权限 文件
例如:
给拥有者加上r权限
注意:
(1)用户只能更改自己的文件权限
(2)如果没有权限会怎样?
系统会拒绝访问
例如:
如果没有写的权限
(3)确定权限信息的时候,系统会先确定用户是谁,拥有者,所属组,还是other
在centos下,用户角色确定,只确定一次 顺序是:拥有者,所属组,other
(4)root不受权限约束
(5)可执行权限!=文件可以执行
更改人:chown/chgrp(chgrp改所属组)
需高权限
将world.txt 的拥有者,所属组改为root
权限位是两态的,是否允许读,是否允许写,是否允许执行,所以可以看作10,例如110表示可读可写不可执行,转换成是八进制(取值范围为0-7)是6
例如:
目录权限
进入目录需要x权限
如果没有r权限,就无法查看目录的内容
如果没有w,无法在指定目录内部新建文件
缺省权限
对于普通文件来讲:起始权限666,默认不带可执行
对于目录文件来讲:起始权限777,默认携带x
但是为什么是775 664
因为系统默认会存在一个默认掩码的概念
第一个0不用看
最终权限=起始权限&(~uask) 000 000 010
777: 111 111 111
~umask :111 111 101
按位&: 111 111 101 -》775
666:110110110
111111101
&:110110100 -》664
umask目的:希望凡是在umask中出现的权限,都不应该在最终权限中出现
为什么要有umask: a.默认权限,有os自主决定,无法在创建前进行修改-----系统可配置,可以灵活满足需要的一种表现
b.特殊情况下,配置umask,可以控制文件默认权限,让代码可控
一个文件是否能被删除,与文件本身无关,与文件所处的目录w权限有关
权限标志位:粘滞位 t
特征:只能给需要共享的目录添加粘滞位
任何一个人都能在共享目录下新建,但是不能让非拥有者删除,超级用户除外