文件的从属权限和特殊权限

基础权限

  rwx

    经过今天的洗礼,了解了文件的权限位(rwx),而权限对于目录和文件有着不同的意义

    使用ls -l 命令后可以看到

    -rw-r–r–. 1 root root 10033 8月   2 03:44 install.log.syslog

    横线部分是十个位置,-代表文件类型,剩余九位,每三位为一组,从左到右分别是文件的属主

    (u)rwx,文件的属组(g)rwx,其他用户(o)rwx,

    rwx:读,写,执行

    rwx对文件

    r,如果一个用户对一个文件拥有“读”权限后,代表此用户可以浏览这个文件的内容

    w,如果一个用户对一个文件拥有“写”权限后,代表此用户可以修改和删除这个文件的内容,但是不能删除这个文件本身

    x,如果一个用户对一个文件拥有“执行”权限后,代表此用户可以运行此文件(这个相当危险的,不建议随便给用户x权限)

    rwx对目录

    r,如果一个用户对一个目录拥有“读”权限后,代表此用户可以浏览这个目录中的文件列表

    w,也不可以修改这个目录中的文件内容

    x,如果一个用户对一个目录拥有“写”权限后,代表此用户可以在这个目录中创建新的文件与目录;删除已经存在的文件与目录(不论该文

    件的权限为何!)将已存在的文件或目录进行更名;搬移该目录内的文件、目录位置。对目录来讲不建议随便给一个用户用于w的权限

    如果一个用户对一个目录拥有“执行”权限后,代表此用户可以进入这个目录中,并且在拥有读,写权限的情况下可以浏览目录中的文件列

    表,也可以在目录中创建新文件,如果一个用户对一个目录没有执行权限的话,那么这个用户就无法cd进此目录,而且也无法执行读,写,

    即使是在对此目录拥有读写权限的情况下也罢,对目录来讲建议给用户x权限

   

  相关操作命令:

    赋权

    chmod u=rwx,g=rw,o=x file

    授权

    chmod u+rwx,g+rwx,o+rwx file

    八进制

     每个权限组的r=4,每个权限组的w=2,每个权限组的x=1

    chmod 660 file

默认权限

 umask

    umask是新建文件的默认权限,

   umask

    对文件来将666-umask(默认002)=文件的权限(普通用户),666-umask(默认022)=文件的权限(管理员)

    对目录来讲777-umask(默认002)=目录的权限(普通用户),777-umask(默认022)=目录的权限(管理员)

    相关操作命令

    直接键入 umask 可以查看umask值    

    umask -S 模式方式显示

    [root@ali ~]# umask -S

    u=rwx,g=rx,o=rx

    umask -p 输出,可被调用

    [root@ali ~]# umask -p

    umask 0022

    修改方法

    umask 数值(八进制)

    umask u=rw,g=r,o=

    全局设置:/etc/bashrc,用户设置:~/.bashrc

    如果所得结果某位存在执行权限(奇数),则将其权限加1

三种特殊权限

    

  SUID

    每个程序运行成进程时,这个进程以发起者身份运行,就是发起这个进程的用户,而不是这个程序的属主,应用在文件上,如果一个程序拥

    有了suid权限,那么每个用户运行此程序时都是以这个文件的属主的身份运行的但是如果这个程序拥有SUID特权的时候,这个进程运行的身

    份就不是发起这个进程的用户了,而是这个程序文件的属主。

   相关命令:

     chmod u+s file 增加suid

    chmod u-s file 撤销suid

    占位在属主的x权限位,如果属主原来没有x权限则表现为大写S

  SGID

    用在目录的属组权限上,如果此目录拥有SGID权限之后,用户在此目录下新创建的文件的属组将会是这个目录的属组,而不是创建这个文件

    的用户的私有组,如果一个目录拥有了sgid权限,那么每一个用户进入到此目录创建文件的属组会是这个目录的属组,而不是创建文件的用

    户的属组组

   相关命令:

    chmod g+s file 增加sgid

    chmod g-s  file 撤销sgid

    占位在属组的x权限位,如果属组原来没有x权限则表现为大写S

  STICKY

    也用在目录上,如果此目录拥有STICKY权限的话,用户在此目录只能删除自己创建(自己为属主)的文件,而不能删除其他用户创建的文

    件,即便是用户对此目录有写的权限也不行。

   相关命令:

    chmod o+t dir 增加sticky

    chmod o-t  dir 撤销sticky

    占位在其他用户的x权限位,如果其他用户原来没有x权限则表现为大写T

    特殊权限的数字赋权法

    chmod 4777 ,可以把每一个特殊权限位再看成rwx(及suid,sgid,sticky),操作在原有的传统数字权限位前

    

