Linux权限的概念

在学习Linux权限之前,我们需要首先了解一下关于用户的知识。在Linux下有两种用户,分别是root用户普通用户。root用户就好比充钱的VIP一样,可以在Linux下做任何事情,几乎不受限制,我们也称其为超级用户。而普通用户一般只能在自己的工作目录下(/home/xxx)工作,以及在系统上做有限的工作。

小提示:

         换言之,所有的权限的概念都是用来限制普通用户的,而root用户几乎不受限制。因此,接下来所将的有关权限的知识主要是针对普通用户的。这时候你可能会说,那么我一直都用root用户的话,不就不需要学习权限方面的知识了吗?答案显而易见是错误的。

因为root用户基本不受权限的限制,这样在使用的阶段就很容易出错。很有可能误删系统文件导致linux无法使用,或者破坏文件导致写好的程序影响用户的正常使用。总之,无论如何我们都应该了解Linux权限,平常也要使用普通用户操作,方便更好地掌握Linux。

那么应该怎么切换用户呢?只需要su指令就可以了。

Linux权限的概念也很简单,通俗来说权限就是: 某一件事情是否允许被某个人做。其中,某一件事情就对应Linux中的各种文件,而人就是指使用Linux的用户。权限就是用来约束一个人或者一个群体的。接下来我就讲从用户属性文件属性两方面谈一谈Linux权限。

Linux权限管理

文件访问者的分类

正如上文所说,权限是用来约束用户对文件的操作。那么肯定不能一下子约束所有人,或者一个人一个人地约束,因此就需要将用户分成下面三类:

  • 文件和文件目录的所有者: u---owner
  • 文件和文件目录的所有者所在的组的用户: g---Group
  • 其它用户: o---Others (除去u和g的其他人都算其他用户)

文件类型(事物属性)

文件可以分为下面几种类型:

  • d:目录
  • -:普通文件
  • l:软链接(类似Windows的快捷方式)
  • b:块设备文件(例如硬盘、光驱等)
  • p:管道文件
  • c:字符设备文件(例如屏幕等串口设备)
  • s:套接口文件

其中最常见的就是目录和普通文件。

基本权限

  • 读(r): Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
  • 写(w): Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
  • 执行(x):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
  • “—”表示不具有该项权限

现在我们就可以读懂ls查看文件时显示的信息了。

同时注意权限的具体到每个成员:

文件权限值的表示方法

a.字符表示法

b.8进制表示法

因为对于权限来说只存在有和没有两种状态,所以可以用二进制表示是否有某一个权限。有该权限用1表示,无该权限用0表示,因此三个权限合在一个就可以用八进制表示了。

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

在了解权限是什么之后,接下来我开始讲解权限是怎么使用的。

如何改变文件的访问权限

语法: chmod 选项 权限 文件名或目录名
功能: 设置文件的访问权限。
常用选项: -R 递归修改目录文件的权限。

chmod指令权限值的格式:
格式一: 用户符号 +/-/= 权限字符
1)+:向权限范围增加权限代号所表示的权限。
2)-:向权限范围取消权限代号所表示的权限。
3)=:向权限范围赋予权限代号所表示的权限。
用户符号:
1)u:拥有者。
2)g:所属组。
3)o:other。
4)a:所有用户。

可以同时设置不同类用户的访问权限,只需要用逗号隔开。

如何改变文件的拥有者

语法: chown 选项 用户名 文件名或目录名
功能: 修改文件的拥有者。
常用选项: -R 递归修改目录文件的拥有者。

注意: 修改文件的拥有者需要root用户进行操作,若是普通用户则需要进行权限提升。

也可以使用chown指令同时修改文件的拥有者和所属组,将拥有者和所属组的用户名用冒号隔开即可。

如何改变文件的所属组

语法: chgrp 选项 用户名 文件名或目录名
功能: 修改文件的所属组。
常用选项: -R 递归修改目录文件的所属组。

如何修改文件的掩码

我们查看新建的文件和目录,它们都有自己默认的权限。

实际上,新建文件的默认权限为0666,新建目录的默认权限为0777。其中第一位的0与特殊权限有关,我们这里不必深究,而后面三位就是权限的八进制数值表示方法,我们将其翻译为字符表示方法。

但实际上你会发现,你所创建出来的文件和目录的权限值往往不是我们所翻译出来的值,原因就是创建文件和目录的时候还要受到umask的影响,假设默认权限是mask,则实际创建出来的文件权限是:mask&(~umask)

语法: umask 权限值
功能: 查看或修改文件掩码。

我们可以通过指令umask查看文件默认掩码。

因此我们实际创建出来的文件和目录的权限值还需要进行进一步换算才能得出。首先我们将掩码的的后三位八进制换算为二进制,然后对其进行按位取反。然后将之前的新建文件的默认权限值和新建目录的默认权限值分别与其进行按位与操作,得到的就是我们创建出来的文件和目录的权限值。

粘滞位

粘滞位的引入

现在我已经讲解完了Linux权限的基本知识,于是我们开始运用权限来管理系统了。首先,root用户创建了一个tmp目录,提供给其他的普通用户创建临时文件,但使用了一段时间之后却出现了一些问题,Linux权限似乎存在一些不合理的地方:

  是什么原因导致的以上情况呢?

因为hrimkn起初创建的两个文件都是在My_tmp目录中,用户Dcccn虽然没有这两个文件的写和执行权限,但是却有My_tmp目录文件的所有权限,因此Dcccn可以随意删除hrimkn的文件。这种情况不就违反了Linux权限的初衷了吗?因此,便有了粘滞位的概念。

