关于文件系统权限的管理

众所周知的是,一个操作系统,是需要为不同的用户进行服务的,因为不能让每个人都以管理员进行操作,这样做的话,毫无安全性可言,所以我们需要验证和授权。这就体现了权限的重要性,上一篇我介绍了,那几个重要的目录。所以这就步入系统权限的正题了。

文件系统的权限管理:
    普通权限
    特殊权限
    文件的扩展属性
    FACL(文件系统访问控制列表)

文件权限的构成:
    使用权:MODE,permission
        三个基本权限:
            r:readable,可读
            w:writable,可写
            x:executable,可执行

目录文件
            r:可以使用ls命令获取其中所包含的所有文件的文件名列表;
            w:可以在此目录中进行文件名修改(创建,删除,修改);即:可以创建文件名,删除文件名及修改文件名;
            x:可以使用ls -l命令查看各个文件的属性信息;在路径中引用该目录;

非目录文件
            r:可以利用cat类的命令获取文件中存放的数据信息;
            w:可以修改(添加,修改,删除,覆盖)文件中所存放的数据信息
            x:可以将文件发起为进程;

获取使用权和所有权的相关信息:
    ls -l[d] /PATH/TO/SOMEFILE

[root@localhost ~]# ls -l /tmp/test
总用量 0
-rw-r--r--. 1 root root 0 11月  1 19:32 a
-rw-r--r--. 1 root root 0 11月  1 19:32 b
-rw-r--r--. 1 root root 0 11月  1 19:32 c
-rw-r--r--. 1 root root 0 11月  1 19:32 d
-rw-r--r--. 1 root root 0 11月  1 19:32 e
-rw-r--r--. 1 root root 0 11月  1 19:32 f

rwxr-xr-x:三个权限位(属主/所有者,属组/所属组,其他用户)
    属主权限:rwx,此权限位标识为user,简写u;
    属组权限:r-x,此权限位标识为group,简写为g;
    其他用户权限:r-x,此权限位标识为other,简写为o;

所有权限位可以统一用all标识,简写为a;

注意:"-"表示在该权限位上不具备指定权限;

rwx组合称为"权限标识三元组";

数字权限标识:二进制数字标识,在对应权限位上有权限则为1,无权限则为0;

---:000        0
    --x:001        1
   -w-:010        2
   -wx:011        3
    r--:100        4
    r-x:101        5
   rw-:110        6
   rwx:111        7

使用符号标识权限和数字表示权限的区别:
        1.使用符号标识法可以只标识某个特定的权限位,也可以同时标识所有的权限位;
            示例:
                u=rx;ug=rwx;u=rwx,g=rx,o=r;a=rwx
        2.使用数字标识法只能同时标识所有权限位;
            示例:
                755;644;7 == 007; 75 == 075

修改文件的使用权:
    chmod - change mode
    格式:
        chmod [options]... mode[,MODE] file...
        chmod [options]... OCTAL -MODE FILE..
        chmod [options]... reference=RFILE FILE...

MODE:符号权限标识法:
        u,g,o,a:表示权限位;
        +,-,=:表示授权方式;
            +:表示在指定的权限位上增加指定权限;如果新增的权限是已经存在的权限,则结果相比较啊授权之前无变化;
            -:表示在指定的权限位上撤销指定权限;如果撤销的权限并不存在,则结果相比较啊授权之前无变化;
            =:表示在指定的权限位上精确授权;此种授权方式不考虑该权限位原有的权限设定;
        r,w,x:表示具体的权限;

注意:
        chmod +|- r|x FILE :在所有者的权限位上增加或撤销读或执行权限;
        chmod +|- w FILE:仅在所有者权限位上增加或撤销写权限;

 注意对于文件来说,执行权限是非常重要的安全上下文标识;因此默认情况下,所有的非目录文件都不应该有执行权限;一旦非目录具有了执行权限,则意味着该文件可以被执行,发起为进程,则可以按需使用系统资源。

OCTAL-MODE:八进制权限位标识位;

reference=RFILE:

# chmod --reference=/etc/shadow root.txt
        依照shadow文件的权限位来设置root.txt相同的权限;

