三、权限
1. shell外壳
为什么要使用shell外壳
由于用户不擅长直接与操作系统直接接触和操作系统的易用程度、安全性考虑,用户不能直接访问操作系统。
什么是shell外壳程序
shell位于用户和内核之间。将用户的命令翻译给内核处理,同时,将核心的处理结果翻译给用户。
shell的具体工作模式
shell本质也是一个执行起来的程序(进程),系统启动期间,一直存在。对于 有风险,用户自定义 的指令,shell都是通过创建 子进程 的方式,让子进程去执行有风险的指令。对于 低风险、易执行 的指令,shell才会亲自执行。
2. Linux的用户
Linux下有两种用户:超级用户(root) 、普通用户 。
超级用户:可以再linux系统下做任何事情,不受限制
普通用户:在linux下做有限的事情。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。
使用 su + 用户名 可以切换用户,而切换成 root 用户则可以 su - 或者直接 su 。
普通用户A切换成普通用户B 需要输入 普通用户B 的密码。
如果我是普通用户,我 不想把自己变成 root 身份 ,但我又想以 root的权限 来执行一条命令,可以在命令前面加上 sudo 来达到 短暂提权 。
但是,如果普通用户使用自己的密码输入 sudo 就能拥有 root 权限,那 root 密码有何意义?细心的人可能已经发现了,我们上面的指令并没有跑成功,它说我这个用户不在 sudoers file 里,所以我们知道,想要提权是有条件的,如果一个用户存在 sudoers 配置文件里,才可以使用 sudo 就像白名单一样。
3. Linux权限管理
文件访问者的分类
文件和文件目录的所有者:u—User 拥有者
文件和文件目录的所有者所在的组的用户:g—Group 所属组
其它用户:o—Others other
文件类型和访问权限
由于 Linux一切皆文件 ,所以Linux操作对象的属性就是文件的属性,而文件的属性有 r(可读) w(可写) x(可执行) 三种。
我们知道了文件的属性权限了,该如何修改呢?可以使用 chmod 命令。当你想要修改某个文件的属性时,一般情况下需要是这个文件的拥有者才能更改。
chmod 可以 ugoa ± FILE,也可以使用三位八级制,比如八进制的777就是二进制的 111 111 111 ,即拥有者有rwx权限,所属组有rwx权限,other有rwx权限。
注意:Linux中文件能否执行需要①就有可执行权限。②它真的是可以执行的文件。就是需要 权限 + 能力。
知识点:Linux的权限只会匹配一次,如果文件的 拥有者和所属组是一个人 ,但是拥有者没有可执行权限,所属组有可执行权限,但是会优先匹配到拥有者,且仅会匹配一次,所以无法执行文件。
权限在 root 下,形同虚设。所以慎用 root 账号。