Linux 系统管理 01:文件权限管理

这篇文章主要包括如下主题:



一、基础概念

二、安全上下文

三、基本权限

四、特殊权限

五、文件访问控制列表

一、基础概念



1、文件拥有者:属主

2、文件拥有组:属组

二、安全上下文



1、进程是以某用户发起从而运行的,故进程会以运行其用户的权限完成所有操作

2、进程访问文件的权限应用模型

(1)如果“进程的属主 == 被访问文件的属主”,则应用属主的权限,否则进入(2)

(2)如果“进程的属主 in 被访问文件的属组中”,则应用属组的权限,否则进入(3)

(3)直接应用其他人(Others)的权限

3、设置FACL后,进程访问文件的权限应用模型

(1)如果“进程的属主 == 被访问文件的属主”,则应用属主的权限,否则进入(2)

(2)检查属主的FACL设置,如果没有匹配,则进入(3)

(3)如果“进程的属主 in 被访问文件的属组中”,则应用属组的权限,否则进入(4)

(4)检查属组的FACL设置,如果没有匹配,则进入(5)

(5)直接应用其他人(Others)的权限

三、基本权限



1、文件权限说明

(1)通过ls命令的-l选项可以查看目标文件的详细属性信息,其中第一部分就包括文件类型和文件权限,具体说明示例如下:

  • [[email protected] ~]$ ls -ld /var/
  • drwxr-xr-x. 19 root root 4096 Oct 4 17:46 /var/ ( r --> 可读;w-->可写;x-->可执行)
    • 1-3,rwx:定义属主的权限
    • 4-6,rwx:定义属组的权限
    • 7-9,rwx:定义其他人的权限

(2)权限对于普通文件和目录权限具有不同的意义,具体如下:

  • 对于文件

    • r:可获取文件的数据
    • w:可修改文件的数据
    • x:可将此文件运行为进程
  • 对于目录
    • r:可使用ls命令获取目录下的文件列表
    • w:可修改目录下的文件列表,即创建或修改等操作
    • x:可使用cd命令切换至目录下,其可使用ls -l命令来获取所有文件的详细属性信息

2、文件权限表示方法

(1)八进制表示法:r=4;w=2;x=1

  • 文件权限:      ---      --x      -w-      -wx      r--      r-x      rw-      rwx
  • 二进制:         000     001     010     011     100     101     110     111
  • 八进制:           0         1         2         3         4         5         6         7

(2)MODE表示法:u=owner;g=group;o=others;a=all

  • 赋权表示法:值为rwx;可针对某一类用户的所有权限位进行设置,也可针对某一类用户的某一个权限位或某几个权限位进行设置

    • u=;g=;o=;a=
  • 授权表示法:值为rwx;可增加或减少某一类用户的所有权限位,也可增加或减少某一类用户中的某一个权限位
    • u+,u-;g+,g-;o+,o-;a+,a-

3、文件权限管理命令:chmod、chown、umask

(1)chmod:change file mode bits,修改文件权限



【Synopsis】

  • chmod [OPTION]... MODE[,MODE]... FILE...

    • 使用MODE表示法中的赋权表示法和授权表示法
  • chmod [OPTION]... OCTAL-MODE FILE...
    • 使用八进制权限表示法
  • chmod [OPTION]... --reference=RFILE FILE...

【Options】

  • -R,--recursive:递归修改
  • --reference=FILE:根据指定文件的权限修改目标文件的权限

【Common usage】

  • 复制/etc目录到/tmp目录下,并递归修改其权限为属主可读可写、属主可读可写可执行、其他用户可读(三种方法)

    • 方法一:[[email protected] ~]# cp -r /etc/ /tmp/etc_bak && chmod -R 674 /tmp/etc_bak/
    • 方法二:[[email protected] ~]# cp -r /etc/ /tmp/etc_bak &&  chmod -R u=rw,g=rwx,o=r /tmp/etc_bak/
    • 方法三:[[email protected] ~]# touch mode.txt && chmod 674 mode.txt && cp -r /etc/ /tmp/etc_bak && chmod -R --reference=/root/mode.txt /tmp/etc_bak

(2)chown:change file owner and group,修改文件的属主和属组

  • (chgrp命令是专门为修改属组而设计的命令,由于chown可以实现chgrp的功能,故此处不再阐述)


【Synopsis】

  • chown [OPTION]... [OWNER][:[GROUP]] FILE...
  • chown [OPTION]... --reference=RFILE FILE...

【Options】

  • -R,--recursive:递归修改
  • --reference=FILE:根据指定文件的属主和属组修改目标文件的属组和属组

