文件、目录权限和所有者

简介:用户对一个文件或目录具有访问权限,这些访问权限决定了谁能访问,以及如何范围这些文件和目录。通过设置权限可以限制或允许以下三种用户访问:

  • 文件的用户所有者(属主)
  • 文件的组群所有者(用户所在组的同组用户)
  • 系统中的其他用户

在linux系统中,每一位用户都有对文件或目录的的读取、写入和执行权限。

  • 第一套权限控制访问自己的文件权限,即所有者权限
  • 第二套权限控制用户组访问其中一个用户的文件的权限。
  • 第三套权限控制其他所有用户访问一个用户的文件的权限。

这三套权限赋予用户不同类型(即用户所有者、组群所有者和其他用户)的读取、写入及执行权限,这就构成了一个有9种类型的权限组。

设置文件和目录基本权限
基本权限简介

使用ls -l命令可以显示文件和目录的详细信息,其中包括文件和目录的权限。如下:

[root@localhost ~]# ls -l /root
total 156
-rw-r--r--. 1 root root 0 Jun 22 23:40 123.png}
-rw-r--r--. 1 root root 8 Jun 28 22:00 aa
-rw-r--r--. 1 root root 282 Jul 23 18:47 abc
-rw-r--r--. 1 root root 10240 Jul 23 18:47 abc.tar
-rw-r--r--. 1 root root 0 Jul 23 18:59 abc.tar.bz2
-rw-r--r--. 1 root root 243 Jul 23 18:54 abc.tar.gz
-rw-r--r--. 1 root root 300 Jul 23 19:07 abc.tar.xz
-rw-------. 1 root root 1260 Jun 9 14:21 anaconda-ks.cfg
-rw-r--r--. 1 root root 12 Jul 17 18:27 ao
-rw-r--r--. 1 root root 82 Jul 17 18:47 b
-rw-r--r--. 1 root root 12 Jul 17 18:40 bc
-rw-r--r--. 1 root root 41 Jul 17 18:46 bf
dr-xr-xr-x. 5 root root 4096 Jun 22 23:21 boot
-rw-r--r--. 1 root root 128 Jul 19 19:06 continue
-rw-r--r--. 1 root root 47 Jun 23 07:11 cs1.log
-rw-r--r--. 1 root root 19 Jun 23 07:10 cs.log
-rw-r--r--. 1 root root 0 Jul 23 18:47 d
-rw-r--r--. 1 root root 8 Jun 28 21:49 d1
-rw-r--r--. 1 root root 8 Jun 28 21:49 d2
-rw-r--r--. 1 root root 95 Jul 18 18:25 date
-rw-r--r--. 1 root root 0 Jul 19 18:48 empty
-rw-r--r--. 1 root root 5 Jun 28 20:49 file1
-rw-r--r--. 1 root root 6 Jun 28 20:50 file2
-rw-r--r--. 1 root root 63 Jul 19 20:41 for
-rw-r--r--. 1 root root 4287 Jun 22 23:15 grub
-rw-r--r--. 1 root root 4287 Jun 22 23:18 grub2.cfg
-rw-r--r--. 1 root root 0 Jun 23 03:52 hello.doc
-rw-r--r--. 1 root root 209 Jul 19 21:34 hk
-rw-r--r--. 1 root root 15 Jun 29 03:11 httpd.conf
-rw-r--r--. 1 root root 282 Jul 17 18:50 kk
-rw-r--r--. 1 root root 29 Jun 28 22:02 kkk
drwxr-xr-x. 2 root root 6 Jun 29 03:13 mlocate
-rw-r--r--. 1 root root 6 Jul 17 18:33 mm
-rw-r--r--. 1 root root 28 Jun 23 07:14 mm.txt
drwxr-xr-x. 2 root root 39 Jun 22 23:43 mypic
drwxr-xr-x. 2 root root 43 Jul 19 09:57 myshell
drwxr-xr-x. 2 root root 6 Jun 22 22:27 newdir1
-rw-r--r--. 1 root root 12 Jun 29 21:38 notes
-rw-r--r--. 1 root root 227 Jul 19 21:13 number
-rw-r--r--. 1 root root 49 Jul 17 18:51 oo
drwxr-xr-x. 2 root root 6 Jul 23 08:00 packages
drwxr-xr-x. 2 root root 17 Jul 23 19:10 root
-rwxr--r--. 1 root root 279 Jul 19 19:33 score
-rw-r--r--. 1 root root 318 Jul 19 19:58 selection
-rw-r--r--. 1 root root 88 Jul 19 20:52 sum
-rw-r--r--. 1 root root 0 Jun 23 07:06 textfile2
drwxr-xr-x. 2 root root 23 Jul 23 10:37 yum.repos.d
-rw-r--r--. 1 root root 135 Jul 19 21:03 zx

