网站做icp备案需要多久,德州市住房建设局网站,aspcms网站栏目调用,北京小程序开发多少钱目录 一、shell运行原理
二、权限
1、对人操作
2、对角色和文件操作
修改权限#xff08;改属性#xff09;#xff1a;
①ugo-
②二进制数的表示
修改权限#xff08;改人#xff09;#xff1a;
三、权限的相关问题
1、目录的权限
2、umask
3、粘滞位 一、s…目录 一、shell运行原理
二、权限
1、对人操作
2、对角色和文件操作
修改权限改属性
①ugo-
②二进制数的表示
修改权限改人
三、权限的相关问题
1、目录的权限
2、umask
3、粘滞位 一、shell运行原理
shell的运行原理是外壳程序
首先要清楚我们人并不是直接访问操作系统的原因如下
1、人是不善于直接使用操作系统的
2、如果让人直接访问操作系统会有两个问题 ①操作成本很高 ②人也会犯一些错误从而带来不安全的因素
所以我们日常使用的图形化界面Windows或是指令操作Linux都是操作系统所提供的外壳程序 那么外壳程序也有它存在的意义
1、外壳程序是用户和操作系统交互的中间软件层
2、可以在一定程度上起到保护操作系统的作用
所以人是和shell外壳程序打交道然后外壳程序再与操作系统打交道处理结束后操作系统将结果反映给外壳程序外壳程序再将结果传递给人 总结一下就是外壳程序将使用者的命令翻译给操作系统处理同时再将操作系统的处理结果翻译给使用者 二、权限
1、对人操作
Linux下有两种用户root和普通用户
root只有一个具有Linux下最高权限一般不受权限约束
普通用户可以有多个要受权限的约束
所以Linux下是可以存在多个用户的Linux是一个对用户的操作系统 所以在Linux中切换root和普通用户也就是在切换当前的权限
切换的命令su [用户名]
从root用户切换到普通用户user要使用su user
从普通用户切换到root用户要使用su rootroot可以省略也可以su - 关于输入密码的问题root用户切换普通用户不需要密码
普通用户切换到root用户需要root密码
普通用户1切换到普通用户2需要用户2的密码 普通用户切换到root用户后如果想退回到刚刚的普通用户可以Ctrld也可以输入命令logout 2、对角色和文件操作
权限是针对人的事物的基本属性决定权限相关的概念
文件权限也就是一件事情是否允许被你做
因此权限的核心就是人事物属性r/w/x-读/写/执行
下面看Linux中的文件的详细信息 部分含义已经备注在图上了今天主要学习最前面的这10个字母或字符 这10个字符可以分成两部分理解第一个和后九个 ls -l后显示的第一列的第一个字符表明该文件的文件类型Linux中不以文件后缀来区分文件类型但是不代表不可以使用虽然在系统层面没有意义但是可以给自己看具体文件类型如下
d目录
-普通文件
p管道文件
b块设备磁盘设备
c字符设备键盘或显示器
l链接文件 ......
其中前两个是最常用的 Linux将用户身份划分为三类拥有者所属组other这三个可以理解为一种身份
拥有者文件属于谁
所属组文件属于哪个组
other不属于上面两种任何一个就是other 红框表示的就是拥有者蓝框表示的就是所属组至于other即不是这两个的都是other
第一列的十个字符的后九个三三为一组分别是拥有者所属组other
这三个位置分别是r/w/x(读/写/执行)位置是固定的有rwx权限就显示rwx没有的话就显示-
比如我们的Pro这个目录的权限就可以表示为
拥有者具有读、写和执行权限所属组具有读和执行权限没有写权限other具有读和执行权限没有写权限 修改权限改属性
①ugo- 现在有一个普通文件拥有者权限是rw-所属组权限是r--other权限是r--
这时我想修改权限语法是chmod [u/g/o/a] [/-] [r/w/x] [文件名] 其中u/g/o/a分别表示user拥有者/group所属组/other/all所有身份
将拥有者权限改为rwx所属组改为rwxother改为r-x即 将拥有者权限改为rw-所属组权限改为rwother改为r即 将所有身份都加上x权限即 当普通用户缺失某些权限时对应的功能就不能正常进行了例如普通用户没有r权限那么就不能正常使用cat test.c这种命令了没有w权限就不能进行echo hello test.c这种命令等等
如果输入不符合权限的指令就会出现这样的提示 但是root用户不受权限的约束即使root是other也可以有rwx权限 ②二进制数的表示
因为拥有者、所属组和other的rwx权限位置是固定的所以只会有两种情况要么有要么没有这时有可以表示为1没有可以表示为0
当rwx都有时表示成二进制数就是111这时111表示的十进制数是7
如果只有rw表示成二进制就是110这时110表示的十进制数是6
所以我们也可以使用这种二进制数的方式来改变权限即
全部都有rwx属性 拥有者有rwx权限二进制是111对应的十进制为7所属组和other都只有rw权限二进制是110对应的十进制是6即 修改权限改人
chown/chgrp更改拥有者或所属组需要提升权限
比如说我目前是普通用户有一个普通文件test.ctest.c目前的拥有者和所属组都是zhangsan我想改变拥有者/所属组为lisi
语法是sudo [chown/chgrp] lisi test.c
如果想一次性将拥有者和所属组都改为lisi输入sudo chown lisi:lisi tejike即可
加上sudo后表示执行后续的命令要以root的权限级别来执行这时输入的密码就是lisi的密码
当然了如果用户想执行sudo提升权限需要该用户在信任列表里面才能够执行sudo而添加用户到信任列表里是需要root身份的所以不会出现普通用户随随便便就可以修改拥有者所属组的行为
而如果我是root用户则直接[chown/chgrp] lisi test.c 就可以
三、权限的相关问题
1、目录的权限
首先一个普通文件的拥有者和所属组如果是同一个人那么我将拥有者的权限全部去掉虽然所属组也是这个人并且所属组的权限都有但是这个人实际上是没有任何权限的因为权限只被认证一次被认证为拥有者就不管是不是所属组了
注意
进入一个目录需要x权限如cd ...
查看目录下面的文件列表需要r权限如ls -al
要在目录下创建文件或目录需要w权限如touch test.c
2、umask
umask叫做权限掩码凡在umask中出现的权限都不应该在最终权限中出现 我们目前只研究umask的后三位即0 2 2
并且目录的起始权限是7 7 7开始的普通文件的起始权限是6 6 6开始的
目录的起始权限7 7 7说明拥有者、所属组、other的rwx权限都有即对应位置为1所以二进制1 1 1转换为十进制就是7
umask为0 2 2而0 2 2的第一个数是0由于凡在umask中出现的权限都不应该在最终权限中出现而第一个数为0说明umask不会影响拥有者的rwx权限所以拥有者的最终权限仍然是rwx
而后面的两位都是2而2变为二进制是0 1 0所属组和other所对应的7变为二进制是1 1 1由于凡在umask中出现的权限都不应该在最终权限中出现所以umask中1所在的位置也就是w的权限在umask中出现了所以所属组和other的最终权限都不应该有所以所属组和other的最终权限都变为了r-x
所以最终目录test的权限显示为rwxr-xr-x 其实也就是 最终权限起始权限(~umask)
即0 2 2变为二进制是0 0 0 0 1 0 0 1 0而7 7 7变为二进制是 1 1 1 1 1 1 1 1 1
先取反~umask变为1 1 1 1 0 1 1 0 1再与1 1 1 1 1 1 1 1 1按位与
变为了1 1 1 1 0 1 1 0 1也就是rwxr-xr-x 所以有了这个计算方法我们如果想设置权限也可改变umask值例如umask变为0777设置完后拥有者所属组other都没有权限了 3、粘滞位
有一种情况是大家所有用户都在一个共同的目录下对该目录都有读写执行的权限同时需要满足两个要求
①、当多个用户共享一个目录时需要在该目录下进行读写创建、删除文件
②、同时要保证自己只能删除自己的而不能删除别人的因为原本other权限是有w的但是这可以互删不满足要求
在同一个目录下大家各自有各自的文件如果想保证自己能创建自己的文件或删除自己的文件那么必须要保证该目录other要有w权限但是这种情况又会导致互相看不见对方的文件但是却可以互相删除对方的文件要解决这个问题就需要用到粘滞位 粘滞位语法就是 chmod t test
这时候可以发现原本other的x权限变为了t这个t权限可以理解为x的特殊情况
这时就满足了上面的两个条件
注意粘滞位只能给目录设置一般是谁设置谁取消root