Linux之权限管理解读

 更新时间:2025年03月07日 16:13:01   作者:新绿MEHO  
本文介绍了Linux下的超级用户和普通用户以及它们的命令提示符,接着,详细解释了权限的概念、访问者的分类、文件类型与访问权限以及文件权限值的表示方法,最后,文章讨论了文件权限的设置方法,包括chmod、chown和chgrp命令,并列举了一些常见权限问题

Linux 下有两种用户:超级用户( root )、普通用户。

  • 超级用户:可以再linux系统下做任何事情,不受限制
  • 普通用户:在linux下做有限的事情。

超级用户的命令提示符是“#”,普通用户的命令提示符是“$”

  • 命令:su [用户名]

理解权限,分两个方面来理解,一方面它是针对谁的,另一方面它具有哪些属性。

1.访问者的分类

  • 文件和文件目录的所有者:u---User
  • 文件和文件目录的所有者所在的组的用户:g---Group
  • 其它用户:o---Others

2.文件类型与访问权限

文件类型

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

基本权限

  • i. 读( r/4 ): Read 对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
  • ii. 写( w/2 ): Write 对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
  • iii. 执行( x/1 ): execute 对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限

iv.“—” 表示不具有该项权限

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

字符表示法

8进制表示法

4.文件权限的设置方法

a)chmod

  • 功能: 设置文件的访问权限
  • 格式: chmod [ 参数 ] 权限 文件名
  • 说明:只有文件的拥有者和 root 才可以改变文件的权限

① 用户表示符 +/-= 权限字符

  • +:向权限范围增加权限代号所表示的权限
  • -:向权限范围取消权限代号所表示的权限
  • =:向权限范围赋予权限代号所表示的权限

用户符号:

  • u:拥有者
  • g:拥有者同组用
  • o:其它用户
  • a:所有用户

举例:

②三位 8 进制数字

举例:

b)chown

  • 功能 :修改文件的拥有者
  • 格式 : chown [ 参数 ] 用户名 文件名

举例:

c)chgrp

  • 功能 :修改文件或目录的所属组
  • 格式 : chgrp [ 参数 ] 用户组名 文件名

举例:

当然,可以修改拥有者的同时,修改所属组

5.常见权限问题

1.进入一个目录,需要什么权限?

通过观察,不难发现,进入目录,需要 x 权限。

2.umask

为什么创建一个目录和普通文件,目录对应的权限分别为 775(rwx | rwx | r-x)

普通文件对应的权限为 664 (rw- | rw- | r--),为什么呢?

  • 一个目录被创建,起始权限是从 777 开始的;
  • 一个普通文件被创建,起始权限是从 666 开始的。

但是 777 与 775 并不同,666 与 664 也不同,为什么呢?-----这里引入 umask(权限掩码)

目录或者文件被创建,最终的权限 = 起始权限 & (~ umask)

即,先对 umask 按位取反,然后与 起始权限 按位与,结果就是最终权限。

下面,我们只针对 o(Other) 进行验证:

3.粘滞位

我们发现, o(Other) 列最后一个字母是 t,这个是什么意思呢?------这个就是粘滞位

那么粘滞位有什么用呢?

我们惊奇的发现,在 根目录 下的一个目录中创建的一个普通文件,虽然 wmh(普通用户)不能进行写入,对应的权限是 r-- ,不能写入能理解,但是居然能删除。

这里我想说的是,目录中的文件,能不能被删除,不是看文件针对某个对象有没有 w 权限,而是该文件所在的目录有针对该对象,有没有 w 权限。

引入粘滞位的目的就是,当多个用户在同一个目录中创建,修改文件时,本来属于 o(Other) 用户,并没有对应的修改,或者查看,或者删除的权限,但是该文件所在的目录针对 o(Other) 有 w 权限,这就导致了虽然 o(Other) 不能查看,修改,删除,但是却真的能删除。

引入粘滞位以后,该文件就不能被删除了,达到了谁创建的谁才能删除(root 除外,因为root无所不能)。

我们发现,引入粘滞位后,属于o(Other) 的 wmh 删除不了了。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • CentOS 6.5平台本地YUM配置的方法

    CentOS 6.5平台本地YUM配置的方法

    这篇文章主要介绍了CentOS 6.5平台本地YUM配置的方法,较为详细的分析了CentOS本地YUM配置的具体步骤、相关命令与使用技巧,需要的朋友可以参考下
    2018-04-04
  • Linux read命令的使用

    Linux read命令的使用

    这篇文章主要介绍了Linux read命令的使用,帮助大家更好的理解和学习Linux,感兴趣的朋友可以了解下
    2020-08-08
  • Ubuntu系统下扩展LVM根目录的方法

    Ubuntu系统下扩展LVM根目录的方法

    这篇文章主要给大家介绍了关于Ubuntu系统下扩展LVM根目录的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-05-05
  • tomcat服务器如何配置字符集为utf-8彻底解决中文乱码的问题详解

    tomcat服务器如何配置字符集为utf-8彻底解决中文乱码的问题详解

    这篇文章主要给大家介绍了关于tomcat服务器如何配置字符集为utf-8彻底解决中文乱码问题的相关资料,文中先对字符集进行了简单的介绍,然后给大家详细介绍了解决的方法,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
    2018-01-01
  • 详解Linux防火墙iptables禁IP与解封IP常用命令

    详解Linux防火墙iptables禁IP与解封IP常用命令

    这篇文章主要介绍了详解Linux防火墙iptables禁IP与解封IP常用命令,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • linux安装xmind的方法步骤

    linux安装xmind的方法步骤

    这篇文章主要介绍了linux安装xmind的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • Linux下查询外网IP的几种方法总结

    Linux下查询外网IP的几种方法总结

    这篇文章主要介绍了Linux下查询外网IP的几种方法总结的相关资料,需要的朋友可以参考下
    2017-03-03
  • Linux中服务器软件为什么需要编译安装

    Linux中服务器软件为什么需要编译安装

    这篇文章主要介绍了Linux中服务器软件为什么需要编译安装,在什么情况下需要编译安装,需要的朋友可以参考下
    2014-02-02
  • linux的sftp复制传输文件方式

    linux的sftp复制传输文件方式

    这篇文章主要介绍了linux的sftp复制传输文件方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • Apache ab并发负载压力测试实现方法

    Apache ab并发负载压力测试实现方法

    Apache的ab命令模拟多线程并发请求,测试服务器负载压力,也可以测试nginx、lighthttp、IIS等其它Web服务器的压力
    2019-09-09

最新评论