五、Linux下权限的设定
5.1 查看及读取权限信息
5.1.1文件权限查看
查看文件权限----ls - l
或者ll
查看目录权限----ls -ld
或者ll - d
5.1.2 文件及目录属性的查看
文件:
-rw-r--r--. 1 root root 28 Jan 2 22:47 vconsole.conf
目录:
drwxr-xr-x. 5 root root 99 Jan 2 22:34 xdg
符号” | 文件表示 | 目录表示 | 其他 |
---|---|---|---|
第一个字符 | “ - ” 文本 | ”d“ 目录 | ”l“软链接;”c”字符设备;“b”块设备 |
三个rwx “-” 表示关闭 | 同其他 | 同其他 | 第一个rwx表示拥有者操作;所有组操作;其他用户操作; |
“ . ” | 安全上下文 | 安全上下文 | |
第一个“数字” | 文件硬链接个数 | 目录中子目录的个数 | |
第一个“root” | 文件拥有者 | 目录拥有者 | |
第二个“root” | 文件拥有组 | 目录拥有组 | |
第二个“数字” | 文件大小 | 目录子目录源数据大小 | |
“时间” | 文件最后被修改时间 | 目录内容最后一次被修改时间 | |
“最后一组数据“ | 文件名称 | 目录名称 |
5.2 文件拥有者及拥有组
5.2.1文件的身份划分
5.2.2 更改文件拥有者和拥有组
[root@foundation20 Desktop]$ chown student kk #将kk文件的所有者改为student
[root@foundation20 Desktop]$ chgrp student kk #将kk文件的所有组改为student
[root@foundation20 Desktop]$ chown -R student kk #将kk目录的所有者改为student
[root@foundation20 Desktop]$ chgrp -R student kk #将kk目录的所有组改为student
[root@foundation20 Desktop]$ chown student:student kk #将kk目录或者文件的所有者和所有组均改为student
[root@foundation20 Desktop]$ chown student.student kk #将kk目录或者文件的所有者和所有组均改为student
总结
chown | 改变文件所有者 |
---|---|
chgrp | 改变文件所有组 |
chown -R | 改变目录所有者 |
chgrp -R | 改变目录所有组 |
chown : /chown . | 同时改变所有者和所有组 |
5.3 文件权限理解
(1)文件权限
user-----> U
group------->G
other ----->O
(2)文件类型
符号 | 文件效果 | 目录效果 |
---|---|---|
- 权限关闭 | 此位权限为开启 | 此位权限为开启 |
r-查看权限 | 查看文件内容 | 查看目录的文件名称 |
w-可写权限 | 更改文件内容 | 增加或删除目录中文件 |
x-执行权权限 | 可以执行文件记录的程序 | 可以进入目录中的目录 |
5.4文件权限设定
5.4.1 字符方式设定文件
【u / g / o】 -------- 【 + / - / =】------------ 【 r / w / x】
例子:
[root@foundation20 Desktop]$ chmod u+r /mnt/kk #给用户拥有者加上一个对/mnt/kk 文件的读的功能
[root@foundation20 Desktop]$ chmod u-r /mnt/kk #给用户拥有者减去对/mnt/kk 文件的读的功能
[root@foundation20 Desktop]$ chmod u=r /mnt/kk #用户拥有着对/mnt/kk 文件的权限只有读
[root@foundation20 Desktop]$ chmod u+r,o+w /mnt/kk #给用户拥有者加上一个对/mnt/kk 文件的读的功能,对其他用户增加一个写的功能
5.4.2 数字方式设定文件
- 权限可以用一个八进制的数字来表示
权限 | 二进制 | 八进制 |
---|---|---|
- - - | 000 | 0 |
- - x | 001 | 1 |
- w - | 010 | 2 |
-wx | 011 | 3 |
r - - | 100 | 4 |
r - x | 101 | 5 |
r w - | 110 | 6 |
rwx | 111 | 7 |
例子:
[root@foundation20 Desktop]$ chmod 777 /mnt/kk #给所有用户所有组都开放所有权限
5.4.3 依照模板复制文件权限
- 用以下命令可以进行权限复制
[root@foundation20 Desktop]$ chmod --reference=/mnt/kk /etc/ll 将kk的权限复制给ll
5.5 系统预留权限
5.5.1 权限预留阀值的理解
- 资源存在意义在于共享,权限开放越大,共享效果越明显,但是安全性越差。
- 对于系统安全而言,开放权利越小,系统越安全。
- 在系统中开放应开放的权利,保留不安全的权利以确保系统功能性及安全性。
5.5.2 权限预留阀值的设定和修改
(1)临时阀值的修改 ---- umask
- 系统初始阀直为022
- 建立文件时文件权限为rw-r–r--
- 修改阀值为777
- 建立文件时文件权限为---------
- 文件默认权限为 rw-rw-rw-,改变阀值为222(-w–w--w-),【rw-rw-rw- 】—【-w–w--w-】=【r–r--r–】
- 目录默认权限为【rwxrwxrwx】改变阀值为333(-wx-wx-wx),【rwxrwxrwx】—【-wx-wx-wx】=【r–r--r–】
(2)永久改变权限阀值
- 修改/etc/bashrc 以及/etc/profile 系统文件
- 改变上面的umask后的数字可以改变其他用户的权限阀值,下面else是改变root用户的权限阀值
- 然后重新运行这两个文件如下:
[root@foundation20 Desktop]$ source /etc/bashrc
[root@foundation20 Desktop]$ source /etc/profile
- 如此已经完成了永久阀值的改变
5.6 特殊权限
5.6.1 粘制位–stickyid
(1)解释
- 对文件来说:表示文件即使没有被程序调用也会被加载到交换空间中。
- 对于目录:表示当目录上有 STICKYID 的权限时 , 所有用户在该目录下均可创建文件 , 但只有文件拥有者和 root 用户可以删除该目录下的文件。
(2)执行
[root@foundation20 Desktop]$ chmod o+t /mnt/kk
或者
[root@foundation20 Desktop]$ chmod 1777 /mnt/kk #其中777为原文件属性
实现本用户删除本用户建立文件
5.6.2 强制位—sgid
(1)解释
- 针对二进制可执行文件 : 该命令发起的程序是以该命令所有组的身份去执行。
- 针对目录 : 目录新建文件的所属组与该目录的所有组保持一致。
(2)实现:当本用户执行cat时他的组去执行
[root@foundation20 Desktop]$ chmod g+s /bin/cat
或者
[root@foundation20 Desktop]$ chmod 2777 /bin/cat #其中777为原文件属性
5.6.3 冒险位----suid
(1)解释
- 只针对于二进制可执行文件 , 使用拥有SUID权限的文件发其中记录的程序时以文件拥有者的身份去执行。
(2)实现:以用户拥有者的身份去执行。
[root@foundation20 Desktop]$ chmod u+s /bin/cat
或者
[root@foundation20 Desktop]$ chmod 4777 /bin/cat #其中777为原文件属性
5.7 ACL权限列表
5.7.1 facl 概述以及注意事项
- 传统的权限仅有三种身份(owner,group ,other)搭配三种权限(r,w,x),并没有办法但单纯的针对某一个使用者或某一个群组来设置特定的权限需求,此时就要使用ACL(文件访问控制列表,Access Control List)这个机制。
- 注意
目前的ACL 几乎已经默认加入在所有的常见Linux文件系统的挂载参数中,但是rhel6.0以及之前的版本默认不支持ACL的功能。
5.7.2 有关facl 的命令
getfacl | 查看权限列表 |
---|---|
setfacl -m | 设定权限 |
setfacl -x | 删除指定用户 |
setfacl -b | 关闭列表功能 |
- 例子
(1)touch 一个文件,查看文件权限列表,改变其他组权限。
(2)新加student权限。
(3)权限限制结果
(4)删除student权限
(5)关闭列表功能 “+”号变成“.”
5.7.3 facl 列表权限匹配顺序
- 资源拥有者
- 特定指定用户
- 权力开放多的组
- 权力开放少的组
- 其他用户
5.7.4 facl 的mask阀值
- mask阀值是指定用户能够获取的最大有效权限
- 当设定过的facl列表后用chmod缩减文件权限很可能会损坏mask
- mask 的设定可以用
[root@foundation0 Desktop]$ setfacl -m m:7 file
5.7.5 facl 的default权限
(1)default 权限特性
- 只对目录设定
- 只对目录中新出现的文件按或目录生效
- 对目录本身不生效
- 对目录原有文件不生效
(2)default权限设定方式
- 首先建立目录并设置default
- 在进行新建文件时权限发生变化