1. shell命令以及运行原理

2. Linux权限的概念
2.1 su命令

2.2 adduser和deluser命令
这两种命令之间的区别:
adduser:会自动为创建的用户指定主目录、系统shell版本,会在创建时输入用户密码。
useradd:需要使用参数选项指定上述基本设置,如果不使用任何参数,则创建的用户无密码、无主目录、没有指定shell版本。

userdel只删除用户,而deluser连同用户主目录一起删除,如果创建时主目录已经存在,即主目录不属于当前要删除的用户,则无法删除主目录。因此删除用户时也推荐使用deluser.
2.3 sudo命令
命令: sudo 指令
功能: 提升当前指令的权限。
例如,我现在要以一名普通用户的身份,修改另一个普通用户的账号密码。
但是我们又发现一个问题,我们当前的普通用户并不在 root 的信任列表里,只有把当前普通用户设置在 root 的信任列表里才可以修改其他普通用户的密码(好比 root 为群主,只有把群主信任的人设置为管理员,管理员才能获得相应的权限)
如何将普通用户添加到信任列表
(1).切换成超级用户
(2).输入 vim /etc/sudoers,翻到文件末尾,找到 Allow People in group wheel to run all command
(3).添加上自己的用户名,保存并退出( :wq! )
3. Linux权限管理
01.文件访问者的分类(人)
注意 :
1).文件拥有者,文件所属组,其他用户是一种角色,root 用户和普通用户是具体的人,可能充当拥有者,所属组,其他用户
2).Linux中,所有的用户都要隶属于某一个组,哪怕这个组只有你一个人(组名就是用户名)
为什么要有组存在 ?
假设有以下情景,某公司有两个小组在同一台Linux服务器上做相同的开发,两个小组明显是竞争关系,你所写的代码肯定不希望被另一个小组的人看到,因此,你可以把other的权限设为- - -,但如果只有文件拥有者和other的话,和你同组的同事想要看你的代码就不可以了(因为和你同组的同事也是other),所以,需要有文件所属组,你可以把你同组的同事设为 rwx。
02.文件类型和访问权限(事物属性)


03.文件权限值的表示方法


04.文件访问权限的相关设置方法


05. 改变文件/目录的拥有者和所属组
语法: chown 选项 用户名 文件名或目录名
功能: 修改文件/目录的拥有者。
常用选项: -R 递归修改目录文件的拥有者。
1). 修改文件/目录的拥有者需要root用户进行操作,若是普通用户则需要进行权限提升。
2).可以使用chown指令同时修改文件/目录的拥有者和所属组,将拥有者和所属组的用户名用冒号隔开即可。
语法: chgrp 选项 用户名 文件名或目录名
功能: 修改文件/目录的所属组。
常用选项: -R 递归修改目录文件的所属组。
注意: 修改文件/目录的所属组也需要进行权限提升
06. umask命令
我们在创建一个文件或目录时,都自动带有一个权限,文件的默认权限是0666,目录的默认权限是0777,第一位的0与特殊权限有关,不必深究,但我们创建出来的文件权限却是 664 ,目录权限却是 775,这是为什么呢?
原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask &~umask。
目录的权限

粘滞位
当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由
一、超级管理员删除
二、该目录的所有者删除
三、该文件的所有者删除
关于权限的总结
目录的可执行权限是表示你可否在目录下执行命令。如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件),而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限,所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。