【Common usage】

  • 复制/etc目录到/tmp目录下,并属主和属组均为hadoop(两种方法)

    • 方法一:[[email protected] ~]# cp -r /etc/ /tmp/etc_bak && chmod -R hadoop:hadoop /tmp/etc_bak/
    • 方法二:[[email protected] ~]# cp -r /etc/ /tmp/etc_bak && chown hadoop:hadoop mode.txt && chown -R --reference=/root/mode.txt /tmp/etc_bak

(3)umask:display and change umask,显示或修改umask



【Synopsis】

  • umask
  • umask umask_number

【Knowledge】

  • umask默认值为0022

    • 第一部分,0:特殊权限位,此处表示默认情况下无论普通文件还是目录文件均没有特殊权限
    • 第二部分,022:基本权限位,此处表示默认情况下无论普通文件的权限还是目录文件的权限均会减去此数值
  • 默认情况下,新建普通文件的权限为644=666-022;新建目录文件的权限为755(777-022)
  • 将默认情况下的umask进行修改,如果普通文件最终计算出来的权限中如果出现了执行权限,则会自动将其加1,因为文件默认不可以出现执行权限
    • 如将umask修改为0023,则新建普通文件的权限为666-023=643,3表示了2(写权限)+1(执行权限),此时需要将3+1,因为文件默认不可以出现执行权限

【Options】

  • None

【Common usage】

  • 查看当前系统的umask

    • [[email protected] ~]# umask
  • 设置当前系统的umask为023
    • [[email protected] ~]# umask 023

四、特殊权限



1、SUID

(1)意义:当用户执行某个拥有SUID权限的程序文件时,则此时进程的属主不是其运行用户,而是程序文件的属主

(2)实现:SUID只针对属主权限

  • chmod u+|-s FILE...

(3)位置:显示于属主权限的可执行权限应处的位置

  • 如果被修改的文件原本拥有可执行权限,则显示为s

    • [[email protected] etc_bak]$ ls -l updatedb.conf
    • -rwSr--r--. 1 hadoop hadoop 508 Oct  4 23:19 updatedb.conf
  • 如果被修改的文件原本没有可执行权限,则显示为S
    • [[email protected] etc_bak]$ ls -l virc
    • -rwsr-xr-x. 1 hadoop hadoop 1982 Oct  4 23:19 virc

2、SGID

(1)意义:当某个目录拥有GUID权限时,那么所有属于此目录属组的用户在此目录下新建的普通文件或目录文件的属组不是用户的基本组,而是此目录的属组

(2)实现:GUID只针对属组权限

  • chmod g+|-s DIRECTORY...

(3)位置:显示于属组权限的可执行权限的位置

  • 如果目录原本拥有可执行权限,则显示为s
  • 如果目录原本没有可执行权限,则显示为S

3、STICKY

(1)意义:对于全局可写的目录,如果为其设置Sticky权限,则用户只能删除此目录下由自己创建的文件

(2)实现:

  • chmod o+|-t DIRECTORY...

(3)位置:显示于其他用户权限的可执行权限的位置

  • 如果目录原本拥有可执行权限,则显示为t
  • 如果目录原本没有可执行权限,则显示为T

五、文件访问控制列表



1、文件访问控制列表

  • 是指在原来u,g,o三类用户权限之外提供的让普通用户能控制赋权给其他普通用户或组的赋权机制

2、facl,file access control lists

  • getfacl,获取文件访问控制列表


【Synopsis】

  • getfacl FILE...

【Options】

  • None

【Common usage】

  • 获取/tmp/etc_bak/passwd文件的文件访问控制列表

    • [[email protected] ~]# getfacl /tmp/etc_bak/passwd

      • user:hadoop:rw-
  • setfacl,设置文件访问控制列表


【Synopsis】

  • setfacl [OPTION]... FILE...

【Options】

  • -m:修改

【Common usage】

  • 修改/tmp/etc_bak/passwd文件的文件访问控制列表,让user1用户拥有读写权限,让hadoop组拥有执行权限

    • [[email protected] ~]# setfacl -m u:user1:rw /tmp/etc_bak/passwd
    • [[email protected] ~]# setfacl -m g:hadoop:x /tmp/etc_bak/passwd
    • [[email protected] ~]# getfacl /tmp/etc_bak/passwd
      • user:user1:rw-
      • group:hadoop:--x
时间: 2024-10-09 19:55:45

Linux 系统管理 01:文件权限管理的相关文章

Linux用户及文件权限管理

用户及文件权限管理 一.实验介绍 1.1 实验内容 Linux 中创建.删除用户,及用户组等操作. Linux 中的文件权限设置. 1.2 实验知识点 Linux 用户管理 Linux 权限管理 二.Linux 用户管理 通过第一节课程的学习,你应该已经知道,Linux 是一个可以实现多用户登陆的操作系统,比如"李雷"和"韩梅梅"都可以同时登陆同一台主机,他们共享一些主机的资源,但他们也分别有自己的用户空间,用于存放各自的文件.但实际上他们的文件都是放在同一个物理磁