常用选项:
        -R,,递归的设置目标文件或目录的权限;

修改文件的所有权;
    chown
        chown - 修改文件所有者和组别
        格式:
            chown [option] [OWNER][:[group]] file...
            chown [option] reference=RFILE FILE...

~]# chown user3 tset1
            ~]# chown user3: tset2
            ~]# chown :user3 tset3
            ~]# chown user3:myuser tset4

注意:在使用chown命令时,特别的,可以使用"."代替":"

常用选项:
        -R,,递归的设置目标文件或目录的权限;

[root@localhost ~]# chown root. /home/yu
[root@localhost ~]# ls -l /home
总用量 4
drwx------. 14 root root 4096 9月  17 00:25 yu

注意:对于文件来说,普通用户可以修改所有者为自己的文件的使用权,但无法修改文件的所有权;修改文件所有权的操作只有root可以完成;

chgrp(不常用
            chgrp - 改变文件的组所有权
        格式:
            chgrp [option] group file...
            chgrp [option] reference=RFILE FILE...

注意:chown和chgrp所指定的用户和组,既可以是用户名和组名,也可以是UID和GID;

mkdir:
     -m MODE :在创建目录时为其指定权限;

[root@localhost ~]# mkdir -m 700 -pv /tmp/mydir
mkdir: 已创建目录 "/tmp/mydir"
[root@localhost ~]# ls -l /tmp
总用量 0
drwx------. 2 root root  6 11月  9 22:46 mydir

install命令:复制文件并设置属性

install [option] [-T]  source dest
             单源复制,为复制后的文件增加执行权限;
        install [option] source... directory
            多源复制,为复制后的文件增加执行权限;
        install [option] -d directory...
            创建目录;

常用选项:
            -g group, --group=group
              设定目标文件的所属组为指定组,而不是进程所有者的主要组;
            -m mode, --mode=mode
                设定目标文件的权限,而不是rwxr-xr-x
            -o owner, --owner=owner
                设定目标文件的所有者,仅root用户可用;

注意:install命令,不能复制目录,也不能以目录为源文件;如果其源文件是一个目录,则install命令会进入该目录,一次复制其中所有的非目录文件到达目标位置;

特殊权限:
    SUID,SGID,STICKY

SUID:SUID仅设置在可执行的文件上。默认情况下,当用户执行此类可执行文件时,被发起的进程的所有者不是进程发起者,而是可执行文件的所有者;换句话说,进程以所有者的身份运行。

SUID权限所显示的位置:文件的属主的权限位中的执行权限位上;如果属主本来就具有执行权限,则显示为“s”,如果本来没有执行权限,则显示为“S”

管理SUID权限:
        1.符号标识法:chmod u+s FILE
        2.数字标识法:chmod 4755 FILE

[root@localhost ~]# chmod 4755 /tmp/mydir
[root@localhost ~]# ls -l /tmp
总用量 0
drwsr-xr-x. 2 root root  6 11月  9 22:46 mydir

SGID:SGID可设置在可执行文件或目录的属组权限位的执行权限上。
            如果某个目录设置了SGID权限,并且对于某些用户有写权限,则所有在此目录创建的新文件和目录的所属组均为其父目录的所属组,而并非进程发起者的主要组;

SGID权限的显示位置;文件的属组权限位上的执行权限上;如果属组本来就有执行权限。则显示为"s",否则,就显示为“S”;

管理SGID权限:
            1.符号标识法:chmod g+s DIR
            2.数字标识法:chmod 2770 DIR

[root@localhost ~]# chmod 2770 /tmp/mydir/
[root@localhost ~]# ls -l /tmp/
总用量 0
drwsrws---. 2 root root  6 11月  9 22:46 mydir

3.STICKY:仅设置在目录的其他用户权限位的执行权限上。
        如果在某个目录上的权限设置为多个用户都拥有写权限,那就意味着凡是拥有写权限的用户都能直接管理该目录中的所有文件名,包括改名文件及删除文件名等操作;因此需要在这样的目录上设置STICKY特殊权限;如果此类目录设置了STICKY,则所有用户即便拥有写权限,也仅能删除或改名所有者为其自身的文件;

STICKY权限的显示位置:在目录的其他用户的权限位的执行权限上;如果该权限位本来有执行权限,则显示为“t”,否则,显示为“T”

管理STICKY权限:
            1.符号标识法:chmod o+t DIR
            2.数字标识法:chmod 1777 DIR

[root@localhost ~]# chmod 1777 /tmp/mydir
[root@localhost ~]# ls -l /tmp/
总用量 0
drwsrwsrwt. 2 root root  6 11月  9 22:46 mydir

权限遮罩码:umask
    作用:在创建目录或文件时,被创建出来的目录或文件的默认权限上删除遮罩码上所对应的权限;

注意:在创建目录或文件时,默认不设置特殊权限;

对于目录文件:默认的权限为:0777-umask
    对于非目录文件:默认的权限为:0666-umask

[root@localhost ~]# umask
0022

umask [OCTAL-MODE]

默认设置遮罩码的文件:/etc/bashrc
        规则:如果用户的UID大于199并且用户的用户名和主要组的组名相同,则遮罩码为002;否则遮罩码为022;

文件的扩展属性:
    lsattr
        lsattr - 显示文件在Linux第二扩展文件系统上的特有属性

格式:
            lsattr [ -RVadv ] [ files...  ]

chattr
        chattr - 修改文件在Linux第二扩展文件系统(E2fs)上的特有属性

格式:
            chattr [ -RV ] [ -v version ] [ mode ] files...

mode 可以是:+-=[ASacdisu]

a:在向文件写数据时,只能以附加的方式进行写操作;文件的内容不能被更改和删除;一般会为日志文件设置此属性;
            A:atime,文件的访问时间戳控制属性;对于并发访问量较大或者并发访问频率较高的文件,应该设置此属性以降低IO成本,防止IO瓶颈;
            c:设置是否自动压缩之后在存储;
            C:是否开启“写时复制”
            d:使用dump备份文件系统时,跳过属性设置为d的文件;
            D:设置文件在文件系统中的异步写操作;
            i:设置文件不能被删除,改名及设定链接关系;
            s:设置文件的保密性删除;
            u:与s属性相反,如果此类文件被删除,则在存储器中会继续保存其内容;

FACL:
    Filesystem Access Control List,文件系统访问控制列表;
    想要应用此功能,必须让文件系统能够支持;

FACL为文件系统的额外赋权机制:

在原有的u,g,o权限位之外,让普通用户能够控制权限赋予另外的某个指定的用户或组的一种赋权机制;

这种机制在centos或者RHEL7之后的发行版本中才逐渐成熟;

与FACL相关的命令:
        getfacl
            getfacl - get file access control lists
            格式:
                etfacl [-aceEsRLPtpndvh] file ...

setfacl
            setfacl - set file access control lists
            格式:
                setfacl [-bkndRLPvh] [{-m|-x} acl_spec] [{-M|-X} acl_file] file ...
                setfacl --restore=file

常用的选项:
                -m acl_spec:为指定文件设置acl_spec;
                -x acl_spec:将acl_spec从指定文件上移除;

acl_spec:acl_specification, acl规格,访问控制列表;
                    u:USERNAME:MODE
                    g:USERNAME:MODE

MODE一般是使用符号权限标识法标识的权限;

示例:

为文件赋予指定用户的额外访问权限:
                setfacl -m u:USERNAME:rwx /PATH/TO/SOMEFILE/

撤销指定用户的额外访问权限
                setfacl -x u:USERNAME /PATH/TO/SOMEFILE/

注意:如果设置了FACL之后,在修改目标文件的使用权限,那么FACL中设置的权限条目可能受到影响而导致授权失败

还有一些小实验:

背景描述:xiaoqiang、wangcai和tangbohu三个用户的基本组都是与用户名相同的组,但是他们都以qiuxiang组为附属组;

[root@localhost ~]# groupadd qiuxiang[root@localhost ~]# useradd -G qiuxiang xiaoqiang[root@localhost ~]# useradd -G qiuxiang wangcai[root@localhost ~]# useradd -G qiuxiang tangbohu

1.当用户xiaoqiang对/testdir目录无执行权限时和无读权限时,分别意味着xiangqiang无法完成哪些操作?
  无执行权限意味着无法进入目录,不能访问;
  无读权限意味着读取目录,不能访问,不能查看;

2.当用户wangcai对/testfile文件只有写权限时,是否可修改和删除该文件?如果不能,那么wangcai能够对该文件做哪些操作?
  不修改该文件,不可以删除该文件。
  可以修改(添加,修改,删除,覆盖)文件中所存放的数据信息;

3.如果用户tangbohu在/tmp目录中建立了一个目录mydir,他想要让wangcai和xiaoqiang这两个用户能够在该目录中创建、修改和删除文件,你能想到哪些办法来实现这个目的?
  1.修改其他人权限

[tangbohu@localhost root]$ mkdir -pv /tmp/mydirmkdir: 已创建目录 "/tmp/mydir"[tangbohu@localhost root]$ chmod 757 /tmp/mydir[tangbohu@localhost root]$ exitexit[root@localhost ~]# su xiaoqiang[xiaoqiang@localhost root]$ touch /tmp/mydir/a[xiaoqiang@localhost root]$ ls /tmp/mydir

a
  2.修改组权限

[tangbohu@localhost root]$ chgrp qiuxiang /tmp/mydir[tangbohu@localhost root]$ chmod 775 /tmp/mydir

3.利用su命令,临时使用root用户执行。

二、操作:
1.复制/etc/fstab文件到/var/tmp下,同时设置文件属主为wangcai有读写权限,属组为xiaoqiang组有只读权限,其他人无权限,请写出命令;

  [root@localhost ~]# install -o wangcai -g xiaoqiang -m 740 /etc/fstab /var/tmp

2.不使用useradd命令创建用户xiaoming,该用户有如下属性:
    1) UID为8089;
    2) 主要组为xiaoming,gid为8089;
    3) 其用户全名为"Wang Xiaoming";
    4) 家目录在/home/xiaoming;
    5) 默认登录shell为/bin/bash;
    6) 密码修改之后5天内不能再次修改密码;
    7) 密码最多使用30天;
    8) 密码过期前3天开始提醒用户修改密码;
    9) 密码过期后,7天之内不会禁止用户登录;

