网站建设公开课,华文细黑做网站有版权吗,今天重大新闻国内最新消息,网站建设公司活动#x1f466;个人主页#xff1a;Weraphael ✍#x1f3fb;作者简介#xff1a;目前正在学习c和算法 ✈️专栏#xff1a;Linux #x1f40b; 希望大家多多支持#xff0c;咱一起进步#xff01;#x1f601; 如果文章有啥瑕疵#xff0c;希望大佬指点一二 如果文章对… 个人主页Weraphael ✍作者简介目前正在学习c和算法 ✈️专栏Linux 希望大家多多支持咱一起进步 如果文章有啥瑕疵希望大佬指点一二 如果文章对你有帮助的话 欢迎 评论 点赞 收藏 加关注 目录 一、Linux下用户的分类1.1 用户切换 二、用户和用户组2.1 文件拥有者概念2.2 用户组概念2.3 其他人概念 三、文件权限3.1 文件属性3.2 修改文件权限3.2.1 数字类型修改文件权限3.2.2 符号类型修改文件权限 3.3 修改文件所属组3.4 修改文件拥有者3.5 默认权限3.5.1 权限掩码 四、目录权限五、粘滞位5.1 引入5.2 如何设置粘滞位 一、Linux下用户的分类
Linux下有两种用户超级用户root、普通用户
超级用户基本不权限的约束。命令提示符是#普通用户受权限的约束。命令提示符是$
1.1 用户切换
普通用户 -超级用户 【命令】 su / su - 【说明】 输入的密码是超级用户的密码退回普通用户exit or 热键Ctrl d 超级用户 - 普通用户 【命令】 su 普通用户名 【说明】 不要密码从这可以看出超级用户基本不权限的约束 普通用户 - 另一个用户 【命令】 su 另一个用户名 【说明】 密码需要输入另一个用户的密码 这里就不为大家演示了
对某条指令提权不用转化root 【命令】 sudo 某条指令 【说明】输入的是普通用户的密码 大家可能会有疑问我们对指令进行提权为什么输入的是普通用户的密码
大家可以先在自己的命令行解释器输入sudo 随便一个指令其实目前我们普通用户没办法执行sudo因为系统默认不信任你。除非未来将普通用户添加到系统的信任名单里。由于目前知识有限后期带领大家配置。
二、用户和用户组
2.1 文件拥有者概念
初次接触Linux的同学会觉得很怪异为什么Linux会有这么多用户还分什么用户组
其实这个“用户与用户组”的功能可是相当健全并且好用的一个安全防护措施。这是因为Linux是一个多人多任务的系统因此可能有很多人同时使用同一个服务器来进行开发这就涉及到每个人的隐私权有的人不喜欢把自己写的代码给别人看因为自己写的代码时常会有bug就像每个人的内裤一样有漏洞就不喜欢给别人看因此文件拥有者的角色就显得相当重要。
2.2 用户组概念
用户组是最有用的功能之一就是当你在团队进行协同开发的时候。举例来说假设你和你的舍友一起进入到腾讯实习。你在项目A组而你的舍友在项目B组。这两个组的项目是王者荣耀哪个组写的好就采用哪个组。假设某一天你的老板要检查你们组的代码写的怎么样但不能让项目B组看到你们组的文件内容此时该如何是好
因此是不是可以将老板拉入你们组用户组这样老板能看到整个组的开发进度而别的组看不到很方便吧
这样说可能还不容易理解。再举一个例子假设有一家人爸爸叫张三家里有三兄弟三个人都有自己的房间并且拥有一个客厅。
用户的意义由于三兄弟都有自己各自的房间。所以他们不能闯入别人的房间窥视他人的隐私。用户组的概念由于客厅是共用的三兄弟可以在客厅做任何事情因为大家都是一家人。
这样说大家应该有点了解了吧张三家就是所谓的用户组至于三兄弟就是用户而这三个用户是在同一个用户组里。而三个用户虽然在同一个用户组内但是有各自的私人空间而设置用户组共享则可让大家共同分享。
2.3 其他人概念
有一个叫李逵它是三兄弟中张飞的同班同学那么李逵就可以通过张飞进入张三的家也可以通过张飞的同意进入他的房间。因此李逵就是所谓的其他人Others
因此我们可以知道在Linux里面任何一个文件都具有用户User、所属组Group以及其他人Other三种身份我们可以将以上的说明用下面的图来解释 不过这里有一个特殊的人物要介绍那就是神父。神父具有神力它想干嘛就可以干嘛。不打哑谜了这个人其实在Linux中担任root。所以要小心这个root可是神父
三、文件权限
3.1 文件属性
在上篇博客讲过查看文件属性的指令是ls -al或者是ll 现在我们来拆分以上字符串到底是什么意思 第一栏代表文件的类型和权限。这个地方最需要注意仔细看的话你应该可以发现这一栏其实有十个字符。 第一个字符代表这个文件是目录或文件等。其中a.out的第一个字符是-因此是文件。 接下来的字符中以三个位一组且均为[rwx]的三个参数的组合。其中[r]代表可读、[w]代表可写、[x]代表可执行。要注意的是这三个权限的位置不会改变如果没有权限就会出现减号[-]而已。 实际例子
以下我在普通用户wj中创建普通文件test.c并往里头写你好 testUser并且文件的拥有者和所属组都是wj那么另一个普通用户testUser能否看文件呢 答案是可以的首先testUser不是拥有者也不是所属组那就是其他人而文件test.c对于其他人的权限只有r--因此是可以读的但是不能写 那么现在还有一个问题超级用户root可以读和写吗 通过以上实验我们发现超级用户可以既可以查看、也可以修改其实也可以执行这里就不演示了。那有的人就很奇怪root既不是拥有者也不是所属组怎么可能可以做得到
别忘了超级用户root可是神父具有神力可以掌握一切
3.2 修改文件权限
文权限修改使用的命令是chmodchange mode。但是权限的设置方法有两种分别可以使用数字或者符号来进行权限修改。
3.2.1 数字类型修改文件权限
Linux文件的基本权限就只有9个分别是拥有者owner、所属组group、其他人others三种身份各有自己的读read、写write、执行execute权限。假设现在有一个文件权限字符是[rwxrwxrwx]这9个权限是三个三个一组。其中我们可以使用数字来代表各个权限各权限的数组对照表如下
r4 (2^2)
w2 (2^1)
x1 (2^0)每种身份owner、group、others各自的三个权限r、w、x数字是需要累加的例如当权限为[rwxrwx---]数字则是
owner rwx 4 2 1 7
group rwx 4 2 1 7
others --- 0 0 0 0所以等下我们设置权限时该文件的权限数字就是770修改权限的命令chmod的语法是
chmod [权限数字] [文件或目录]举个例子假设现在有一个普通文件的权限是[rw-rw-r--]现在我要让每种身份的人都可以执行此文件[rwxrwxr-x]那么权限数字就是775 3.2.2 符号类型修改文件权限
因为九个权限分别是user、group、others三种身份那么我们就可以借u、g、o来代表三种身份的权限。此外a则代表all也就是全部人的身份。那么读写的权限就可以写成r、w、x。因此符号类型修改文件权限的语法如下
chmod [身份] [设置符号] [权限] [文件或目录]
// 身份选项u、g、o
// 设置符号(加入)、-(移除)
// 权限r、w、x我们可以来实践一下假设有一个文件test.txt的权限为[-rwx---r-x]那我现在我想让所属组和其他人都具有r、w、x权限那么命令应该为chmod grwx,orwx test.txt 接下来我再假设所有人包括拥有者都不许对test.txt有读、写和可执行权限 3.3 修改文件所属组
修改文件拥有者的基本指令是chgrpchange group。注意要被修改的组名必须在/etc/group文件中存在才行 假现将text.txt文件的所属组改为tempuser(此用户我已经创建好了) 奇怪为什么提示说“操作不被允许”我们知道你拿一个东西需要征得别人的允许同样的你给别人一个东西也需要征得别人的允许。因此现在有一个暴力的方法将自己提升为神父root别人不要也得要 3.4 修改文件拥有者
修改文件拥有者的基本指令是chownchange owner要注意的是用户必须是已经存在系统中的账号也就是在/etc/passwd这个文件中有记录的用户名称才能被修改 假设你已经是root身份了现将text.txt文件的拥有者改为tempuser(此用户我已经创建好了) 那么现在我要将拥有者和所属组全部改回wj又该怎么做呢难道要分别使用两个指令来更改会不会麻烦了些 3.5 默认权限
无论是创建文件还是创建目录系统都会分配默认权限
首先给出结论
系统默认给普通文件的起始权限是666即[rw-rw-rw-]默认给目录的起始权限是777即[rwxrwxrwx] 奇怪那么为什么创建出来的默认权限和我们说的不一样
3.5.1 权限掩码
这是因为Linux存在权限掩码umask 在CentOS 7.6中默认的权限掩码为0002平台不同权限掩码可能存在差异
需要注意的是umask的数字指的是该默认值需要减掉的权限
什么意思呢以文件为例在上面我们说过了系统默认给普通文件的起始权限是666转换为二进制1010011010默认的权限掩码转换为二进制0000000010。由于umask的数字指的是该默认值需要减掉的权限因此666的二进制从右向左的第二个1需要去掉因此最后的结果是110110100转换为权限rw-rw-r--这下刚刚好也解释完了
但是默认权限的计算方式是以下这样的
默认权限的计算方式默认权限 起始权限 (~umask) 目录默认权限的计算也是一样的这里就不为大家演示了
四、目录权限
目录的基础权限也是r(读)、 w(写)、 x(可执行)
r是否允许查看该目录中的内容 w是否允许当前目录进行创建、更改、删除 x是否允许用户进入当前目录 五、粘滞位
5.1 引入
大家想想有多个人在一个共享目录里分享文件那么里头的人是否能删除你的文件呢 竟然可以删除那这就很可怕了。
假设一个公司有一个共享目录供多个员工存储和共享文件。如果没有粘滞位某个员工误删了其他员工的文件那么对于其他员工来说他们将无法恢复自己的文件也无法确定是谁删除了自己的文件这会导致很大的不便和困扰。
因此才有了粘滞位一般是给共享目录设置当一个目录被设置粘滞位了后只有文件所有者和超级用户root才能够删除或重命名该目录下的文件其他用户则不能进行这些操作。
5.2 如何设置粘滞位
使用chmod命令可以设置和取消目录的粘滞位。对于一个目录设置粘滞位的命令为
chmod t [共享目录]取消粘滞位的命令为
chmod -t [共享目录]以后在这种共享目录中别的用户就无法删除里头的文件。