上图第2~10个字符当中的每3个为一组,左边3个字符表示用户所有者权限,中间3个字符表示组群所有者的权限,右边3个字符是其他用户的权限。

  • r(读取):对文件而言,该用户具有读取文件内容的权限;对目录来说,该用户具有浏览目录的权限。
  • w(写入):对文件而言,该用户具有新增、修改文件内容的权限;对目录来说,该用户具有删除、移动目录内文件的权限
  • x(执行):对文件而言,该用户具有执行文件的权限;对目录来说,该用户具有进入目录的权限。
  • -:表示该用户不具有该项权限
举例 描述
-rwx------ 用户所有者对文件具有读取、写入和执行权限
-rwxr--r-- 用户所有者具有读取、写入和执行权限,其他用户则具有读取权限
-rw-rw-r-x 用户所有者和组群所有者对文件具有读取、写入权限,而其他用户只具有读取和执行权限
drwx--x--x 目录的用户所有者具有读写和进入目录权限,其他用户能进入目录,却无法读取任何数据
drwx----- 除了目录的用户所有者具有所有的权限之外,其他用户对该目录没有任何权限

每个用户都拥有自己的主目录,通常集中放置在/home目录下,这些主目录的默认权限为rwx------。使用一下命令查看主命令权限

[root@localhost ~]# ls -l /home
total 0
drwx------. 2 it it 83 Jul 22 19:14 it
drwx------. 2 linux li 83 Jun 11 09:42 li
drwx------. 2 1002 1002 62 Jul 20 05:06 lisi
drwx------. 2 wangwu wangwu 62 Jul 20 05:06 opop
drwx------. 2 pp root 62 Jul 20 05:25 pp
drwx------. 2 newuser newuser 62 Jul 20 05:19 www
drwx------. 2 zhangsan zhangsan 62 Jul 20 05:01 zhangsan
基本权限的设置方法

只有系统管理员和文件/目录的所有者才可以更改文件和目录的权限,有以下两种方法

文字设定法设置权限

命令语法:chmod [操作对象] [操作符号] [权限] [文件|目录]

部分 选项 含义
操作对象 u 表示用户所有者,即文件或目录的所有者
g 表示组群的所有者,即与文件的用户所有者有相同组群GID的所有用户  
o 表示其他用户  
a 表示所有用户,它是系统默认值  
操作符号 + 添加某个权限
- 取消某个权限  
= 赋予给定权限并取消原先权限(如果有的话)  
权限 r 读取权限
w 写入权限  
x 可执行权限  

例子:取消/root/abc的写入权限

[root@localhost ~]# ls -l abc
-rw-r--r--. 1 root root 282 Jul 23 18:47 abc
[root@localhost ~]# chmod u-w abc
[root@localhost ~]# ls -l abc
-r--r--r--. 1 root root 282 Jul 23 18:47 abc
数字设定法设置权限
  • 0表示没有权限=---
  • 1表示可执行权限=--x
  • 2表示写入权限=-w-
  • 4表示读取权限=r--
  • 将以上对应权限的数字相加就是某个文件或目录的权限,例如某个文件用户所有者有读取、写入和可执行权限,数字就是700;某个文件组群所有者拥有读取权限,数字就是040;其他用户拥有读取和写入权限,数字就是006.

使用命令chmod 006 [文件或命令]=chmod 6 [文件或目录]

所有数字属性的格式应该是三个0~7的数,其顺序是u、g、o

  • r:对应数值4
  • w:对应数值2
  • x:对应数值1
  • -:对应数值0

例如,如果向让某个文件的所有者有“读/写”两种权限,需要用数字6来表示,即4(可读)+2(可写)=6(读/写) 下面几个例子说明权限字符字母转换为数字

  • -rwx------:用数字表示为700
  • -rwxr--r--:用数字表示为744
  • -rw-rw-r-x:用数字表示为665
  • drwx--x--x:用数字表示为711
  • drwx------:用数字表示为700

使用chmod更改权限 命令语法:chmod [n1n2n3] [文件|目录]

选项 含义
n1 用户所有者的权限,n1代表数字
n2 组群所有者的权限,n2代表数字
n3 其他用户的权限,n3代表数字

例如:设置abc文件权限,用户所有者拥有读取、写入和执行的权限

[root@localhost ~]# ls -l abc
-r--r--r--. 1 root root 282 Jul 23 18:47 abc
[root@localhost ~]# chmod 700 abc
[root@localhost ~]# ls -l abc
-rwx------. 1 root root 282 Jul 23 18:47 abc
设置文件和目录特殊权限