[root@localhost ~]# echo "xiaoming:x:8089:8089:Wang XiaoMing:/home/xiaoming:/bin/bash" >>/etc/passwd
[root@localhost ~]# echo "xiaoming:x:8089:" >>/etc/group
[root@localhost ~]# cp -a /etc/skel /home/xiaoming
[root@localhost ~]# chmod  700 /home/xiaoming
[root@localhost ~]# chown  -R xiaoming:xiaoming /home/xiaoming
[root@localhost ~]# echo "xiaoming::5:30:3:7:::" >>/etc/shadow
[root@localhost ~]# passwd xiaoming
更改用户 xiaoming 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# su xiaoming
[xiaoming@localhost root]$

3.用户xiaoming在他自己的家目录中创建了一个文件project.plan,为了想要让wangcai用户能够读取到该文件的内容,xiaoming将/bin/cat文件复制到/tmp/xmcat,/tmp/xmcat只有属主xiaoming和wangcai用户能够执行;每次wangcai执行"[wangcai@localhost ~]$ /tmp/xmcat ~xiaoming/project.plan"命令就能看到该文件的内容;

[root@localhost ~]# usermod -g 8089  wangcai[root@localhost ~]# su - xiaoming[xiaoming@localhost ~]$ touch project.plan[xiaoming@localhost ~]$ install -m 770 /bin/cat /tmp/xmcat[wangcai@localhost ~]$ /tmp/xmcat ~xiaoming/project.

