Linux文件权限与访问控制

Linux文件权限与访问控制

访问文件用户3类:

    文件所有者
    同组成员
    其他人

权限
--- --- --- (rwx) 依次对应3类用户

file:6rw 4r 0 x1
dir: 7rwx 5r-x 0

默认权限

umask内部命令 用来生成数字 umask+default =file666/dir777
umask +数字 修改umask值
umask 本质含义取消对应权限
    原理计算:
            666                 666
            125                 125

            110110110           541
            001010101           542     对于文件偶数不动奇数全加一
                                        对于目录不必要这么做,目录
            110100010                   执行权限没有担心

            642
配置文件
        个人用户配置  .bashrc 在文件末尾追加 umask 251   source .bashrc  

        /etc/bashrc 下配置了root和普通用户的umask默认值
            root 022  普通 002
umask
    -p >> .bashrc 追加umask值到个人配置文件中
    -S 模式法 写了默认权限 

命令:

chmod
    法一:
        chmod who opt per file
            who:u g o(a可以代表ugo)
            opt:+ - =
            per: r w x (X s .特殊权限)
    ps: chmod u+x,g-w,o= file
    参考一个文件权限修改另一个文件
    chmod --reference=filename1 filename2 filename3

    法二:数字法
        r:4
        w:2
        x:1
        chmod 764 filename

    chmod -R a+x dirname 递归加执行权限
    chmod -R +X dirname X仅仅对目录加执行,文件不加执行
                        当文件原有执行权限则会加执行权限
chown
    -c或——changes:效果类似“-v”参数,但仅回报更改的部分;
    -f或--quite或——silent:不显示错误信息;
    -h或--no-dereference:只对符号连接的文件作修改,而不更改其他任何相关文件;
    -R或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理;
    -v或——version:显示指令执行过程;

    --dereference:效果和“-h”参数相同;
    --help:在线帮助;
    --reference=<参考文件或目录>:把指定文件或目录的拥有者与所属群组全部设成和参考文件或目录的拥有者与所属群组相同;
    --version:显示版本信息。

    chown root:root
    chown .root file    只改属组
    chown root. file 属主属组全改
chgrp

特殊权限:

SUID:作用在继承二进制程序所有者的x位上,当一个用户运行该程序,由于存在s权限
      则它会继承该程序的属主的权限。只适合在二进制可执行程序上。
    chmod u+s(-s)
          4---      都表示加s权限。
SGID: 作用在所有者的x位上,当一个用户运行该程序,由于存在s权限
      则它会继承该程序的属组的权限
    chmod g+s
          4---
sticky1:粘滞位。无法删除别人的文件,即使2人都拥有其目录的w权限,作用
                在文件夹上。
    chmod o+t
          1---
SUID: user,占据属主的执行权限位
        s: 属主拥有x权限
        S:属主没有x权限 ?
SGID: group,占据属组的执行权限位
        s: group拥有x权限
        S:group没有x权限
Sticky: other,占据other的执行权限位
        t: other拥有x权限
        T:other没有x权限

############################################
chattr
  chattr +i(-i) 不能删除,改名,更改
  chattr +a(-a) 只能追加内容
  chattr +A(-A)?锁定atime时间 vi修改文件之后锁失效
lsattr 显示特定属性
############################################

访问控制列表ACL:

ACL:Access Control List,实现灵活的权限管理
    除了文件的所有者,所属组和其它人,可以对更多的用户设置权限
    CentOS7 默认创建的xfs和ext4文件系统具有ACL功能 后续添加的分区也支持
    CentOS7 之前版本,默认手工创建的ext4文件系统无ACL功能,需手动增加
        tune2fs –o acl /dev/sdb1
        mount –o acl /dev/sdb1  /mnt/test
    ACL生效顺序:所有者,自定义用户,自定义组,其他人
        若属于多个组的话,若没有用户权限匹配则多个组权限可以累积

#############################################
  启用acl之后组权限已经改变为mask权限
#############################################

为多用户或者组的文件和目录赋予访问权限rwx
 mount -o acl /directory
 getfacl  file |directory  查看文件或者目录的acl权限
 setfacl  -m  u:wang:rwx file|directory
 setfacl  -Rm g:sales:rwX directory  递归
 setfacl  -M  file.acl file|directory   通过文件调用批量添加
 setfacl  -m  g:salesgroup:rw file| directory
 setfacl  -m  d:u:wang:rx  directory   在目录下新建文件的权限设置
 setfacl  -x  u:wang  file |directory
 setfacl  -X file.acl  directory    通过文件批量删除权限

ACL文件上的group权限是mask 值(自定义用户,自定义组,拥有组的最大权 限),而非传统的组权限
    setfacl -m mask::r file 对文件file设置mask权限
getfacl  可看到特殊权限:flags
通过ACL赋予目录默认x权限,目录内文件也不会继承x权限
base ACL 不能删除
setfacl  -k  dir 删除默认ACL权限
setfacl –b  file1清除所有ACL权限
getfacl  file1 | setfacl --set-file=-   file2  复制file1的acl权限给file2  

Mask需要与用户的权限进行逻辑与运算后,才能变成有限的权限(Effective  Permission) 用户或组的设置必须存在于mask权限设定范围内才会生效
setfacl  -m mask::rx  file
    --set选项会把原有的ACL项都删除,用新的替代,需要注意的是一定要包含 UGO的设置,不能象-m一样只是添加ACL就可以
    示例:  setfacl --set u::rw,u:wang:rw,g::r,o::- file1 