粘滞位的使用

语法: chmod +t 目录名
功能: 给目录加上粘滞位。

当一个用户将某一个目录加上粘滞位后,该目录的权限值的最后一位变为字符“t”。

 注意:因为矛盾是由目录文件权限产生的,所有粘滞位只能加给目录文件,与普通文件没有关系。

当一个目录被设置为粘滞位,则该目录下的文件只能由:
1)超级用户删除。
2)该目录的拥有者删除。
3)该文件的拥有者删除。

注意: 虽然目录被加上了粘滞位,但如果用户有该目录的可写权限,则不影响其在该目录下创建文件

【Linux】——权限详解相关推荐

  1. Linux权限详解(chmod、600、644、700、711、755、777、4755、6755、7755)

    权限简介 Linux系统上对文件的权限有着严格的控制,如果想对某个文件执行某种操作,必须具有对应的权限方可执行成功. Linux下文件的权限类型一般包括读,写,执行.对应字母为 r.w.x. Linu ...

  2. Linux权限详解(chmod、600、644、666、700、711、755、777、4755、6755、7755)

    权限简介 Linux系统上对文件的权限有着严格的控制,用于如果相对某个文件执行某种操作,必须具有对应的权限方可执行成功. Linux下文件的权限类型一般包括读,写,执行.对应字母为 r.w.x. Li ...

  3. linux中权限详解,linux 权限详解

    转载自博客园: 用户组 在linux中的每个用户必须属于一个组,不能独立于组外.在linux中每个文件有所有者.所在组.其它组的概念 - 所有者 - 所在组 - 其它组 - 改变用户所在的组 所有者 ...

  4. linux操作系统权限详解,Linux权限详解

    权限 权限是操作系统用来限制对资源访问的机制.权限一般分为读.写.执行.每个用户都有特定的权限.所属用户.所属组,通过这样的机制来限制哪些用户.哪些组可以对待特定的文件进行怎么样的操作. 每个进程都是 ...

  5. Linux学习总结(81)—— Linux 权限详解

    前言 我们在使用 Linux 的过程中,或多或少都会遇到一些关于使用者和群组的问题,比如最常见的你想要在某个路径下执行某个指令,会经常出现这个错误提示 .permission denied.反正我大概 ...

  6. Linux权限详解(chmod 777)

    权限简介 Linux下文件的权限类型一般包括读,写,执行.对应字母为 r.w.x. Linux下权限的粒度有 拥有者 .群组 .其它组 三种.每个文件都可以针对三个粒度,设置不同的rwx(读写执行)权 ...

  7. linux .. 权限详解,Linux用户及权限详解(示例代码)

    加密方法: 对称加密:加密和解密使用同一个密码 公钥加密:每个密码都成对儿出现,一个为私钥(secret key),一个为公钥(public key) 单向加密,散列加密:提取数据特征码,常用于数据完 ...

  8. Linux权限详解.

  9. linux文件权限详解

    linux文件权限详解 一.文件和目录权限概述 在linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录. 通过设定权限可以从以下三种访问方式限制访问权限: ...

  10. 每天一个linux命令(2):文件权限详解

    Linux文件权限详解 文件和目录权限概述 在linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录. 通过设定权限可以从以下三种访问方式限制访问权限:只允 ...

最新文章

  1. CoreData 数据库表里面一些字段属性
  2. 对应用程序启动时所有方法的调用顺序分析
  3. AttributeError: ‘Model‘ object has no attribute ‘_get_distribution_strategy
  4. 录屏、直播中的鼠标键盘演示神器PointFocus
  5. 把MSSQL2005转换成MSSQL2000
  6. 清空缓存的命令_最实用的6个网络命令,网络故障不求人
  7. tomcat,eclipse,sts绿色运行
  8. java encode 空格_javaWeb中URLEncoder.encode空格问题
  9. 云际阔,总相连——Let's Connect!
  10. 台式电脑键盘字母乱了_电脑键盘的详细介绍,想懂点电脑必看
  11. 蓝桥杯入门训练Fibonacci数列
  12. Linux Guard Service - 守护进程分裂
  13. pynq z1+ov5640
  14. 链接mysql 504_phpMyAdmin错误代码:504 MySQL查询
  15. 有什么好用的测量仪器尺子?手机也能其妙满足
  16. python 声音基频f0_ASR中常用的语音特征之FBank和MFCC(原理 + Python实现)
  17. ojbk的sas proc 过程之transpose
  18. Chrome扩展学习Demo(三):将浏览器地址栏的网址转换为二维码
  19. GZIP,XZ,LZO,BZIP2,LZMA压缩比较
  20. CK+人脸表情数据库地址

热门文章

  1. (转)最时兴的开源框架—序
  2. 期货投资分析学习笔记(二)
  3. 苹果x怎么关机_价值300元的苹果mac重装系统教程,免费赠送给你收藏起来
  4. FSC在全球范围内增强品牌相关度,促进公众理解
  5. 华为HCIE RS笔记-12以太网技术DHCP
  6. 【二分查找】codeforces:Enduring Exodus
  7. js小数点toFixed
  8. HTML5的disabled属性
  9. elementui-button没写disabled属性自动加入disabled属性(记录)
  10. 部分阿里巴巴员工转让集团期权 每股约10美元