权限管理(接上篇)

本文主要介绍:1、文件的属性 2、特殊权限:SUID、SGID、Sticky 3、访问控制列表ACL

1、文件的属性

(1)文件属性

1

在Linux系统上,普通权限分为三类:读(r)、写(w)、执行(x)

文件的从属关系也分为三类:

属主(u):标明这个文件是谁的

属组(g):标明该文件属于哪个用户组

other(o):除开文件属主和属组之外的所有

  • chown 修改文件属主

                    语法:chown [OPTION]… [OWNER][:[GROUP]] FILE…

chown [OPTION]…–reference=RFILE FILE…参照RFILE赋予FILE同样的属主、属组

选项:

-R:表示递归修改

例如:chown -R u+r  dir1

chown wang dir1

chown wang:g1 dir1

  • chgrp   修改文件属组 (语法同chown,但只能修改文件及目录属组)

(2)文件权限

2

  •                对文件而言:

                r:表示可获取文件的数据;cat、nano等查看类工具获取文件内容

w:表示可修改文件的数据;可修改内容,不能删除文件本身,但文件内容可以删

x:表示可将此文件发起运行为进程(针对可执行程序文件或脚本,一般的文件不需要加x权限)

  •                对目录而言:

                 r:表示可使用ls命令获取其下的所有文件列表信息,但是获取不到ls -l的详细信息

w:表示可修改此目录下的文件列表,即创建或删除文件

x:表示可cd至目录中,且可使用ls -l来获取所有文件的详细属性信息

  •                 除了以上三种常见的权限表示外,还有一个权限表示:

                 X:功能是递归赋权时,只给目录加上x权限,但如果文件之前有x权限就+x权限,文件之前没有x权限,就不加。

(3)文件权限表示法

针对各个权限的表示,除了常规的r、w、x之外,还有另外数字方法进行表示

3

             例如:常见的权限:

644  rw-r–r–

600 rw——-

755  rwxr-xr-x

750  rwxr-x—

775  rwxrwxr-x

(4)新建文件和目录的默认权限:umask值

            在我们创建文件或目录时,系统会根据umask值自动为我们分配一些权限

umask:文件的权限反向掩码

  •             在创建文件时的默认权限为:666-umask(之所以文件用666去减,表示文件默认不能拥有执行权限,如果得到的结果中,仍然有执行权限,这需要将其+1)
  •             在创建目录时的默认权限为:777-umask

 

  •             系统上默认的umask值为:
  •             root:默认umask是022
  •             普通用户:默认umask是002

 

  •         查看umask值:      umask
  •         umask #    :   来指定umask值,值只能是3位数字,不大于777
  •         umask -S     :模式方式显示,结果类似这种格式:u=rwx,g=rx,o=rx
  •         umask -p     :显示uamsk本身和其值,显示结果类似这种格式:umask 0022

 

  •         注意:在命令行里设置的umask只对当前shell有效,退出登录后失效
  •         永久生效,用户设置:  ~/.bashrc       全局设置:    /etc/bashrc

(5)文件权限操作命令

普通用户仅能够修改属主为自己的文件的权限

方法一:chmod [OPTION]… MODE[,MODE]… FILE…模式法

  •                    赋权表示法(直接操作一类用户的所有权限位):u=、g=、o=、a=、ug=、uo=、…..

如:chmod u=rwx  /data/file

  •                   授权表示法:直接操作一类用户的一个权限位:u+、u-、g+…..

如:chmod u-x  /data/file

方法二:chmod [OPTION]… OCTAL-MODE FILE…八进制数字法

                     例如:chmod 660  /data/file

方法三:chmod [OPTION]… –reference=RFILE FILE…(参考RFILE文件权限,给FILE文件赋权)

                     例如:chmod –reference=/etc/issue  /data/file

2、特殊权限:SUID、SGID、Sticky

(1)SUID

  •                功能:设置了SUID权限后,当用户运行某二进制程序文件时,暂时拥有文件属主权限。
  •                作用对象:二进制可执行程序文件
  •                前提条件:该文件属主原本具有执行权限
  •                展示位置:属主的x位,如果属主有x,则显示为s,如果属主没有x,则显示为S

        设置方法:

chmod u+s FILE

chmod 4XXX FILE

取消方法:

chmod u-s FLIE

(2)SGID

  •            功能:( 针对二进制可执行程序文件)设置了SGID权限,当用户运行某二进制程序文件时,暂时拥有文件属组权限。
  •              常用(针对目录而言) 当目录属组有写权限,且有SGID权限时,那么所有属于此目录的属组的用户,在此目录中新建文件或目录时,新文件的属组自动归为此目录的属组;

               (可理解为:一般是一个小组协同工作时,创建一个协作目录,让这个目录拥有SGID权限,然后小组内的用户都在同一个属组内,让此属组对该目录有写w权限,这样,小组内的人在这个目录下创建文件时,文件的属组就变成了该目录的属组,这样组内的其他人就对文件具有写权限了,实现了小组工作的协同,但此时组内的人也能删出其他人创建的文件,为了防止这种情况发生,就有了STICKY权限)

  •         作用对象:二进制程序文件和目录
  •         前提条件:对二进制程序文件有x权限,对目录而言有w和x权限
  •         展示位置:文件或目录的属组的执行权限位,如果属组有x,则显示为s,如果属组没有x,则显示为S

        设置方法:

chmod g+s FILE|DIR

chmod 2XXX FILE|DIR

取消方法:

chmod g-s FILE|DIR

