Linux文件目录的权限

Posted Sherry-77

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux文件目录的权限相关的知识,希望对你有一定的参考价值。

文章目录

Linux权限的概念

Linux下有两种用户:超级用户(root)和普通用户(user)

  • 超级用户:可以在Linux下做任何事
  • 普通用户:权限有限
  • 超级用户的命令提示符为**#,普通用户的命令提示符为$**

普通用户->超级用户:su / su -
超级用户->普通用户:su user_name

Linux文件权限

文件访问者分类

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

文件类型和访问权限

(1)文件类型

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

(2)基本权限

  • 读(r/4):对文件而言,具有读取文件内容的权限;对于目录而言,具有浏览该目录信息的权限
  • 写(w/2):对文件而言,具有修改文件内容的权限;对于目录而言,具有删除和移动目录内文件的权限
  • 执行(x/1):对文件而言,具有执行文件的权限;对于目录而言,具有进入目录的权限
  • - 表示不具有任何权限

文件权限值的表示方法

(1)字符表示方法

Linux表示说明Linux表示说明
r–只读-w-只写
–x只执行rw-可读可写
r-x可读可执行-wx可读可执行写
rwx可读可写可执行无权限

(2)8进制数值表示方法

权限符号二进制八进制
r1004
w0102
x0011
rw1106
rx1015
wx0113
rwx1117
---0000

文件权限的设置

(1) chmod

功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名
常用选项

  • R 递归修改目录文件的权限(只有root用户可以修改权限

chmod命令权限值的格式:
用户标识符 +/- 权限字符

  • + 向权限范围增加权限代号所表示的权限
  • - 向权限范围取消权限代号所表示的权限
  • = 向权限范围赋予权限代号所表示的权限
  • u 拥有者
  • g 拥有者同组用
  • o 其它用户
  • a 所有用户

实例:

三位8进制数字
实例

(2)chown
功能:修改文件的拥有者
格式:chown [参数] 用户名 文件名
实例

此时运行chown显示权限不够,每次切换root用户非常麻烦,因此此时介绍一个新方法——sudo

这里有些小伙伴无法执行sudo命令,因为还没有将用户添加进root的sudoers文件中,方法:

  • su
  • echo ‘username ALL=(ALL) ALL’ >> /etc/sudoers

username为要加入sudoers的用户

(3)chgrp
功能:修改文件或目录的所属组
格式:chgrp [参数] 用户组名 文件名
常用选项

  • -R 递归修改文件或目录的所属组

实例

(4)umask
功能:查看或修改文件掩码
格式:umask 权限值
说明

  • 新建文件夹默认权限 = 0666
  • 新建目录默认权限 = 0777
  • 假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask
  • 将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002。

实例

Linux目录权限

  • 可执行权限:如果目录没有可执行权限,则无法cd到目录中
  • 可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.
  • 可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件.

实例

但是问题来了,只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限.
结论:

  • 如果目录对other具有w权限,other可以删除目录下任何一个文件
  • 如果目录对other没有w权限,other不可以删除目录下的任何文件

需求:

  • other可以在特定目录下创建文件,但不可以删掉自己的文件。

由此引入粘滞位的概念。

粘滞位

通过sudo chmod o+t 设置目录的粘滞位

当一个目录被设置为粘滞位,该目录下的文件只能被超级管理员该目录所有者、该文件所有者删除。

权限的总结

  • 目录的可执行权限是表示你可否在目录下执行命令
  • 如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd进入目录, 即使目录仍然有读权限
  • 如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限,所以即使可以执行ls命令,但仍然没有权限读出目录下的文档

linux 06 linux中的用户权限文件权限与目录权限

  1、用户及用户组的概念:

    1.文件所有者

    2.用户组

    3.用户

  以root登录Linux之后,执行ls -al,会看到有关文件属性的信息

  -rw-r--r--,第1个字符代表这个文件是“目录,文件或链接文件等”,[d]代表目录,[-]代表文件,[l]则是连接文件。接下来的字符3个一组分别代表文件所有者权限、同用户组权限、其他非本用户组的权限。

  2、改变文件属性与权限

  改变文件所属用户组:chgrp

    chgrp  commonuser install.log

  改变文件所有者:chown

    chown [-R] 账号名称 文件或者目录   (R代表更改目录内所有文件的情况)

    chown commomuser install.log

    将install.log的所有者和用户组改为root

    chown root:root install.log

    chown 也能单纯的修改用户组 chown .commomuser install.log

  改变权限:chmod

  方法一:数字类型改变文件权限

  权限可以用数值代表:r:4、 w:2 、 x:1
    chmod [-R] xyz 文件或者目录

    chmod 777 .bashrc

  方法二:

  符号类型改变文件权限:user、group、others 三种身可以用u、g、o代表,而且a 代表all即全部身份

  chmod u=rwx,go=rx .bashrc
  chmod u=rwx,g=rx,o=r filename

  若不知道原先文件的属性,只想要增加.bashrc这个文件的每个人均可写入的权限则:

  chmod a+w .bashrc

  去掉执行属性:
  chmod a-x .bashrc

  3、权限分为目录的权限和文件的权限

    对文件来讲,权限的属能为:

    r:可以读取文件的实际内容

    w:可以编辑、或者修改该文件的内容,但不能删除该文件

    x:该文件具有可以被系统执行的权限

    对目录来讲,权限的属能为:

    r:可以读取目录的内容

    w:可以修改目录的内容,包括删除该目录内的文件

    x:可以进入该目录,使其成为自己的工作目录

    若要开放目录给任何人浏览,应该至少也要给予r及x的权限(不给x则目录信息无法完全显示),但w权限不可随便给!

    

  








以上是关于Linux文件目录的权限的主要内容,如果未能解决你的问题,请参考以下文章

权限管理(Linux运维)

权限管理(Linux运维)

权限管理(Linux运维)

Linux运维13:文件和目录属性命令

Linux运维笔记20180001-文件与目录管理权限

Linux运维学习笔记-文件权限知识总结