linux命令(17)---文件权限管理命令之ACL控制

在linux系统中文件权限所属可管理的用户类型大致分为三类:u-->属主.g-->属组.o-->其他用 户,那么有没这么一种情况,有一个用户或组既不属于文件的属主.属组呢,当然出了属主.属组就是 其他用户了. 现在有这么一个目录名为"testdr",权限位770,从设置目录文件不难看出属主和属组对目录都有最 高的权限,其他用户对目录并且半点权限,现在要求一个用户既不属于属主或属组可对目录有rx权限, 一个不是目录属组的用户组对文件也有rx权限.针对目录而言rx权限意味

linux下的文件权限管理

权限管理有两个层面 第一层区分用户:文件属主(u), 组用户(g), 其它(o) 第二层区分权限:读(r),写(w),可执行(x) 这两个层次构成文件权限管理的二维结构 u         g         o r w x 实际中我们用9个bit位来分别表示这张表里九个位置的值 在八进制下就是三位数了 所以最常见到的chmod 777 filename 中777的含义就是将上面九个格子全部置1了:所有用户都具有了读/写/可执行权限 还有三个比较冷门的模式:S_ISUID S_ISGID, 粘滞

Linux文件系统管理之一(文件权限管理)

一. 查看文件权限 使用ls -l 命令可以查看到文件的访问权限 例如:在目录/etc/下执行命令ls -l 抽取其中的一行 相关概念: ① 文件类型:下面列举Linux中七种文件类型,每种文件类型  都有一个字符来表示. d表示目录文件 -表示普通文件 b表示块设备文件比如内存,磁盘等设备 c表示字符型设备文件 比如显示器,猫等串口设备 s表示网络编程文件(socket文件) p表示管道文件,用于防止多个程序同时访问一个文件引 起错误 l表示链接文件 ② 访问权限 如 rwx-wxr-x 各字

linux命令(16)---文件权限管理命令

在之前使用过windows系统的都知道,可为文件设置权限,那么这权限是怎么设置的,之前在"linux(15)---用户管理命令"中提到,系统中的用户主要是实现资源分享,那在系统中的文件权限自然也是针对用户而言设置的权限,如果没有系统没有用户,那设置权限也无意义,文件权限彻底是"某用户针对该文件有哪些权限"可对文件进行哪些相关操作. 在linux系统中具有着"一切皆文件的概念",当然也分了很多文件类型,但是在文件权限设置上只分为"文件权限

Linux系统管理三之权限管理(一)

本文记录了Linux文件系统的权限管理 一.基础权限: 1.用户与文件的关系: (1)文件所有者,owner,属主,文件的第一组权限表示属主拥有的权限 (2)文件所有组,group:属组,文件的第二组权限表示属组拥有的权限 (3)其他人,other:既不是属主,也不属于属组,文件的第三组权限表示其他人拥有的权限 2.普通文件操作权限: (1)r:读取(read),4,可以查看文件的内容 (2)w:写入(write),2,可以编辑.修改文件的内容 (3)x:执行(execute),1,可以执行文件

linux 用户及文件权限管理

Linux 是一个可以实现多用户登陆的操作系统,比如"李雷"和"韩梅梅"都可以同时登陆同一台主机,他们共享一些主机的资源,但他们也分别有自己的用户空间,用于存放各自的文件.但实际上他们的文件都是放在同一个物理磁盘上的甚至同一个逻辑分区或者目录里,但是由于 Linux 的 用户管理 和 权限机制,不同用户不可以轻易地查看.修改彼此的文件. 下面我们就来学习一下 Linux 下的账户管理的基础知识. 1.首先查看用户的指令: who am i/whoami 输出的第一列

Linux系统管理命令之权限管理

对于一个目录来说,x权限:可以cd进去 对于目录: 读:看 执行:进去 写:写操作 rw权限没有意义 umask 022

Linux之用户及文件权限管理

Linux之用户及文件权限管理 前言:Linux 是一个多用户的操作系统:Linux哲学思想之一-"一切皆文件".说明在学习Linux过程中,用户及文件权限的管理是非常重要滴.本文主要是引用了CentOs/RedHat 7.1的命令. 一.用户.组管理 1).用户.组类型: 超级用户(管理员):root用户具有一切权限,只有在进行系统维护(如创建用户.分配权限)时用到:由于root用户权限过大,为了避免管理员的误操作导致不可逆的后果,所以在非必要的情况下不用root用户登录. 普通用户