备份和恢复ACL
    主要的文件操作命令cp和mv都支持ACL,只是cp命令需要加上-p 参数。但是 tar等常见的备份工具是不会保留目录和文件的ACL信息
    getfacl -R /tmp/dir1 > acl.txt
    setfacl -R -b /tmp/dir1
    setfacl -R  --set-file=acl.txt  /tmp/dir1(不一定要全恢复可以选择其中一个文件或者目录恢复) 递归按照acl.txt文件恢复acl权限,也可以实现单个文件或者目录的恢复
    setfacl --restore acl.txt   恢复acl权限
    getfacl -R /tmp/dir1    

原文地址:http://blog.51cto.com/11010461/2095019

时间: 2024-11-08 10:32:43

Linux文件权限与访问控制的相关文章

如何备份及恢复Linux文件权限

你可能听说或碰到过这样的事情:一个系统管理员菜鸟不小心输入"chmod -R 777 /"从而导致了巨大的悲剧,使得整个系统遭到了严重的破坏.在日常管理中,我们有许多工具可以用来备份文件权限,如cp.rsync.etckeeper等.如果你使用了这个备份工具,那么你的确不需要担心改变的文件权限问题. 但如果只是想暂时备份文件权限(而不是文件本身),例如:为了阻止一些目录的内容被覆盖暂时移除该目录下所有文件写的权限:或是正在排除文件权限问题的过程中需要对文件进行chmod命令操作.在这些

谈谈如何备份及恢复Linux文件权限

你可能听说或碰到过这样的事情:一个系统管理员菜鸟不小心输入"chmod -R 777 /"从而导致了巨大的悲剧,使得整个系统遭到了严重的破坏.在日常管理中,我们有许多工具可以用来备份文件权限,如cp.rsync.etckeeper等.如果你使用了这个备份工具,那么你的确不需要担心改变的文件权限问题. 但如果只是想暂时备份文件权限(而不是文件本身),例如:为了阻止一些目录的内容被覆盖暂时移除该目录下所有文件写的权限:或是正在排除文件权限问题的过程中需要对文件进行chmod命令操作.在这些

Linux文件权限设置

基本概念 https://linux.cn/article-7418-1.html#3_8880 用户管理 文件权限设置 -添加用户账户08% -理解 /etc/passwd 中的内容12% -理解 /etc/group 中的内容17% -修改用户信息20% -锁定和解锁账户31% -删除用户账户34% -用户组管理36% -删除用户组46% -Linux 文件权限48% -Linux 特殊文件属性69% -访问 root 账户并启用 sudo74% -总结 设置用户访问控制规则 非管理员用户,

Linux 文件权限总结

在 Linux 中最基本的任务之一就是设置文件权限.理解它们是如何实现的是你进入 Linux 世界的第一步.如您所料,这一基本操作在类 UNIX 操作系统中大同小异.实际上,Linux 文件权限系统就直接取自于 UNIX 文件权限(www.lampbrother.net). 但不要以为理解文件权限需要长时间的学习.事实上会很简单,让我们一起来看看你需要了解哪些内容以及如何使用它们. 基础概念 你要明白的第一件事是文件权限可以用来干什么.当你设置一个分组的权限时发生了什么?让我们将其展开来说,这个

Linux文件权限表示

属主,属组,其他用户 Linux下一个文件的权限包含属主.群组和其他人的权限,并且各个用户对该文件具有单独设置的权限,这是 Linux 权限模型的核心. 那么什么是属主,属组,其他用户呢? 属主: 属主即一个文件的拥有者,一般为这个文件的创建者 属组: Linux下的每个用户都会属于一个组别.那么这个组别就叫做属组 其他用户: 其他用户即为属主和属主所在属组以外的所有人, 例如:有个用户A,用户名是 A,他的属组名称也是 A ,还有一个用户B,用户名是B 他的属组名称也是B 这个时候用户A 创建

修改linux文件权限命令

修改linux文件权限命令:chmod Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作.可执行权限表示允许将该文件作为一个程序执行.文件被创建时,文件所有者自动拥有对该文件的读.写和可执行权限,以便于对文件的阅读和修改.用户也可根据需要把访问权限设置为需要的任何组合. 有三种不同类型的用户可对文件或目录进行访问:文件所有者

Linux文件权限详解

在Linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录. 通过设定权限可以从以下三种访问方式限制访问权限:只允许用户自己访问:允许一个预先指定的用户组中的用户访问:允许系统中的任何用户访问.同时,用户能够控制一个给定的文件或目录的访问程度.一个文件活目录可能有读.写及执行权限.当创建一个文件时,系统会自动地赋予文件所有者读和写的权限,这样可以允许所有者能够显示文件内容和修改文件.文件所有者可以将这些权限改变为任何他想指定的权限.一个文件也许只有读权限

修改linux文件权限

Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作.可执行权限表示允许将该文件作为一个程序执行.文件被创建时,文件所有者自动拥有对该文件的读.写和可执行权限,以便于对文件的阅读和修改.用户也可根据需要把访问权限设置为需要的任何组合. 有三种不同类型的用户可对文件或目录进行访问:文件所有者,同组用户.其他用户.所有者一般是文件的

修改linux文件权限命令:chmod

修改linux文件权限命令:chmod Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作.可执行权限表示允许将该文件作为一个程序执行.文件被创建时,文件所有者自动拥有对该文件的读.写和可执行权限,以便于对文件的阅读和修改.用户也可根据需要把访问权限设置为需要的任何组合. 有三种不同类型的用户可对文件或目录进行访问:文件所有者