背景知识
我们日常口头讲的Linux操作系统,狭义来说只是指它的内核,广义上来说指它的内核加外壳(shell,配套的程序)。
那么为什么一定要有外壳呢?shell外壳主要有以下两个功能
1.命令行解释器
将用户输入的指令解释给内核
将内核处理的结果返给外壳,再由外壳返回给用户
2.保护内核
shell具体是怎么保护内核的?——父进程+子进程
父进程:继续进行命令行获取并创建子进程,让子进程工作
子进程:处理父进程传来的指令
、
LInux区分文件类型,与后缀无关,和文件是否具有可执行权限有关
Linux这个软件不分文件后缀,不代表gcc这个软件不分
用户
用户主要分为超级用户(root)和普通用户
超级用户就是至高无上的存在,任意妄为,无视权限的存在
普通用户可以用su或者su-来切换成超级用户,但是需要知道root账户的密码
su:单纯的账号切换,从超级用户切换成普通用户:su-用户名
su-:重新登录root账号
如果我们只有一条命需要提升权限并且频繁使用,这个时候再用su或者su-就比较麻烦了,这个时候只需要在命令前面加个sudo就可以——但是现在所处的账号需要被root账号授权
权限
在Linux中,权限是伴生文件的
权限——也就是一件事是否可以被你做,直白点就是你有没有资格做某事的意思
人分为拥有者,从属者以及其他人
事物属性分为读,写,执行
第一列的字母代表文件类型,剩下的九个字母每三个为一个人的权限,从前往后分别为w,r,x
以以上文件为例子
l——代表该文件为链接文件,拥有者的权限为读写执行,从属者的权限为读写执行,其他人的权限为读写执行
后面的两个用户从前到右依次为拥有者和从属者,没有其他人是因为其他人不重要而且很多
这里的拥有者和从属者都为root
文件类型
chmod a +-权限缩写 文件名 对所有进行权限修改
用户在匹配身份的时候只匹配一次
- u:拥有者
- g:拥有者同组用
- o:其它用户
- a:所有用户
这里的权限缩写也可以用八进制来替代,如rwxrw-r--,存在字母即为1,-则视为0,所以就是764
默认权限
目录的默认权限为777,文件的默认权限为666
但是最终的目录权限为775,文件的最终权限为664,这是为什么呢?
最终的权限=默认权限&(~umask)
umask是权限掩码,最终的权限=默认权限去掉权限掩码中出现的权限
凡是在权限掩码中出现的权限都要在最终权限中被去掉
umask的默认值为003,是可以修改的
以上为文件默认权限666变成664的过程
目录权限
上面讲的大部分都是文件的权限,它的wrx我们是可以理解的
但是目录文件也有对应的wrx,是目录可以被读,写,执行的意思吗?如果是的话有种很奇怪的感觉
w:一个文件肯定是属于一个目录的,一个文件能不能被删除,能否新建文件都不由自己决定,而由该用户在该目录下有无w权限决定
r:一个文件肯定是属于一个目录的,一个文件属性能否被查看,由该用户在该目录下有无r权限决定
x:能否进入一个目录以内,由该用户在该目录下有无x权限决定
粘滞位:chmod+t 文件名——给目录设置,防止同目录下的其他用户乱删
总结
以上为Linux权限的粗略总结,也以此篇开始Linux的学习,该系列会持续更新,希望各位多多支持,如有错误也希望及时指出!