mask和facl

    mask是创建文件后修改文件的权限的高压线,所有通过facl修改的文件的权限除了文件所有者和other以外,所有人都不能超过mask的权限

  facl :访问控制列表

    如果文件的属主,属组,其他权限设置不能满足你,假如你只想针对某一个或者多个用户设定文件权限的话,facl可以满足你,当一旦设置

    facl权限后 属组的权限将会变成mask的权限,但是mask不会给用户添加原来没有的权限(当文件的属主的权限是读,写,而mask的权限是

    读,写,执行,这种情况下mask不会给用户添加执行权限的)

   facl相关操作命令

    facl

    getfacl file 查看文件的facl列表

    赋权给用户

    setfacl -m u:username:mode file

    setfacl -M acl.txt file(批量添加)

    赋权给组

    setfacl -m g:groupname:mode file

    撤销赋权

    setfacl -x u:username file

    setfacl -x g:groupname file

    setfacl -X acl.txt file(批量删除)

     setacl  -b file 彻底清空所有facl信息

    占位在其他用户的x权限后,以+号表示

    facl生效顺序:所有者,自定义用户,自定义组,其他人

    facl的备份和恢复命令

    先使用getfacl -R file|dir读去列表然后>重定向保存到文件a.txt

    然后setfacl -k 删除原文件facl列表

    再然后setfacl -R –set-file=a.txt读会facl列表,完整命令示例如下

    [root@ali /]# getfacl -R testdir/ > acl.txt

    [root@ali /]# setfacl -k /testdir/

    [root@ali /]# setfacl -R –set-file=acl.txt /testdir/

   mask对facl的高压控制

    [root@ali ~]# getfacl /testdir/testdir

    getfacl: Removing leading '/' from absolute path names

    # file: testdir/testdir

    # owner: root

    # group: root

    user::rw-

    user:user1:rwx #effective:r–

    group::r–

    group:g1:rw- #effective:r–

    mask::r–

     other::—      此部分往上表示针对此目录执行的ACL权限  ,操作命令setfacl -m m::rwx dir

    default:user::rwx

    default:user:user1:rw-

    default:group::r-x

    default:group:g1:—

    default:mask::rwx

    default:other::r-x   此部分表示默认针对此目录下将要新建的文件执行ACL权限,操作命令 setfacl -m d:u:user1:rwx dir  

文件的特定特殊属性

    chattr:功用是让你的文件避免被误操作

    chattr +A file 锁定文件的时间戳

    +i file 不能删除,更改,改名

    +a file 只能增加

    lsattr 可以查看文件被添加的特殊属性

    我们说的权限是有针对文件系统的,比如在vfat分区文件下,不支持linux的权限,很多命令对其不起作用

原创文章,作者:M20-1马星,如若转载,请注明出处:http://www.178linux.com/28562

(0)
上一篇 2016-08-04 14:25
下一篇 2016-08-04 14:39

相关推荐

  • Java线程

    线程是一个单独程序流程。多线程是指一个程序可以同时运行多个任务,每个任务由一个单独的线程来完成。也就是说,多个线程可以同时在一个程序中运行,并且每一个线程完成不同的任务。程序可以通过控制线程来控制程序的运行,例如线程的等待、休眠、唤起线程等。本章将向读者介绍线程的机制、如何操作和使用线程以及多线程编程。  1. 线程的基本知识   &nb…

    2015-06-08
  • N26-第四周博客

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@localhost skel]# cp -r /etc/skel /home/tuser1[root@localhost skel]# chmod -R go=— /home/tuser1 2、编辑/etc/…

    系统运维 2017-02-08
  • Linux下软件包安装(rpm,yum)

    Linux下软件包安装(rpm,yum,源代码) 1)    Rpm包管理安装 2)    Yum包程序管理器 3)    本地Yum仓库建制 ======================================= 1) …

    Linux干货 2016-06-22
  • 第一周作业

    1、描述计算机的组成及其功能。
    2、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。
    3、描述Linux的哲学思想,并按照自己的理解对其进行解释性描述。
    4、说明Linux系统上命令的使用格式;详细介绍ifconfig、echou、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例来阐述。
    5、如何在Linux系统上获取命令的帮助信息,请详细列出,并描述man文档的章节是如何划分的。
    6、请罗列Linux发行版的基础目录名称命名法则及共用规定。

    Linux干货 2017-12-03
  • Linux基础知识

    一、描述计算机的组成及其功能 计算机由运算器、控制器、存储器、I/O设备五大部件组成。 运算器和控制器统称为中央处理器,俗称CPU。    1、运算器:实现算术运算和逻辑运算的部件;    2、控制器:计算机的指挥系统,控制计算机的其他部件,使得个部件有条不紊地协调工作;    3、存储器:存储数据…

    2017-07-08
  • zabbix之报警功能的实现

    一、注册微信公众号 首先申请微信公众平台https://mp.weixin.qq.com/一个人最多申请5个公众号,所以还是可以的 申请完之后就可以根据腾讯的提示使用微信公众号了,然后用你自己的微信扫描关注微信号。 就可以看到用户数了,接下来的就要使用的用户的微信ID号了。点击用户查看用户的微信ID号。在浏览器查看用户的微信ID号。就是那个红色的ID了。 h…

    2014-11-12