用户如果没有特殊要求,一般是不需要启用特殊权限的,以避免出现安全方面的隐患

  • SUID:对一个可执行文件,不是以发起者身份来获取资源的,而是以可执行文件的用户所有者身份来执行。
  • SGID:对一个可执行文件,不是以发起者身份来获取资源的,而是以可执行文件的组群所有者身份来执行的。
  • Sticky:对文件或目录设置Sticky之后,尽管其他用户有写权限,也必须由文件所有者执行删除和移动等操作。

因为SUID、SGID、Sticky占用x(执行权限)的位置来表示,所以在表示上会有大小写之分。加入同时开启执行权限和SUID、SGID、Sticky,则权限表示字符是小写的,如下

[root@localhost ~]# ls -l abc
-rwsr-sr-t. 1 root root 282 Jul 23 18:47 abc

如果关闭权限,则表示字符会变成大写,如下

[root@localhost ~]# ls -l abc
-rwSr-Sr-t. 1 root root 282 Jul 23 18:47 abc
特定权限的设置方法
  • 文字设置法设置特殊权限
  • 数字设定法设置特殊权限

如果设置特殊权限,必须使用四位数字才能表示,对应数值如下

  • SUID:对应数值是4
  • SGID:对应数值是2
  • Sticky:对应数值是1

例如:设置文件ah具有SUID权限

[root@localhost ~]# ls -l ah
-rw-r--r--. 1 root root 0 Jul 26 08:27 ah
[root@localhost ~]# chmod 4000 ah
[root@localhost ~]# ls -l ah
---S------. 1 root root 0 Jul 26 08:27 ah

例子:设置文件ah具有Sticky权限

[root@localhost ~]# chmod 1000 ah
[root@localhost ~]# ls -l ah
---------T. 1 root root 0 Jul 26 08:27 ah

例子:设置文件ah具有SUID、SGID和Sticky权限。

[root@localhost ~]# chmod 7000 ah
[root@localhost ~]# ls -l ah
---S--S--T. 1 root root 0 Jul 26 08:27 ah
更改文件和目录所有者

使用chown命令可以更改文件和目录的用户所有者和组群的所有者

命令语法:chown [选项] [用户.组群] [文件|目录] chown [选项] [用户.组群] [文件|目录]

选项 含义
-R 将下级子目录下的所有文件和目录的所有权一起更改
-h 会影响符号链接本身,而非符号链接所指示的目的地
-v 为处理的所有文件显示诊断信息
-p 不遍历任何符号链接(默认)
-L 遍历每一个遇到的通到目录的符号链接
-H 如何命令行参数是一个通到目录的符号链接,则遍历符号链接
[root@localhost ~]# ls -l ah
---S--S--T. 1 root root 0 Jul 26 08:27 ah
[root@localhost ~]# chown newuser ah
[root@localhost ~]# ls -l ah
------S--T. 1 newuser root 0 Jul 26 08:27 ah

例子:将文件ah的组群所有者更改成newuser

[root@localhost ~]# chown :newuser ah
[root@localhost ~]# ls -l ah
------S--T. 1 newuser newuser 0 Jul 26 08:27 ah

例子:将文件ah的组群所有者更改成newuser

[root@localhost ~]# chown .newuser ah
[root@localhost ~]# ls -l ah
------S--T. 1 newuser newuser 0 Jul 26 08:27 ah

例子:将目录/root/b连同它的下级文件/root/b/c的用户所有者和组群所有者一起更改为newuser

[root@localhost ~]# ls -l /root/b
total 0
-rw-r--r--. 1 root root 0 Jul 26 08:59 c
[root@localhost ~]# ls -l /root/b/c
-rw-r--r--. 1 root root 0 Jul 26 08:59 /root/b/c
[root@localhost ~]# chown -R newuser.newuser /root/b
[root@localhost ~]# ls -ld /root/b
drwxr-xr-x. 2 newuser newuser 15 Jul 26 08:59 /root/b
[root@localhost ~]# ls -l /root/b/c
-rw-r--r--. 1 newuser newuser 0 Jul 26 08:59 /root/b/c

摘自:《Linux实用教程》人民邮电出版社出版发行 於岳编著

