Shell运行原理 和Linux权限
Shell命令及运行原理
Linux严格意义说的是一个操作系统,我们称之为"核心(kernel)",一般用户不能直接使用kernel,而是通过kernel外壳程序(shell)
Shell简单定义:命令行解释器
- 将使用者的命令翻译给核心(kernel)处理
- 同时将核心的处理结果翻译给使用者
shell外壳:保护操作系统(非法指令拦截)
Linux外壳理解:在系统层面上,就是一个进程,保证内核安全的同时,也保护自身安全
shell运行原理:创建子进程,让子进程进行命令解释
shell进程->创建子进程进行命令行解释->如果失败不会影响shell进程
shell VS bush
shell 是所有外壳程序的统称,bash 是一种具体的shell。
centos 7外壳程序 :bush
Linux权限
Linux下有两种用户:超级用户(root)和普通用户
- 超级用户 :可以在Linux系统下做任何事,不受限制
- 普通用户:在Linux下做有限的事
- 超级用户命令提示符:#,普通用户命令提示符:$
切换用户名
su -[用户名] - 超级-》普通
su - 普通-》超级
改普通用户密码
- passwd 用户名 只能在root下操作
- sudo passwd 用户名 普通用户下操作
sudo报错
$sudo ls
[sudo]passord for L
L is not the sudoers for file .This incident will be reported
在root端输入:
vim /etc/sudoers
找到:
## Allows people in group wheel to run all commands
%wheel All=ALL ALL
%wheel ALL = ALL ALL
改成
## Allows people in group wheel to run all commands
%wheel All=ALL ALL
用户名 ALL = ALL ALL
按ESC,输入 :wq!保存退出
Linux权限管理
文件访问者分类(角色)
- 文件和文件目录的所有者: u—User
- 文件和文件目录的所有者所在的组: g—Group
- 其他用户: o—Others
root/普通用户可以充当角色 举例:有个人叫小明,小明在班里是班长
root/普通用户-》小明,角色-》班长
Linux中,所有的用户都要隶属于一个组,哪怕组里只有你一个人
修改权限
语法:
1、chmod [角色] +或- [属性] 文件
2、chmod 三位八进制数 文件
附加:进入目录/显示目录内容/创建文件需要什么权限?
答:x权限/r权限/w权限。
改变拥有者/所属组
语法:(sudo) chown/chgrp 新拥有者/组 文件
chgrp
umask
语法:umask 权限值
umask查看或修改文件掩码
- 新建文件夹默认权限 = 666
- 新建目录文件默认权限 = 777
但实际上所创建的文件和目录,看到的权限往往不是上面的值。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,实际创建出来的文件权限是:mask & ~umask
凡是在umask出现的权限位,都不应该在起始权限中出现
file
语法:file [选项] 文件或目录
file辨识文件类型
- -c 详细显示指令过程,便于排错或分析程序执行的情形
- -z 尝试去解读压缩文件的内容
使用sudo分配权限
(1)修改/etc/sudoers文件分配文件
格式:接受权限的用户登录的主机 = (执行命令的用户) 命令
(2)使用sudo调用授权命令
粘滞位
语法:chmod +t
粘滞位是给目录设置的,防止删除
当一个目录被设置为粘滞位,则该目录下的文件只能由
- 超级管理员删除
- 该目录的所有者删除
- 该文件的所有者删除