目录
Shell运行原理--外壳程序 Linxu对人类而言:1.人不擅长直接与操作系统互动
2.如果让人直接访问操作系统:a.操作成本高
b.人会犯错,带来 不安定元素
(所以可以使用xshell类似的外壳程序对Linux操作系统进行访问)
外壳程序的意义:1.是用户和操作系统交互中间的软件层
2.可以在一定程度上,起到保护作用!
权限(主体、重点)
1.对人操作
root:只有一个,具有Linux下的最高权限(一般不受权限约束):Linux下可以存在多个用户
Linux是一个多用户操作系统
普通用户:可以有多个,要受权限的约束
root <--转换-->普通用户,潜台词就是在切换当前的权限! ——>切换方法指令:su -:从普通到root
su [用户名]:切换用户
注意:从root转到任意用户可以直接转,不需要密码,从用户转到root/其他用户,则需要密码
2.对角色和文件的操作
权限:针对人的,事物的基本属性决定权限相关的概念 ——>文件权限——>一件事情是否允许被你“做”,权限核心=人+事物属性
Linux下的文件权限
在使用 ls -l后,显示的文件列表中,第一列的第一个字符,表明该文件类型
d:目录 Linux下,不以文件后缀来区分文件类型(并不代表不可以使用,在系统 层面没有意义)
-:普通文件
p:管道文件
b:块设备
c:字符设备
Linux下的权限分类
1.拥有者:文件属于谁
2.所属组:文件属于哪一个组
3.other:不属于上面两种的任何一个,就是other
权限的表示:在 ls -l 后,前面文件的属性中,除开第一个,后面9个字符以三个为一组,分别从左往右对应为:拥有者的权限,所属组的权限,other的权限(r为读,w为写,x为执行)没有的权限则用" - “ 表示,如: r-x 表示为只有读、执行权限
-wx 表示为只有写、执行权限
rw- 表示为只有读、写权限
--x 表示只有执行权限
文件访问权限的修改方式
指令:chmod [拥有者(u)/ 所属组(g)/ other(o)] +/- [r / w / x] [文件名]
如: chmod u+rwx test.txt 表示为为test.txt文件中拥有者附上读、写、执行的权限
chmod g-rwx test.txt 表示为为test.txt文件的所属组移除读、写、执行的权限
(补充: chmod a+rwx test.txt 表示为为test.txt文件的所有对象赋予读、写、执行的权限)
如需加减号同时使用,可以用逗号分割,如:chmod u+rwx,g-rw,o-rwx test.txt 表示为为test.txt文件中拥有者赋予rwx权限,所属组移除rw权限,other移除rwx权限
注意:root是不受任何权限限制的,是绝对权限的存在
1.ugo+-法(就是上述的方法)
改属性的方法:2.八进制表示法
八进制表示法:可以把读、写、执行看作 111 三位二进制数,转化为八进制就为7,所以就可以用八进制赋予权限,1为有,0为无。
如:chmod 777 test.txt 为为test.txt的所有对象赋予rwx权限
修改文件文件的拥有者
指令:chown [用户名] [文件对象】
sudo指令
用root权限级别来执行后续指令(前提是使用sudo的用户必须在信任列表里,而添加到信任列表里需要root身份)
常见的权限问题(面试问题)
1.目录权限
Q:进入一个目录需要什么权限?(r / w / x)
A:需要x(执行)权限 (权限只会验证一次,验证的优先顺序为 拥有者 > 所属组 > other)
Q:查看目录下的文件列表需要什么权限?
A:需要目录的 r 权限
Q:在一个目录下创建和删除文件需要什么权限?
A:需要目录的 w 权限。
(即删除或创建一个文件,关键在于目录的权限,而不是文件的权限)
在创建目录与文件时的默认权限+umask指令
1.默认目录的起始权限是777,普通文件的起始权限是666
2.最终权限 = 起始权限 & (~umask的值),(凡是在umask中出现的权限,都不应该在最终权限中出现)
umask:是一种权限掩码,用法:mask 0[设置的掩码权限值]
粘滞位权限
粘滞位权限: chmod +t test.txt (在一个共享目录下,用户只能删除自己的文件而不能删除别人的文件)。 t是x的一种特殊形式,粘滞位只能给目录设置。(注意:粘滞位只能由设置者解除,其他人做不到)