linux文件、目录权限和所有者的更多相关文章

  1. Linux文件/目录权限设置命令:chmod

    文件/目录权限设置命令:chmod 这是Linux系统管理员最常用到的命令之一,它用于改变文件或目录的访问权限.该命令有两种用法: 用包含字母和操作符表达式的文字设定法 其语法格式为:chmod [w ...

  2. Linux文件/目录权限整理

  3. 从零单排Linux – 2 – 目录权限

    从零单排Linux – 2 – 目录权限 1.sync 讲内存数据跟新到硬盘中 2.执行等级init a: run level 0:关机 b: run level 3:纯命令模式 c:run leve ...

  4. Linux学习之十五-Linux文件特殊权限和附加权限

    Linux文件特殊权限和附加权限 1.特殊权限suid 范围:只能针对二进制命令文件 作用:让普通用户拥有二进制命令文件所有者的权限 举例1:普通用户使用passwd命令修改密码 cat /etc/s ...

  5. Linux 文件/目录操作详解

    目录 Linux 文件/目录操作详解 初识Linux 一.文件/目录显示命令 ls 二.目录创建命令 mkdir 三.目录转移命令 cd 四.当前目录显示命令 pwd 五.文件处理命令 rmdir 六 ...

  6. Linux文件的权限与属性

    由于以前学习Linux的时候没有做比较全面的总结笔记,而且平时大部分工作都在windows上进行,所以关于Linux的一些知识点有所遗忘.近期难得空闲,翻阅书籍,学习<鸟哥的Linux私房菜&g ...

  7. Linux文件/目录,权限相关

    查看权限 命令 # ls -l filename 结果 -rw-r--r-- l root root 27 11-10 14:50 filename 解析: -rw-r--r-- --共10位 第1位 ...

  8. 【Linux】目录权限与文件权限

    现在我们知道了Linux系统内文件的三种身份(拥有者.群组与其他人),知道每种身份都有三种权限(rwx),已知道能够使用chown, chgrp, chmod去修改这些权限与属性,当然,利用ls -l ...

  9. linux:文件/目录权限设置

    一.权限修改命令:     chmod [OPTION]... MODE[,MODE]... FILE...二.文件/目录MODE指定方式: 1).八进制(r=4,w=2,x=1) [root@pin ...

  10. Linux文件普通权限

    1.文件所有者,所属用户组,其他用户1)文件所有者:创建文件的用户2)所属用户组:文件属于哪个用户组3)其他用户:不是文件所有者,不属于文件所属用户组的用户,称为其他用户 2.Linux文件权限我们切 ...

随机推荐

  1. Kubernetes使用Harbor作为私有镜像仓库

    概述 Harbor使用了基于角色的访问控制策略,当从Harbor中拉去镜像的时候,首先要进行身份认证,认证通过后才可以拉取镜像.在命令行模式下,需要先执行docker login,登陆成功后,才可以d ...

  2. 分享6个SQL小技巧

    原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,非公众号转载保留此声明. 简介 经常有小哥发出疑问,SQL还能这么写?我经常笑着回应,SQL确实可以这么写.其实SQL学起来简单,用起来也 ...

  3. Gamma:强大的AI制作PPT神器,用完再也回不去了!

    看过许多 AI 制作 PPT 软件,最终还是被 Gamma 惊艳到. Gamma 是一款基于人工智能技术的 PPT 制作工具,可以帮助用户轻松制作高质量的 PPT 演示文稿. 痛点解决 相比传统制作 ...

  4. 4. SpringMVC获取请求参数

    1. 通过 ServletAPI 获取 ‍ 将 HttpServletRequest 作为控制器方法的形参 , 此时 HttpServletRequest 类型的参数表示封装了当前请求的请求报文的对象 ...

  5. ArcPy批量对大量遥感影像相减做差

      本文介绍基于Python中ArcPy模块,对大量栅格遥感影像文件批量进行相减做差的方法.   首先,我们来明确一下本文的具体需求.现有一个存储有多张.tif格式遥感影像的文件夹,其中每一个遥感影像 ...

  6. 关于ChatGPT与机器时代的展望

    关于 ChatGPT 与机器时代的展望 机器人这一概念,最初不是出自计算机科学家或工程师之手,而是来自于捷克的戏剧家卡雷尔·恰佩克(Karl Capek)在 1920 年编排的一出名为"罗森 ...

  7. java无法加载maper.xml问题

    项目依赖其他模块,模块中有 mapper,本项目也有mapper,导致项目无法正常运行. 解决办法: 1.配置 mybatis: # 搜索指定包别名 typeAliasesPackage: com.X ...

  8. 由有序链表构建平衡二叉搜索树-sortedListToBST

    描述 给定一个有序列表,将其转换成为一个平衡搜索二叉树 题不难,不过在讨论中发现此题的中序遍历用法略有不同,感觉有点意思 手写一遍加深印象 暴力解法,链表转数组,额外空间O(N),递归遍历搞定.几分钟 ...

  9. NAT与NAT实验

    1.NAT与NAT实验 NAT(网络地址翻译) 一个数据包目的ip或者源ip为私网地址, 运营商的设备无法转发数据. 实际场景问题 如下图 201.0.0.1 公网地址?   买的 运营商给你的​19 ...

  10. Jenkins远程执行shell脚本,超时报错(ERROR: Exception when publishing, exception message [Exec timed out or was interrupted after 120,001 ms])

    通过Jenkins远程执行脚本时,发现Jenkins构建任务失败,但是服务器本身的脚本是生效的. 排查确认是Jenkins构建任务超时,导致Jenkins看板显示任务构建失败,但是服务器上的自动脚本执 ...