(3)Sticky

  •          功能:对目录设置Sticky权限,每个用户能创建新文件,但只能删除自己的文件,无法删除组内其他用户创建的文件(对于属组或全局可写的目录,组内的所有用户或系统上的所有用户,在此目录中都能创建新文件或删除所有的已有文件)
  •         作用对象:目录
  •         前提条件:属组或全局可写的目录,目录有执行权限
  •         展示位置:other的执行权限位,如果other原本有执行权限,显示为小写t,否则,显示为大写T

        设置方法:

chmod o+t DIR

chmod 1XXX  DIR

取消方法:

chmod o-t  DIR

3、设定文件特定属性

chatter

        chattr +A FILE   可以禁止访问时更改访问时间atime

chattr +i  FILE   只读,不能删除,修改内容,改名

chattr +a FILE   只读,能修改内容(echo aaa >> file追加,不能nano),不能删除,改名,移动

取消对应的权限可以将+改为-

lsattr

         lsattr file 查看文件的特定属性

lsattr  /data/* 查看目录/data/下所有文件的特定属性

4、访问控制列表ACL

ACL:Access Control List,实现灵活的权限管理,除了文件的属主、属组和其他人,可以对更多的用户设置权限(CentOS7之前的版本无ACL功能,需手动增加 tune2fs -o acl /dev/sdb1 或者mount -o acl /dev/sdb1 /mnt/data)

ACL生效顺序:所有者,自定义用户,自定义组,其他人。(按顺序匹配,点到即止)

mask起到限定设置acl的最高权限的作用,只影响除了所有者和other的之外的人和组,类似于“马路限高杆”,

setfacl

  •         语法:setfacl [-bkndRLP] { -m|-M|-x|-X … } file …

        选项:

 -b FILE|DIR     删除所有自定义的acl规则,基本的acl规则(所有者,群组,其他)将被保留

 -k DIR     删除默认的acl规则

-R     –recursive:递归的对所有文件及目录进行操作

-m  表示设置ACL规则

-x   表示取消ACL规则

-M acl.txt FILE  表示从指定的文件中读取规则,并以此为模板,设置指定文件FILE中的规则( acl.txt格式为:u:username:rx或g:groupname:rw等)

-X acl2.txt FILE  表示从指定的文件中读取规则,并以此为模板,删除指定文件FILE上的规则(acl.txt格式为:u:username 或 g:groupname 等)

-n       –no-mask:不要重新计算有效权限。setfacl默认会重新计算ACL mask,除非mask被明确的制定。

–mask     重新计算有效权限,即使ACL mask被明确指定

–set     表示清空原ACL的权限,用新的代替,需要注意的是,新的ACL规则中必须要包含文件自身的权限(UGO)定义,也就是类似:( 如 setfacl –set u::rwx,g::r,o::,u:bican:rwx – FILE

–set-file 以文件为模板,创建指定文件的ACL。如:(getfacl FILE1 | setfacl –set-file=-  FILE2表示复制FILE1的ACL权限给FILE2)

 加上d:设置了默认规则之后,表示在此之后在该目录下新建的文件或目录都默认具有的ACL权限,但现有文件和目录本身还是要另外单独设置ACL规则

权限表达式:

[d:] u:username:mode 指定用户的权限,如果username为空,表示设置文件所有者的权限。加d:表示设置的是默认规则

[d:] g:groupname:mode 指定群组的权限,如果groupname为空,表示设置文件所有群组的权限。加d:表示设置的是默认规则

[d:] m: :mode 指定mask权限, 加d:表示设置的是默认规则

示例:setacl -m u:bican:0 f1  设置用户bican对文件f1权限为0

setfacl -m u::rw f1 设置文件f1属主权限为读写

setfacl -x g:g2 f1   删除文件f1的g2附属组

setfacl -m mask::r f1  设置文件f1属主和other之外的用户或组最高权限为r

getfacl

getfacl FILENAME   查看文件或目录ACL权限的详细信息

备份和恢复ACL

   getfacl -R /tmp/dir1 > acl.txt    保存/tmp/dir1目录的ACL设置

   setfacl -R -b/tmp/dir1  递归删除dir1的ACL

   setfacl -R –set-file=acl.txt /tmp/dir1  或者   setfacl –restore acl.txt    恢复dir1的ACL设置

   getfacl -R /tmp/dir1  查看dir1的ACL,完成

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/96151

(1)
bican813bican813
上一篇 2018-04-15
下一篇 2018-04-15

相关推荐

  • 用户管理

    用户管理 注意:用户是通过UID来确定身份的,比如root之所以为管理员就是因为root的UID是0。在centos6上系统用户是1-499,普通用户是500以上的;而在centos7上系统用户是1-999,普通用户是1000以上。系统用户默认不登录。 注意跟用户相关的命令只有管理员账户才有权限 需要用到的命令:useradd usermod userdel…

    Linux笔记 2018-04-08
  • 小白加薪升职记第一次笔记

    选择了马哥,你就站在了技术的前端。

    2018-05-12
  • 文件管理类命令

    Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 <1>命令:CP 概念:用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。 语法:c…

    2018-05-28
  • Linux发行版的基础目录名称命名法则及功用规定

    FHS filesystem hierarchy standard /bin: 所有用户可用的基本命令程序文件 /sbin: 供系统管理使用的工具程序 /boot: 引导加载器必须用到的各静态文件:kernel,initramfs(initrd),grub等; /dev: 存储特殊文件或设备文件 /etc:系统程序的配置文件,只能为静态 /home:普通的用…

    Linux笔记 2018-05-11
  • Linux-用户、组和权限

    本章内容 解释Linux的安全模型 解释用户帐号和组群帐号的目的 用户和组管理命令 理解并设置文件权限 默认权限 特殊权限 ACL   安全3A 资源分派: Authentication:认证 Authorization:授权 Accouting|Audition:审计   用户user 令牌token,identity Linux用户:…

    2018-04-05