转载于:https://blog.51cto.com/liujingyu/1980457

关于文件系统权限的管理相关推荐

  1. 【Linux】管理文件系统权限

    一.文件系统权限说明 1.权限格式 使用touch语句创建一个新的文件,使用ll指令查询一下就可以看到文件的现有权限: ①:长列表的第一个字符表示文件类型 " - "是常规文件 & ...

  2. 十一、linux文件系统权限详解

    对于文件系统权限,我们前面已经讲解了一部分,这里就不在重复了. 1.修改文件权限有两种,一种是数字.一种是字母 (chmod 的修改只能是属主或者root) 数字: 修改目录权限和目录内所有文件的权限 ...

  3. Linux下对文件权限的管理

    一.基本含义 1.文件权限存在的意义 (1)文件权限是系统最底层的安全机制组成之一 (2)权限设定的作用是保证文件可以被可用的用户做相应的操作 2.文件权限的查看 (1)ls -l file 查看文件 ...

  4. linux系统用户,组和权限的管理

    PS: {最近一直在做毕业设计,前面博客也记录过我的一些过程.其中需要在Ubuntu上搭建一个FTP服务器,此处我选择Vsftpd,但是在我对vsftpd的配置文件vsftpd.conf设置正确后(对 ...

  5. 权限表管理之获取用户权限表列表数据

    用户权限控制说明 在产品运营平台中,是需要对用户进行权限控制的.Django实现了用户权限的控制 消费者用户与公司内部运营用户使用一个用户数据库来存储 通过is_staff 来区分是运营用户还是消费者 ...

  6. SpringMvc 集成 shiro 实现权限角色管理-maven

    2019独角兽企业重金招聘Python工程师标准>>> SpringMvc 集成 shiro 实现权限角色管理 1.项目清单展示 2.项目源码解析  1)spring-context ...

  7. 图纸管理软件_图纸文件管理操作繁琐?巧用“权限”,管理更高效

    企业内部的图纸文档使用.协作.流通需求频繁,管理要兼顾规范化.流程化.一体化,便利性,以推进企业办公效率的提升. 日常办公和图纸文档管理过程中,大家可能遇到过这样的问题:因业务需要,要借用多份分属于不 ...

  8. GitHub 实现多人协同提交代码并且权限分组管理

    转载请标明出处: http://www.cnblogs.com/zhaoyanjun/p/5882784.html 出自[赵彦军博客] 2016-09-19 前言: 在上一篇文章中Android gi ...

  9. 疯狂.NET架构通用权限后台管理工具演示版2.0下载

    程序未必是最好的,但是我目前所能拥有的程序里是最好的, 功能未必是最全的,但是我目前所能拥有的程序里是最好的. 不管我的再怎么不好,也有成熟的产品,商品化的成果物,请不要乱打击我,你有实力就把你的拿出 ...

最新文章

  1. 2010.2--netscreen ssg 140 恢复出厂设置的方法
  2. python从入门到精通pdf百度云下载-Python从入门到精通PDF高清完整版免费下载|百度云盘...
  3. 实现状态面板的显示与隐藏
  4. 中达变频器参数_台达变频器:满足未来驱动需求
  5. RestFul通信风格
  6. MyBatis增强工具pndao-帮你自动写SQL
  7. ACM - 第6章 数据结构基础(2)
  8. 第四章:react ajax
  9. MFC 设置应用程序开机启动并设置运行路径
  10. Job 存储和持久化 (第一部分)
  11. MySQL安装与java配合
  12. [UE4]Uniform Grid Panel
  13. ojdbc6.jar下载Linux,Linux下 和 Windows 下 Oracle Instant Client 的安装.
  14. 【福利】10道CCNA经典测试题你能对几题?(附最新版CCNA题库下载链接)
  15. 视频伪原创消重 抖音视频md5修改在线
  16. 购物直播APP开发系统方案
  17. 服务器的文件分发功能,Web文件分发协议
  18. 突发 | 工信部正式发放5G商用牌照 5G已来
  19. 近期关于 WWDC22 上各大新系统的一些传闻
  20. 不用找,你想要的酒店餐饮su模型素材都在这里

热门文章

  1. scala怎么做幂运算_Scala幂(幂)函数示例
  2. 计算机数学基础模拟试题,计算机数学基础》模拟考试试题.doc
  3. 2013_chengdu_visit
  4. 69. x 的平方根 golang
  5. C语言关键字 ISO/ANSI C90 C99 C11
  6. C++ 对引用的理解5
  7. 批处理创建程序的快捷方式
  8. 【剑指offer】_12 数组中的逆序对
  9. 计算机网络(一)计算机网络体系
  10. leetcode(一)刷题两数之和