Linux文件权限管理

用户权限

在Linux系统中,一个用户对文本所能执行的权位称为用户权限

一.文件权力属性

(1) [root@pc root]# ls -l install.log

-rw-r–r– 1 root root 26195 Dec 17 10:42 install.log

澳门金沙国际 1

image.png

(2) 文件属性操作

  • chown 设置文件的主人:
    设置格式 ‘chown owner’ 创设一个f1文件,它的主人为root,通过chown
    命令将f1 的所有者改为wangcai
![](https://upload-images.jianshu.io/upload_images/6851471-7f4609d274e58859.png)

image.png
  • chown也可以修改所属于组和主人
    格式: chown owner:group file
    ——其中’:’可以用’.’来替代,也得以’:group file’只改变组
    成立一个f2文书,查看所有者和所属组,然后经过chown wangcai:sasles
    f2
    则将f2的属性改变

    澳门金沙国际 2

    image.png

chown -R 为递归: 'chown -R wang jerry/'
将jerry里的所有用户都改为wang用户

一、USERS

UID为0的用户为协会者用户,任何一个UID为0的用户,都可为管理员用户
若系统绝非了UID=0的总指挥用户,则系统不可能起动
用户ID:

管理员:root,UID为0
系统用户:UID为1-499,1-999,对医护进度取得资源进行权力分配
普通用户:UID为500-65535,1000-65535,交互式登录
始建用户时指定UID时,可指定UID>65535的UID,即UID可指定为70000

组(group)GID

管理员组:root GID为0
系统组:1-499,1-999(CENTOS7)
普通组:500-65535,1000-65535

liunx中,允许用户名和组名相同,windows中不容许用户和组同名

  • linux安全上下文:
    运转中的程序即经过,进度所可以访问资源的权限取决于进度的运行者的地点
  • linux组的品种:

用户的主要组:
用户必须属于一个且唯有一个主组
组名同用户名,且仅包蕴一个用户
用户的附加组:
一个用户可以属于零个或多个帮衬组

  • passwd文件格式:

login name:登录用名(danran)
passwd:密码位(X)
UID:用户地方编码(1000)
GID:登录默许所在组编号(1000)
GECOS:用户全名或注释即描述
home directory:用户主目录(/home/danran)
shell:用户默许使用shell(/bin/bash)

  • passwd配置文件格式描述:
    澳门金沙国际 3

name:passwd:UID:GID:GECOS:directory:shell

修改用户的性质信息也可径直改动/etc/passwd配置文件
只要去除用户的家目录,则在登录时会自动登录到/目录上,但不会禁止登录

  • shadow文件格式

1、登录用名
2、用户密码: 一般用sha512
加密,$6位sha512算法,$5位sha256算法,$1为md5加密
3、从1970 年1 月1 日起到密码如今两回被更改的日子,单位day
4、密码再过几天能够被改成(0 代表随时可被更改)
5、密码再过几天必须被转移(99999 表示并非过期)
6、密码过期前几日系统提醒用户(默许为一周)
7、密码过期几天后帐号会被锁定
8、从1970 年1 月1日算起,多少天账号失效

澳门金沙国际 4

  • !禁止用户登录

锁定用户时,禁止用户登录和切换,但root用户不受限制可以健康切换,空口令可以登录

  • 密码加密:

加密机制:

加密:明文–> 密文
解密:密文–> 明文

单向加密:哈希算法(散列算法),原文不相同,密文必不一致,密码数据一致,加密过后的结果也是平等的
哈希算法的特征:若是五个密码的数目一致,则加密处理后的结果也是同一的,因此用户密码在加密时又因为前边又加了一部分即兴的妄动数,即加密过后第2个和第四个$$之间的数,由此口令跟随机数综合起来的结果也就不均等。加的肆意数称之为salt(盐)

澳门金沙国际 5

要是知道确定的salt随机数,则动用openssl命令推算密码口令,相同的算法及相同的密码,算出来的加密口令不均等,不过指定salt数据,则推算出来的md5数据则是完全一致的

同一算合法长输出,得到密文不可逆推出原始数据
奇异权限,文件权限。雪崩效应:先导标准的微薄转移,引起结果的皇皇改变
md5: message digest, 128bits
sha1: secure hash algorithm, 160bits
sha224: 224bits
sha256: 256bits
sha384: 384bits $5
sha512: 512bits $6

centos6加密算法为sha512,shadow文件中意味为$6,$1对应的加密算法是md5

澳门金沙国际 6

  • man authconfig | grep passwd 可寻找扶助立异的加密算法
    改变定义加密算法 authconfig –passalgo=sha256 — update

  • 加密算法保存文件为 ==/etc/login.defs==

  • 口令有效期策略:

![](https://timgsa.baidu.com/timg?image&quality=80&size=b10000_10000&sec=1497800534&di=5fa16992512d68a8d04fd2d822d1f7d4&imgtype=jpg&src=http://b.hiphotos.baidu.com/image/pic/item/3b87e950352ac65ca99fce2af1f2b21192138ad5.jpg)
  • 密码复杂性策略

行使数字、大写字母、小写字母及特殊字符中足足3种
足够长
使用随机密码
定期更换, 不要使用以来早就选取过的密码

  • group文件格式

群组名称:就是群组名称
群组密码:经常不要求设定,密码是被记录在/etc/gshadow
GID的 :就是群组的 ID
以方今组为附加组的用户列表( 分隔符为逗号)

  • gshadow文件格式

群组名称:就是群组名称
群组密码:
组管理员列表:组管理员的列表,更改组密码和成员
以当下组为附加组的用户列表:(分隔符为逗号)

  • 新建用户的连锁安插文件模板和指令

vim /etc/default/useradd
/etc/skel/* 存放用户系统环境
澳门金沙国际,/etc/login.defs 加密算法保存文件
newusers passwd 格式文件 批量创立用户
chpasswd 批量改动用户口令

  • 用户和组的布局文件

/etc/passwd:用户及其特性音讯(名称、UID、主组ID等)
/etc/grup:组及其性质信息
/etc/shadow:用户密码及其相关属性
/etc/gshadow:组密码及其相关属性
/var/spool/mail:用户的邮件目录

  • 加密算法保存文件为 ==/etc/login.defs==

  • 命令:

    pwunconv:将用户密码从shadow文件中显示在passwd文件中,即裁撤密码映射,则/etc/shadow文件将自动消失
    pwconv:打开用户投影密码,将密码映射到/etc/shadow文件
    chfn 修改用户的描述音讯
    finger:查看用户的叙说音信(需安装finger*软件包)
    chfn danrna 修改danran用户描述信息
    finger danran 查看danran用户的叙说新闻
    chsh -s /bin/csh danran 修改danran用户的shell类型

  • 用户和组管理命令

用户管理命令
useradd
usermod
userdel
组帐号维护命令
groupadd
groupmod
groupdel

  • 用户创制useadd

      useradd [options] LOGIN     
          -u  UID :  [UID_MIN, UID_MAX] 定义在/etc/login.defs   
          -o  配合-u  选项,不检查UID 的唯一性,可使用重复的uid号   
          -g GID :指明用户所属基本组,可为组名,也可以GID   
          -c  "COMMENT" :用户的注释信息   
          -d  HOME_DIR: 以指定的路径( 不存在) 为家目录   
          -s  SHELL :  指明用户的默认shell 程序,可用列表在/etc/shells文件中   
          -G  GROUP1[,GROUP2,...] :为用户指明附加组,组须事先存在   
          -N  不创建私用组做主组,使用users 组做主组   
          -m:创建家目录   
          -M:不创建家目录   
          -r: 创建系统用户 CentOS 6: ID<500 ,CentOS 7: ID<1000   
              系统用户不自动创建家目录,也不会创建邮件目录,shell环境不一定
    

新建用户的默认值设定:/etc/default/useradd 文件中

呈现或更改默许设置:
useradd -D
useradd –D -s SHELL
useradd –D –b BASE_DIR,更改默许家目录地点eg /app
useradd –D –g GROUP

  • 用户属性修改:

      usermod [OPTION] login
          -u UID:  新UID
          -g GID: 新主 组
          -G GROUP1[,GROUP2,...[,GROUPN]]] :新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用 -a 选项
          -a:附加不覆盖原来的组
          -s SHELL :新的默认SHELL
          -c 'COMMENT' :新的注释信息
          -d HOME:  新家目录不会自动创建;若要创建新家目录并移动原家数据,同时使用-m 选项
          -l login_name:  新的名字   eg usermod -l newtom tom
          -L: lock 指定用户, 在/etc/shadow 加密码栏的增加 !
          -U: unlock 指定用户,将 将 /etc/shadow 的 密码栏的 !  拿掉
          -e YYYY-MM-DD:  指明用户账号过期日期
          -f INACTIVE:  设定非活动期限
    
  • 查阅用户的相干id新闻

      id [OPTION]... [USER]
          -u:  显示UID
          -g:  显示GID
          -G:  显示用户所属的组的ID
          -n:  显示名称,需配合ugG 使用
    
  • 创建组

      groupadd [OPTION]... group_name
          -g GID:  指明GID 号;[GID_MIN, GID_MAX]
          -r:  创建系统组
              CentOS 6: ID<500
              CentOS 7: ID<1000
    
  • 修改和删除组

组属性修改:groupmod

groupmod [OPTION]… group

-n group_name: 新名字
-g GID: 新的GID
组删除:groupdel
groupdel GROUP

删除附加组

usermod -G “” tom 删除tom的附加组
gpasswd -d tom bin 将tom从bin附加组删除

  • 更改组密码:
    组密码:gpasswd

      gpasswd [OPTION] GROUP    
          -a user:  将user 添加至指定组中   
          -d user:  从指定组中移除用户user   
          -A user1,user2,...:  设置有管理权限的用户列表   
    
  • newgrp 命令:临时切换主组

若是用户本不属于此组,则必要组密码
newgrp danran 将团结的主组临时改为danran

  • 变动和查看组成员

      groupmems [options] [action]    
      options:
          -g, --group groupname 更改为指定组 ( 只有root)
      Actions:   
          -a, --add username 指定用户加入组   
          -d, --delete username 从组中删除用户   
          -p, --purge 从组中清除所有成员
          -l, --list 显示组成员列表
    

groups [OPTION].[USERNAME]… 查看用户所属组列表

澳门金沙国际 7

  • su切换用户

切换用户的不二法门:

su UserName
:非登录式切换,即不会读取目的用户的布局文件,不改变当前工作目录
su – UserName
:登录式切换,会读取目的用户的布署文件,切换至家目录,完全切换

root su 至其他用户无须密码;非root 用户切换时索要密码

换个身份执行命令:

su [-] UserName -c ‘COMMAND’

su – root ‘cat /etc/shadow’ 以root的身份实施cat命令

选项:-l –login

su -l UserName 于 相当于 su – UserName

  • 去除用户

userdel [OPTION]… login

-r: 删除用户 家目录

  • 设置密码

passwd [OPTIONS] UserName: 修改指定用户的密码,仅root 用户权限
passwd: 修改自己的密码

常用选项:     
    -l: 锁定指定用户   
    -u: 解锁指定用户
    -e: 强制用户下次登录修改密码   
    -n mindays:  指定最短使用期限   
    -x maxdays :最大使用期限   
    -w warndays :提前多少天开始警告   
    -i inactivedays :非活动期限   
    --stdin :从标准输入接收用户密码   

echo ” PASSWORD ” | passwd –stdin USERNAME

  • 修改用户密码策略

chage [OPTION]... LOGIN
    -d:最近一次修改时间
    -E:过期时间
    -I:非活动时间
    -m:最短使用期限
    -M:最长使用期限
    -W:警告时间
    –l 显示密码策略
        chage -l danran 列出用户口令策略的相关信息

示例:

chage -d 0 tom 下一次登录强制重设密码
chage -m 0 –M 42 –W 14 –I 7 tom
chage -E 2016-09-10 tom

  • change:更改账号口令策略
  • getent:查看文件的笔录音信,只查看文件中某个用户的上上下下音信

getent passwd danran 查看passwd文件中danran用户的信息

澳门金沙国际 8

  • 将用户增进进组

Gpasswd +组名 修改组密码
Newgrp +用户 把该用户拉长进组

gpasswd -a dan danran 将danran用户添加进dan组里

  • 修改用户和组命令使用

useradd 创建用户  eg  useradd danran(创建淡然用户)
groupadd 创建组
Userdel 删除用户
Groupdel 删除组
Passwd 修改用户密码
ghpasswd 批量修改用户口令
Gpasswd 修改组密码
Finger 用来简单的查看系统上的用户信息   eg finger rich
Useradd -c 描述信息 -d 指定家目录 -g 指定私有组 -G指定附加组 -s 指定shell环境    
    eg useradd -c       boss -d /user -u 1000 -G root -s /bin/bash
    -m:创建用户时,强制给用户创建目录
    -M:创建用户时,但不创建家目录
    -D:default,为useradd命令创建的用户指定新的默认值
Useradd -r 增加系统用户
Useradd -D 查看系统默认用户属性
Useradd -D -s /bin/tsch 修改系统默认用户的登录属性
Usermod 修改用户属性,参数同useradd一样,-
    -G GID:默认会覆盖原有的附加组,如果是添加,则同时使用-a选项
    -d /path/to/new_home:默认不会迁移用户的家目录,如果要迁移,则同时使用-m
    -l New_login_name:修改登录名称
Usermod -l 修改用户账号的登录名
Usermod -p 修改用户密码
usermod -s /bin/csh danran  修改用户的默认shell    
chsh -s /bin/bash danran   修改用户的默认shell   
Groupmod -g 修改GID   eg groupmod -g 2000 test
Groupmod -n 修改组名   eg groupmod -g test1 test
Passwd -e 强制用户下次登录时修改密码
Passwd -l 锁定用户
Passwd -u 解锁用户
    锁定用户时,禁止用户登录和切换,但root用户不受限制可以正常切换 
Passwd -d 删除用户密码
Userdel 删除用户及passwd、shadow、group、gshadow四个文件,保留用户名文件和电子邮件
Userdel -r 删除用户和用户的所有文件,包括用户名文件和电子邮件
groupmems -g danran -l   查看danran组里的其他成员,即显示以danran为附加组的用户
groupmems -g danran -d harry   将harry组从danran附加组里删除
gpasswd -d harry danran    从danran附加组中删除harry组
groups danran   列出danran用户的主组  
gpasswd danran  修改danran组的密码    
newgrp danran  将自己的主组临时变为danran    
    如果用户本身就属于danran附加组的成员,并shadow文件中记录了属于danran附加组,则不需要输入密码就可直接更换临时主组,但如果不属于附加组,则切换为danran主组需要输入danran组的密码    
gpasswd -a dan danran    将dan用户添加进danran组里      
    成员更改组成员关系后,用户必须重新登录才能获得最近更改的组成员关系

Chsh:修改用户默认shell
Chfn:修改注释信息
vipw:vim 编辑passwd文件
vigr:vim 编辑group文件
pwck:语法检查,检查用户文件格式
grpck:语法检查,检查组文件格式
newusers passwd     根据passwd格式文件批量创建用户

基本权限 UGO

文本权限设置: 可以赋于某个用户或组
可以以何种措施 访问某个文件

文件权限管理之: UGO设置基本权限(r、w、x)

rw-r--r-- alice hr install.log

权限对象:
属主:         u
属组:         g
其他人:       o

权限类型:
读:r          4
写:w         2
执行: x        1

文件属性

澳门金沙国际 9

Paste_Image.png

小心: 普通用户无法推行 ‘chown’命令

  • chgrp 设置文件的属组音信
    格式: charg libai
    f2——将f2文件的所属组改为libai(前提libai这么些组存在)
    charg -R:递归

二、文件权限

  • 文件权限
    澳门金沙国际 10
r(readable) w(writable) x(eXcuable) u(owner) g(group) o(other) a(all)
执行 所有者 所属组 其他人 所有人
4 2 1

用户访问文件,按照匹配顺序依次匹配,假设普通用户文件的持有者和所属组其中一个有履行权限,-o没有-x权限,纵然root用户不属于该文件所有者和兼具组,root用户如故得以借用-X执行权限

  • 去除文件,跟文件本身的权位没有涉嫌,而跟目录本身有涉嫌,因为文件名存储在父目录结构块中,
  • 目录权限:

目录若只有读写权限,只可以查看目录文件列表,不可能访问文件和cd进目录(查看,删除),要是唯有执行权限,可以cd进目录,不过无法ls列出文件列表,可以进行目录中的文件,执行是基础权限,若知道文书名,可以直接访问目录中的文件;写权限,需合营x权限才能奏效,假设要刨除目录下的文件,目录必须求有实践权限和写权限

文件:
    r:  可使用文件查看类工具获取其内容
    w:  可修改其内容
    x:  可以把此文件提请内核启动为一个进程
目录:
    r:  可以使用ls 查看此目录中文件列表
    w:  可在此目录中创建文件,也可删除此目录中的文件
    x:  可以使用ls -l 查看此目录中文件列表,可以cd 进入此目录
    X:递归修改目录执行权限时,只给所有的目录x 权限,而不给文件x执行权限,但是如果文件中有任何一个人有执行权限,则文件将会全部加上执行权限  
  • chmod 修改文件权限

chmod [OPTION]... OCTAL-MODE FILE...
    -R:  递归修改权限
chmod [OPTION]... MODE[,MODE]... FILE...
    MODE: 
        修改一类用户的所有权限:
        u= g= o= ug= a= u=,g=
    修改一类用户某位或某些位权限
        u+ u- g+ g- o+ o- a+ a- + -

chmod [OPTION]... --reference=RFILE FILE...  参考RFILE 文件的权限,将FILE 的修改为同RFILE

权限设置eg:

chgrp sales testfile
chown root:admins testfile
chmod u+wx,g-r,o=rx file
chmod -R g+rwX /testdir
chmod 600 file
chown mage testfile

若用户并未其他权力,则设置权限为空,赋值权限也可一向赋八进制数字

  • 八进制权限:
000 001 010 011 100 101 110 111
–x -w- -wx r– r-x rw- rwx
0 1 2 3 4 5 6 7
640:rw- r– — 755:rwx r-x r-x 7:— — rwx 0:— — —
  • 文件属性操作

    chown  设置文件的所有者   
chgrp  设置文件的属组信息   

修改文件的属组和属主

修改文件的属主:chown

chown [OPTION]... [OWNER][:[GROUP]] FILE...
    用法:
        命令中的冒号可用. 替换
        -R:  递归
        chown [OPTION]... --reference=RFILE FILE...
            eg:chown -R danran:danran qq
                chown -R danran.danran qq

修改文件的属组:chgrp

chgrp [OPTION]... GROUP FILE...
chgrp [OPTION]... --reference=RFILE FILE...
    -R  递归

用户属于某个附加组时,才能修改文件的属组为这个附加组
  • 新建文件或目录的默许权限

umask掩码:从777或666中,将文件对应的权柄位去掉,从而得出默许权限
umask值:可以用来保存在开创文件权限
新建FILE 权限: 666-umask

倘若所得结果某位存在执行(奇数)权限,则将其权力+1

  • umask值计算权限
    澳门金沙国际 11

新建DIR 权限: 777-umask
非特权用户umask是002

root 的umask是022
umask: 查看umask值
umask #: 设定umask值

umask 002

umask –S 形式格局展现

澳门金沙国际 12

umask –p 输出可被调用

澳门金沙国际 13

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

==设置权限

权限位

rwx rwx rwx
从不辱职分右,八个一组,分别定义了文本所有者,所属组,other对文件拥有的权限

专注:普通用户也得以实施 charg命令,当普通通用户属于该组时就足以举办。

三、文件系统的独特权限

  • Suid 和 guid 的卓绝权限及sticky位

Suid
当在一个二进制文件上拔取了suid后,那么任何人在实施该命令时临时拥有命令拥有人的权杖,只能应
用在可执行文件上
u+s

sgid
当在一个二进制文件上选用了sgid后,那么任什么人在实施该命令时暂时拥有命令拥有组的权杖,只好动用在可执行文件上,假诺在一个目录上利用了sgid后,那么任何人在该目录创造文件/目录的所有组会继承目录本身的组
g+s

Sticky
假若在一个目录上应用了sticky权限后,那么该目录中的文件仅文件拥有人和root用户能去除
o+t

  • SUID, SGID, Sticky

二种常用权限:r, w, x user, group, other
安全上下文
前提:进度有属主和属组;文件有属主和属组

(1) 任何一个可执行程序文件能不可能开行为经过,
取决发起者对程序文件是还是不是有所举办权限
(2) 启动为经过之后,其过程的属主为发起者,
进程的属组为发起者所属的组
(3) 进度访问文件时的权能,取决于进程的发起者

(a) 进度的发起者,同文件的属主:则利用文本属主权限
(b) 进度的发起者,属于文件属组;则动用文本属组权限
(c) 应用文本‘其余’权限

  • 可执行文件上的SUID权限

其它一个可执行程序文件能无法启动为经过:取决发起者对程序文件是或不是有所举办权限

起步为经过之后,其经过的属主为原程序文件的属主
SUID 只对二进制可执行程序有效;SUID 设置在目录上无意义
权力设定:

chmod u+s FILE…
chmod u-s FILE…

  • 可执行文件上的SGID权限

任何一个可执行程序文件能否够开行为经过:取决发起者对先后文件是不是持有进行权限

启航为经过之后,其经过的属主为原程序文件的属主
权限设定:

chmod g+s FILE…
chmod g-s FILE…

  • 目录上的SGID权限

默许境况下,用户成立文件时,其属组为此用户所属的主组
若是某目录被设定了SGID
,则对此目录有写权限的用户在此目录中创立的文书所属的组为此目录的属组
万般用于成立一个合作目录

权限设定:

chmod g+s DIR…
chmod g-s DIR…

  • Sticky位

抱有写权限的目录经常用户可以去除该目录中的任何公文,不管该公文的权杖或拥有权
在目录设置Sticky 位,唯有文件的主人或root可以去除该文件
sticky设置在文件上无意义

权限设定:

chmod o+t DIR…
chmod o-t DIR…

  • 权限位
SUID:4 SGID:2 STICKY: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 +i 不可以去除,改名,更改
chattr +a 只可以增添内容
lsattr 显示特定属性

1. 转移文件是属主、属组

=chown:
[root@localhost ~]# chown alice.hr file1              //改属主、属组
[root@localhost ~]# chown alice     file1             //只改属主
[root@localhost ~]# chown        .hr file1            //只改属组
=chgrp:
[root@localhost ~]# chgrp it file1                    //改文件属组
[root@localhost ~]# chgrp -R it dir1                  //改文件属组

权限

r: Readable 读
w: Writable 写
x: eXcutable 执行

二.文书权限

(1)首先文件的权杖紧要针对三类对象进行定义

owner: 属主 u group: 属组 g other: 其他 o
三类对象的权限:
r:对文本有读的权柄
w:对文件有写的权杖
x:对文件有履行的的权位

  • 文件:
    r: 可以查阅内容,确定文件类型
    w: 可修改其内容
    x: 可以把此文件提请内核启动为一个进程,决定是还是不是足以推行,对root也有效果
![](https://upload-images.jianshu.io/upload_images/6851471-4291cda76fead268.png)

image.png



查看f2文件:我们可以看出,f2的用户'wangcai'的权限为'rw-'说明它具有读和写的功能  
所属组为'sasles'的权限为'rw-' 也具有读和写的权限
而其他用户只有写的权限
  • 目录:
    唯有’r’权限: 能够利用ls查看此目录普通话件列表 ,不过不可能访问
    ,也无法实施cd命令(删除和查阅)
    唯有’w’权限:
    可在此目录中开创文件,也可去除此目录中的文件(但须要x权限才能立见功能)
    唯有’x’权限: 不得以行使ls
    -l查看此目录普通话件列表,但可以访问目录下的文本(前提知道文书名),也足以cd进入此目录——执行权力是个主题能力
  • 目录:
    X:只给目录x权限,对文件:假使文件中有x权限,就足以追加赋予’x’权限,借使文件没有’x’权限就不给予该权限

(2)文件权限操作命令

  • chmod:修改权限
    修改方式: chmod who opt per file
    who: 代表有何人——u ,g ,o a(所有人)
    opt: 代表操作——’+'(扩大权限) ‘-‘(收缩权限) ‘='(赋予权力)
    per: ‘r’权限 ‘w’权限 ‘x’权限

    澳门金沙国际 14

    image.png

chmod -R g+rwX
/testdir:递归模式,对用户组增加读写执行权限,然后对/testdir目录下的文件递归赋予权限  
chmod 660 file :给文件赋予了u=rw, g=rw ,o=

四、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 生效顺序:所有者,自定义用户,自定义组,其余

getfacl 查看文件的acl属性
setfacl设置文件的acl属性

-m:创建cal
    u:用户
    g:组
    o:其他人
-x:删除acl权限  
-b:清除所有的acl设置
-m:设置mask的值
-b,--remove-all:删除所有扩展的acl规则,基本的acl规则(所有者,群组,其他)将被保留。
-k,--remove-default:删除缺省的acl规则。如果没有缺省规则,将不提示。
-n,--no-mask:不要重新计算有效权限。setfacl默认会重新计算ACL mask,除非mask被明确的制定。 
--mask:重新计算有效权限,即使ACL mask被明确指定。
-d,--default:设定默认的acl规则。 
--restore=file:从文件恢复备份的acl规则(这些文件可由getfacl -R产生)。通过这种机制可以恢复整个目录树的acl规则。此参数不能和除--test以外的任何参数一同执行。
--test:测试模式,不会改变任何文件的acl规则,操作后的acl规格将被列出。
-R,--recursive:递归的对所有文件及目录进行操作。 
-L,--logical:跟踪符号链接,默认情况下只跟踪符号链接文件,跳过符号链接目录。
-P,--physical:跳过所有符号链接,包括符号链接文件。 
--version:输出setfacl的版本号并退出。

setfacl -x u:wang file |directory 删除wang用户的acl权限,删除不根本
setfacl -k dir 删除默许ACL权限
setfacl –b file1 清除所有ACL权限
getfacl file1 | setfacl –set-file=- file2 复制file1的acl
权限给file2

澳门金沙国际 15

setfacl -m u:danran:rwx passwd 对passwd文件添加danran用户rwx权限,

  • 用户或组的安装必须存在于mask权限设定限制内才会卓有成效

setfacl -m mask::rx file

–set 选项会把原来的ACL
项都剔除,用新的代表,必要小心的是早晚要含有UGO 的装置,不可能象-m
一样只是添加ACL就能够
示例:

setfacl –set u::rw,u:wang:rw,g::r,o::- file1

为多用户或者组的文本和目录赋予访问权限rwx

• mount -o acl /directory
• getfacl file |directory
• setfacl -m u:wang:rwx file|directory
• setfacl -Rm g:sales:rwX directory
• setfacl -M file.acl file|directory
利用编辑好的acl设置文件批量设置acl

澳门金沙国际 16

• setfacl -m g:salesgroup:rw file| directory 创设某组的acl权限
• setfacl -m d:u:wang:rx directory
对目录创立默许的acl权限,会作为目录下新建文件的默许权限

澳门金沙国际 17

• setfacl -x u:wang file |directory
删除wang用户的acl权限,删除不到底
• setfacl -X file.acl directory 依照acl权限文件批量删除acl权限

  • 备份和死灰复燃ACL

最主要的公文操作命令cp和mv都协助ACL,只是cp 命令必要丰裕-p参数。不过tar
等普遍的备份工具是不会保留目录和文书的ACL音信

getfacl -R /tmp/dir1 > acl.txt
将tmp/dir1目录下具有文件的权能导入到act.txt文件中保留
setfacl -R -b /tmp/dir1 删除/tmp/dir1目录下所有文件的权杖
setfacl -R –set-file=acl.txt /tmp/dir1
依照act.txt文件中记录的acl权限还原/tmp/dir1目录下拥有文件的acl权限

setfacl –set u::rw,u:wang:rw,g::r,o::- file1

>为多用户或者组的公文和目录赋予访问权限rwx
>>• mount -o acl /directory
• getfacl file |directory
• setfacl -m u:wang:rwx file|directory
• setfacl -Rm g:sales:rwX directory
• setfacl -M file.acl file|directory
利用编辑好的acl设置文件批量设置acl

澳门金沙国际 18

• setfacl -m g:salesgroup:rw file| directory 创立某组的acl权限
• setfacl -m d:u:wang:rx directory
对目录创制默认的acl权限,会作为目录下新建文件的默许权限

澳门金沙国际 19

• setfacl -x u:wang file |directory
删除wang用户的acl权限,删除不干净
• setfacl -X file.acl directory 按照acl权限文件批量删除acl权限

  • 备份和恢复生机ACL
    >主要的公文操作命令cp和mv都援救ACL,只是cp
    命令要求添加-p参数。可是tar
    等普遍的备份工具是不会保留目录和文书的ACL音讯
    >>getfacl -R /tmp/dir1 > acl.txt
    将tmp/dir1目录下所有文件的权能导入到act.txt文件中保存
    setfacl -R -b /tmp/dir1 删除/tmp/dir1目录下所有文件的权杖
    setfacl -R –set-file=acl.txt /tmp/dir1
    根据act.txt文件中记录的acl权限还原/tmp/dir1目录下拥有文件的acl权限
    setfacl –restore acl.txt
    依照act.txt文件中著录的acl权限还原当前目录下拥有文件的acl权限
    getfacl -R /tmp/dir1 查看当前目录下具有文件的ACL权限
  • ACL小结

ACL
文件上的group权限是mask值(自定义用户,自定义组,拥有组的最大权力),
而非传统的组权限
getfacl 可观察特殊权限:flags
因而ACL 赋予目录默许x 权限 , 目录内文件也不会继承x权限
base ACL 无法去除,即默许的权位
mask 只影响除所有者和other 的之外的人和组的最大权力
Mask 需求与用户的权限举办逻辑与运算后,才能变成不难的权杖(Effective
Permission)

2. 改变权限

=a. 使用符号
                    对象        赋值符        权限类型
                    u                +                r
chmod             g                 -                w          file1
                    o                =                x
                    a
[root@localhost ~]# chmod u+x file1                 //属主增加执行
[root@localhost ~]# chmod a=rwx file1               //所有人等于读写执行
[root@localhost ~]# chmod a=- file1                 //所有人没有权限
[root@localhost ~]# chmod ug=rw,o=r file1           //属主属组等于读写,其他人只读
[root@localhost ~]# ll file1                        //以长模式方式查看文件权限
-rw-rw-r-- 1 alice it 17 10-25 16:45 file1          //显示的结果

=b. 使用数字
[root@localhost ~]# chmod 644 file1
[root@localhost ~]# ll file1
-rw-r--r-- 1 alice it 17 10-25 16:45 file1

对文本的权位意义:

r: 可应用文件查看类工具得到其内容
w: 可修改其内容
x: 可以把此文件提请内核启动为一个经过

(3)新建文件和目录的默许权限

===设置权限示例

针对hr部门的造访目录设置权限,须要如下:

  1. root用户和hr组的职工可以读、写、执行
  2. 其余用户没有其它权力

    [root@localhost ~]# groupadd hr
    [root@localhost ~]# useradd hr01 -G hr
    [root@localhost ~]# useradd hr02 -G hr
    [root@localhost ~]# mkdir /home/hr

    [root@localhost ~]# chgrp hr /home/hr
    [root@localhost ~]# chmod 770 /home/hr
    [root@localhost ~]# ll -d /home/hr/
    drwxrwx—. 2 root hr 4096 3月 13 14:26 /home/hr/

首要: r、w、x权限对文件和目录的意思

澳门金沙国际 20

对目录的权能意义:

r: 可以使用ls查看此目录中文件列表
w: 可在此目录中创制文件,也可去除此目录中的文件
x: 可以动用ls -l查看此目录中文件列表,可以cd进入此

umask值 可以用来保存在创设文件权限

  • 始于算法: umask+default=file666/dir/777

    文本的最大权力为666(u=rw- g=rw-
    o=rw-)’不可以给文件赋予执行的权利,否则会有危险’,所以文件最大权力为666——当umask为022时,那么新创设的公文应当为666-022=644
    结果如图:

    澳门金沙国际 21

    image.png

    目录的最大权力为777(u=rwx g=rwx
    o=rwx)——同理,创制一个新的文书夹(dir5)应该为777-022=755
    结果如图:

    澳门金沙国际 22

    image.png

    *可是一旦umask为015时,依照初叶算法的结果应该为:651(rw- r-x
    –x)然则结果如图所示:

    澳门金沙国际 23

    image.png

    就此那里引出了umask的效应:它真的的算法是从对应大校umask的指定权限去掉
    比如以上图为例:666——对应二进制是:110110110,uamsk:000001101

    透过对位去权限的的规范得出结果为:110110010和上图结果同样
    权力: 666-umask 借使所得结果某位存在实施(奇数)权限,则将其权力+1
    ,结果为偶数则不变
    新建DIR权限: 777-umask
    非特权用户umask是 002 
    root的umask 是 022 
    umask: 查看 
    umask #: 设定 umask 002 
    umask –S 方式形式体现 u=rw g=r o=
    umask –p 输出可被调用 突显umask结果 可以用’umask
    -p >>.bashrc’来代表nano的效用
    大局设置: /etc/bashrc
    用户设置:~/.bashrc

  • 小练习

1、当用户xiaoming对/testdir 目录无执行权限时,意味着无法做怎么着操作?
答:用户对目录没有举办权限,意味着无法举办cd命令,也无从进去目录内,就算有读权限也无力回天进入,无法跻身目录内查看文件列表,不能修改
2、当用户xiaoqiang对/testdir 目录无读权限时,意味着无 法做怎么样操作?
答:没有读权限就不能查看目录列表的内容,除非以前就精通目录列表中的文件名
3、当用户wangcai 对/testdir 目录无写权限时,该目录下的
只读文件file1是或不是可修改和删除? 
答:没有写的权能就无法履行创造或者删除目录,因为该目录下的文本唯有只读的权限
4、当用户wangcai 对/testdir 目录有写和履行权限时,该目
录下的只读文件file1是或不是可修改和删除? 
答:当所有写和实践的权力时,就足以兑现对只读文件删除,不过不可以修改,可以改名
5、复制/etc/fstab文件到/var/tmp下,设置文件所有者为
wangcai读写权限,所属组为sysadmins组有读写权限,其他 人无权限 
答:首先 groupadd sysadmins 创造一个组,然后

澳门金沙国际 24

image.png

澳门金沙国际 25

image.png

6、误删除了用户wangcai的家目录,请重建并復苏该用户家
目录及相应的权位属性
答:
方法一

澳门金沙国际 26

image.png

方法二
cp -r /etc/skel /home/mage chown -R mage:mage /home/mage chmod 700 /home/mage

演示1: 对文本的影响

[root@localhost ~]# mkdir /dir10
[root@localhost ~]# touch /dir10/file1
[root@localhost ~]# chmod 777 /dir10/file1 

[root@localhost ~]# ll -d /dir10/
drwxr-xr-x. 2 root root 4096 3月  11 18:37 /dir10/
[root@localhost ~]# ll /dir10/file1 
-rwxrwxrwx. 1 root root 0 3月  11 18:37 /dir10/file1

[alice@tianyun ~]$ cat /dir10/file1 
[alice@tianyun ~]$ rm -rf /dir10/file1 
rm: 无法删除"/dir10/file1": 权限不够

用户访问文件得到的权能的论断进度

先看是否主人,即使是主人,间接匹配权限,后边的就不看了,不是就往下看,一旦匹配,不往下走,匹配顺序:所有者,所属组,other

**三. Linux文件系统上的新鲜权限 **

– suid

意思:影响所有者的权柄,用户可以持续程序所有者的功效,功用在主人上
效益:功效在可举行的二进制程序,将眼前运作着的身份切换成该程序所有者的地位,权限也为该所有者的权能,但suid无法作用在目录上

澳门金沙国际 27

image.png

权限设定格局:
chmod u+s file
chmod u-s file
chmod 4777 file——’4’代表suid 就是给文件加上’s’权限
s权限位在主人的施行位上,当文件本身装有’x’权限时,增添’s’位,则突显’s’,当文件本身并未实施权限时,扩张’s’权限则会显示’S’
亟需注意的是:在少数执行顺序中,若是加上’s’权限,就代表,任何发起者都继承了该文件的root权限,可以实践各样操作,那自己是不安全的,展现如如图
[root@centos7 ~]#ll /bin/nano
-rwxr-xr-x. 1 root root 205904 Jun 10 2014 /bin/nano
[root@centos7 ~]#chmod u+s /bin/nano
[root@centos7 ~]#ll /bin/nano
-rwsr-xr-x. 1 root root 205904 Jun 10 2014 /bin/nano

– sgid

意思:影响所属组的权能,功用在所属组上
效果:功能在可举办的二进制程序上,继承运行程序所属组的权力
权限设定格局:
chmod g+s file
chmod g-s file
规律类似suid
sgid也足以功用在目录上,对某目录有写权限的用户,在该目录下创办了一个新的公文,那么此文件就接二连三了该目录的属组
权力设定形式:
chmod g+s dir
chmod g-s dir
chmod 2770 dir
权力位的投射在所属组的推行位上,有关大小写的难点与suid相同

– sticky

功效:只听从在目录上,对文本无效,唯有所有者或是root能去除自己的文本
在传统意义上,只假若具有写权限的目录,那么一般任何用户可以去除该目录中的任何文件,无论该文件的权力或具有权
,所以加入sticky,来保安目录下的文书
权力设定:
chmod o+t DIR
chmod o-t DIR
chmod 1770 DIR
权力位的照射在其别人的施行位上,有关大小写的标题与suid相同

澳门金沙国际 28

image.png

– 设定文件特定属性

(1)chattr +i 不能去除,改名,更改 对文件起到保安作用

澳门金沙国际 29

image.png

实施 chattr -i 可以回复
chattr +i shadow
[root@centos7 app]#lsattr shadow
—-i———– shadow
[root@centos7 app]#chattr -i shadow
[root@centos7 app]#lsattr shadow
—————- shadow
[root@centos7 app]#lsattr f1
(2)chattr +a 只好伸张内容 
(3)lsattr 突显特定属性* ## ACL访问控制列表
职能:除了文件的所有者,所属组和任哪个人,可以对更多的用户设置权限
ACL生效顺序:所有者,自定义用户,自定义组,其余人
CentOS7 默许创设的xfs和ext4文件系统具有ACL成效 
CentOS7 此前版本,默许手工成立的ext4文件系统无ACL功 能,需手动扩展tune2fs –o acl /dev/sdb1 mount –o acl /dev/sdb1 /mnt/test

  • 设置ACL权限——setfacl
    setfacl -m u:wangcai:rwx file|directory
    ——对wangcai那么些用户设置权限,可职能在文件上,也足以作用在目录上setfacl
    -Rm g:sales:rwX directory
    ——协作递归成效对sales组以及成员都安装了rwX权限,只出力在目录上,把’X’改为’x’就足以功用到文件上了
    [root@centos7 app]#setfacl -Rm u:wangcai:rwx /app
    [root@centos7 app]#ll /app
    total 8
    drwxrwsr-x+ 2 root sasles 25 Jul 25 10:34 dir
    drwxrwxr-x+ 3 root root 31 Jul 25 11:52 dir1
    -rw-rwxr–+ 1 wangcai root 541 Jul 25 11:29 f1
    -r–rwx—+ 1 root root 1978 Jul 25 10:43 shadow
    [root@centos7 app]#getfacl f1
    # file: f1
    # owner: wangcai
    # group: root
    user::rw-
    user:wangcai:rwx
    group::r–
    group:sasles:rw-
    mask::rwx
    other::r–
    [root@centos7 app]#getfacl dir1/dir2
    # file: dir1/dir2
    # owner: root
    # group: root
    user::rwx
    user:wangcai:rwx
    group::r-x
    mask::rwx
    other::r-x
    setfacl -M file.acl file|directory —— 调用功用
    [root@centos7 app]#touch acl.txt
    [root@centos7 app]#echo “u:wangcai:rwx” >acl.txt
    [root@centos7 app]#cat acl.txt
    u:wangcai:rwx
    [root@centos7 app]#stefacl -M acl.txt f1
    setfacl -M acl.txt f1
    [root@centos7 app]#getfacl f1
    # file: f1
    # owner: wangcai
    # group: root
    user::rw-
    user:wangcai:rwx
    group::r–
    group:sasles:rw-
    mask::rwx
    other::r–
    setfacl -m g:salesgroup:rw file| directory ——对那些组设置权限
    setfacl -m d:u:wang:rx directory
    ——对该目录下新成立的文本设置权限,不影响旧文件,只是针对目录有效
    setfacl -x u:wang file |directory ——删除wang用户和权限
    setfacl -X file.acl directory—— 删除权限
    setfacl -b directory——清空目录里的兼具文件的acl权限
    setfacl -k dir 删除默许ACL权限 
    setfacl –b file1清除所有ACL权限 
    setfacl -m mask::rx file
    ——除了other和所有者无法限制,其余的都被mask限制,相当于设置了一个高压线,不能够当先mask!
    [root@centos7 app]#setfacl -m mask::r f1
    [root@centos7 app]#getfacl f1
    file: f1
    owner: wangcai
    group: root
    user::rw-
    user:wangcai:rw- #effective:r–
    group::r–
    group:sasles:rw- #effective:r–
    mask::r–
    other::r–

  • 显示ACL权限——getfacl
    getfacl file |directory
    [root@centos7 app]#getfacl f1
    file: f1
    owner: wangcai
    group: root
    user::rw-
    user:wangcai:rw-
    group::r–
    group:sasles:rw-
    mask::rw-
    other::r–
    getfacl file1 | setfacl –set-file=- file2 复制file1
    的acl权限给file2
    getfacl -R /tmp/dir1 > acl.txt
    ——通过递归格局将ACL权限给acl.txt
    setfacl -R -b /tmp/dir1 ——以递归形式,清空该目录下的acl权限
    setfacl -R –set-file=acl.txt /tmp/dir1 ——恢复/tmp/dir的acl权限
    setfacl –restore acl.txt ——还原acl.txt权限
    getfacl -R /tmp/dir1——将acl权限递归给dir1目录下的文本

演示2: 对目录有w权限

[root@localhost ~]# chmod 777 /dir10/
[root@localhost ~]# chmod 000 /dir10/file1 
[root@localhost ~]# ll -d /dir10/
drwxrwxrwx. 2 root root 4096 3月  11 18:37 /dir10/
[root@localhost ~]# ll /dir10/file1 
----------. 1 root root 0 3月  11 18:37 /dir10/file1

[alice@tianyun ~]$ cat /dir10/file1 
cat: /dir10/file1: 权限不够
[alice@tianyun ~]$ rm -rf /dir10/file1 
[alice@tianyun ~]$ touch /dir10/file2

问题1:

[root@localhost ~]# ll /root/install.log
-rw-r--r--. 1 root root 46571 6月   1 23:37 /root/install.log
[alice@tianyun ~]$ cat /root/install.log
cat: /root/install.log: 权限不够

标题2: alice能删除/下的另曾外祖父文呢?

[root@localhost ~]# chmod 777 /
[root@localhost ~]# ll -d /
drwxrwxrwx. 27 root root 4096 6月   4 11:32 /
[alice@tianyun ~]$ rm -rf /etc

再一次认识一下文书和目录:

澳门金沙国际 30

文件权限操作命令

chmod

chmod[OPTION]… OCTAL-MODE FILE…
-R: 递归修改权限

chmod[OPTION]… MODE[,MODE]… FILE…
MODE:
修改一类用户的具备权力:
u= g= o= ug= a= u=,g=
修改一类用户某位或某些位权限
u+ u-g+ g-o+ o-a+ a-+ –

chmod[OPTION]… –reference=RFILE FILE…
参照RFILE文件的权杖,将FILE的改动为同RFILE

基本权限 ACL

文件权限管理之: ACL设置基本权限(r、w、x)
UGO设置基本权限: 只好一个用户,一个组和其余人
ACL 设置基本权限: r,w,x

奇异权限

SUID, SGID, Sticky
二种常用权限:r, w, x user, group, other
安然上下文
前提:进度有属主和属组;文件有属主和属组
(1)
任何一个可执行程序文件能无法启动为经过,取决发起者对先后文件是还是不是享有举办权限
(2) 启动为经过之后,其经过的属主为发起者,进度的属组为发起者所属的组
(3) 进度访问文件时的权位,取决于进程的发起者
(a) 进度的发起者,同文件的属主:则动用文本属主权限
(b) 进度的发起者,属于文件属组;则应用文本属组权限
(c) 应用文本“其余”权限

=ACL基本用法=

设置:
[root@localhost ~]# touch /home/test.txt
[root@localhost ~]# ll /home/test.txt    
-rw-r--r-- 1 root root 0 10-26 13:59 /home/test.txt

[root@localhost ~]# getfacl /home/test.txt
[root@localhost ~]# setfacl -m u:alice:rw /home/test.txt              //增加用户alice权限
[root@localhost ~]# setfacl -m u:jack:- /home/test.txt                //增加用户jack权限
[root@localhost ~]# setfacl -m o::rw /home/test.txt

查看/删除:
[root@localhost ~]# ll /home/test.txt 
-rw-rw-r--+ 1 root root 0 10-26 13:59 /home/test.txt
[root@localhost ~]# getfacl /home/test.txt

[root@localhost ~]# setfacl -m g:hr:r /home/test.txt
[root@localhost ~]# setfacl -x g:hr /home/test.txt                     //删除组hr的acl权限
[root@localhost ~]# setfacl -b /home/test.txt                          //删除所有acl权限

SUID

suid 放在所有者权限的x位,表现为徐熙媛(Barbie Hsu)
只得成效在二进制的可实施的次第上才有含义,不可以效率在非二进制可执行程序,所有用户在执行可实施二进制程序时继续所有者的权限
权力设定:
chmod u+s FILE…
chmod u-s FILE…

=查看扶助=

[root@localhost ~]# man setfacl
/EXAMPLES
[root@localhost ~]# getfacl file1 |setfacl  --set-file=- file2       //复制file1的ACL权限给file2

SGID

sgid 放在所属组权限的x位,表现为徐熙媛(英文名:Barbie Hsu)女士
同suid,所有用户在进行可举办二进制程序时继续所属组的权柄
权力设定:
chmod g+s FILE…
chmod g-s FILE…

=ACL高级用法=

mask:
用于临时降低用户或组(除属主和其他人)的权限
建议:为了方便管理文件权限,其他人的权限置为空
[root@localhost ~]# setfacl -m m::--- /home/file100.txt


default: 继承(默认)
要求: 希望alice能够对/home以及以后在/home下新建的文件有读、写、执行权限

思路:
步骤一: 赋予alice对/home读、写、执行权限
[root@localhost ~]# setfacl -m u:alice:rwx /home

步骤二: 赋予alice对以后在/home下新建的文件有读、写、执行权限 (使alice的权限继承)
[root@localhost ~]# setfacl -m d:u:alice:rwx /home

Sticky

Sticky (粘滞位)
放在other权限的x位,表现为大T(原本有实践权限表现为t,原本没有执行权限变现为T)
抱有写权限的目录平常用户可以去除该目录中的任何文件,无论该公文的权柄或拥有权
在目录设置Sticky 位,唯有文件的持有者或root可以去除该公文
sticky 设置在文书上无意义
权限设定:
chmod o+t DIR…
chmod o-t DIR…

高等权限 suid,sgid,sticky

题材1: 为何会破产!

[root@localhost ~]# ll /root/install.log
-rw-r--r--. 1 root root 46571 6月   1 23:37 /root/install.log
[alice@tianyun ~]$ cat /root/install.log
cat: /root/install.log: 权限不够

分析:
alice           /usr/bin/cat (alice)            /root/install.log
alice           /usr/bin/passwd (root)      /etc/shadow

高等权限的项目
suid 4
sgid 2
sticky 1 粘滞位

安装更加权限
a、字符
chmod u+s file
chmod g+s file
chmod g+s dir
chmod o+t dir

b、数字
chmod 4777 file
chmod 7777 file
chmod 2770 dir
chmod 3770 dir

大X

X(x权限特殊方式)
针对目录扩张x权限
对文件
1 无执行的公文,不会增添x权限
2 任意三种人有实施权限,也会扩展x权限

演示1:suid 普通用户通过suid提权 <针对文件>

在进程文件(二进制,可执行)上增加suid权限
[root@localhost ~]# chmod u+s /bin/cat
[root@localhost ~]# chmod u+s /bin/rm
[alice@tianyun ~]$ cat /root/install.log

普通用户可以修改密码:
alice           /usr/bin/passwd      /etc/shadow

[alice@tianyun ~]$ ll /etc/shadow
---------- 1 root root 1487 6月   4 13:43 /etc/shadow

[alice@tianyun ~]$ ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 30768 2月  17 2012 /usr/bin/passwd

[alice@tianyun ~]$ passwd 
更改用户 alice 的密码 。
为 alice 更改 STRESS 密码。
(当前)UNIX 密码:

[root@localhost ~]# ps aux |grep passwd
root      3674  0.0  0.0 165764  1884 pts/1    S+   14:34   0:00 passwd

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生效顺序:所有者,自定义用户,自定义组,其余人

为多用户或者组的文件和目录赋予访问权限rwx
•mount -o acl /directory
•getfacl file |directory
•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
值(自定义用户,自定义组,拥有组的最大权力),而非传统的组权限
getfacl可看出特殊权限:flags
经过ACL赋予目录默许x权限,目录内文件也不会继承x权限
base ACL 无法去除
setfacl-k dir 删除默许ACL权限
setfacl–b file1清除所有ACL权限
getfaclfile1 | setfacl–set-file=-file2 复制file1的acl权限给file2

mask只影响除所有者和other的之外的人和组的最大权力
Mask须求与用户的权限进行逻辑与运算后,才能变成不难的权杖(Effective
Permission)
用户或组的设置必须存在于mask权限设定限制内才会生效setfacl-m
mask::rxfile
–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
setfacl –restore acl.txt
getfacl -R /tmp/dir1

演示2:sticky 用户只好删除自己的文书 <针对目录>

[root@localhost ~]# mkdir /home/dir1
[root@localhost ~]# chmod 777 /home/dir1
测试:user1在/home/dir1建立文件, user2尝试删除!

[root@localhost ~]# chmod o+t /home/dir1
[root@localhost ~]# ll -d /home/dir1
rwxrwxrwt 2 root root 4096 09-02 02:26 /home/dir1
谁可以删除:
root
文件的所有者
目录的所有者

演示3:sgid 新建文件一连目录属组 <针对目录>

[root@localhost ~]# mkdir /home/hr
[root@localhost ~]# chgrp hr /home/hr/
[root@localhost ~]# chmod g+s /home/hr
[root@localhost ~]# ll -d /home/hr/
drwxr-sr-x. 2 root hr 4096 Dec  5 16:03 /home/hr/

[root@localhost ~]# touch /home/hr/file9
[root@localhost ~]# ll /home/hr/
-rw-r--r--. 1 root hr   0 Dec  5 16:03 file9

=================================================================
小知识:注意以下目录的正确权限,否则会导致程序不能正常运行
[root@wangcy ~]# ll -d /tmp /var/tmp/
drwxrwxrwt 14 root root 4096 07-26 10:15 /tmp
drwxrwxrwt  2 root root 4096 07-24 19:02 /var/tmp/
=================================================================
                文件                                                 目录
suid      执行的时候以所有者身份执行

sqid                                                                继承属组 

sticky                                                              用户只能删除自己的文件

经过掩码 mask umask

mask;
用于临时下降用户或组(除属主和其余人)的权限
mask决定了她们的参天权力
提出:为了方便文件管理,其余人的权限置为空

文件权限管理之: 进度umask

经过 新建文件、目录的默许权限会受到umask的影响,umask表示要裁减的权限

shell (vim,touch)      =======umask======>    新文件或目录权限
vsftpd                  =======umask======>    新文件或目录权限 
samba                   =======umask======>    新文件或目录权限 
useradd                 =======umask======>    用户HOME

示范1: 在shell进程中创立文件

[root@localhost ~]# umask                                     //查看当前用户的umask权限
0022
[root@localhost ~]# touch file800
[root@localhost ~]# mkdir dir800
[root@localhost ~]# ll -d dir800 file800 
drwxr-xr-x. 2 root root 4096 3月  11 19:40 dir800
-rw-r--r--. 1 root root    0 3月  11 19:40 file800

示例2:修改shell umask值(临时)

[root@localhost ~]# umask 000
[root@localhost ~]# mkdir dir900
[root@localhost ~]# touch file900
[root@localhost ~]# ll -d dir900 file900 
drwxrwxrwx. 2 root root 4096 3月  11 19:44 dir900
-rw-rw-rw-. 1 root root    0 3月  11 19:44 file900

示例3:修改shell umask值(永久)

[root@localhost ~]# vim /etc/profile   
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
    umask 002
else
    umask 022
fi
[root@localhost ~]# source /etc/profile       //立即在当前shell中生效

示例4:通过umask决定新建用户HOME目录的权位

[root@localhost ~]# vim /etc/login.defs 
UMASK           077
[root@localhost ~]# useradd gougou
[root@localhost ~]# ll -d /home/gougou/
drwx------. 4 gougou gougou 4096 3月  11 19:50 /home/gougou/

[root@localhost ~]# vim /etc/login.defs
UMASK           000
[root@localhost ~]# useradd yangyang
[root@localhost ~]# ll -d /home/yangyang/
drwxrwxrwx. 4 yangyang yangyang 4096 3月  11 19:53 /home/yangyang/

文件属性 chattr

文件权限管理之: 文件属性
注:设置文件属性(权限),针对具有用户,包蕴root

[root@localhost ~]# touch file100 file200 file300
[root@localhost ~]# lsattr file100 file200 file300 
-------------e- file100
-------------e- file200
-------------e- file300

[root@localhost ~]# man chattr
[root@localhost ~]# chattr +a file100 
[root@localhost ~]# chattr +i file200 
[root@localhost ~]# chattr +A file300

[root@localhost ~]# lsattr file100 file200 file300 
-----a-------e- file100
----i--------e- file200
-------A-----e- file300

[root@localhost ~]# echo 111 > file100                    //以覆盖的方式写入
bash: file100: Operation not permitted
[root@localhost ~]# rm -rf file100 
rm: cannot remove `file100': Operation not permitted
[root@localhost ~]# echo 111 >> file100                  //以追加的方式写入,例如日志文件

[root@localhost ~]# echo 111 > file200
bash: file200: Permission denied
[root@instructor ~]# echo 111 >> file200
bash: file200: Permission denied
[root@localhost ~]# rm -rf file200 
rm: cannot remove `file200': Operation not permitted

[root@localhost ~]# chattr -a file100
[root@localhost ~]# chattr -i file200
[root@localhost ~]# chattr -A file300

 

相关文章