权限和ACL访问控制 -01-权限
权限位
rwxrwrwx
:
左三位:定义user(owner)的权限,属主权限
中三位:定义group的权限,属组权限
有三位:定义other的权限,其他的权限
进程对文件的访问权限应用模型:
进程的属主与文件的属主是否相同。如果相同,则应用属主权限;否则去检查金证的属于是否属于文件的属组;如果是,则应用属组权限,否则,就只能引用other权限。
权限:r
:readable,可读w
:writable,可写x
:executble,可执行
- 文件
r
:可获取文件的数据w
:可修改文件的数据x
:可将此文件运行为进程
- 目录
r
:可使用ls命令获取旗下的所有文件列表w
:可修改次目录下的文件列表,即创建或删除文件x
:可cd值此目录中,且可使用ll
来获取到所有文件详细属性信息
权限组合机制:
---
:二进制000
,十进制0
--x
:二进制001
,十进制1
-w-
:二进制010
,十进制2
-wx
:二进制011
,十进制3
r--
:二进制100
,十进制4
r-x
:二进制101
,十进制5
rw-
:二进制110
,十进制6
rwx
:二进制111
,十进制7
文件权限管理命令
chmod的三种用法:
chmod [OPTION]… MODE[,MODE]… FILE…
chmod [OPTION]… OCTAL-MODE FILE…
chmod [OPTION]… –reference=RFILE FILE…
三类用户:
u
:属主g
:属组o
;其他a
:所有
(1)MODE表示法:chmod [OPTION]... MODE[,MODE]... FILE...
- 赋值表示法:直接操作一类用户的所有权限位:
u=
g=
o=
a=
- 授权表示法:直接操作一类用户的一个或多个权限位:
u+
、u-
g+
、g-
o+
、o-
a+
、a-
(2)八进制表示法:chmod [OPTION]… OCTAL-MODE FILE…
(3)参考某个文件的权限:chmod [OPTION]… –reference=RFILE FILE…
(4)chmod选项
-R
:recursive ,递归修改
从属关系管理命令
主要有两个命令chown
,chgrp
chown
更改文件的的属主(属组也能更改)
-R
:递归修改
用法:chown -R USERNAME[:FILENAME] FILENAME
例如:chown -R oracle:oinstall /u01
chgrp
更改文件的属组
-R
:递归修改
用法:chgrp -R GROUPNAME FILENAME
用到很少,chown可以修改属组,这个命令就被打入冷宫了,很少用。
新建文件和目录的默认权限(umask)
新建的文件和文件夹都有一个默认权限,那么是如何实现的呢?就是用umask实现的。
umask原理:
- 针对新建文件:
666-umas
k后的权限就是新建文件的权限 - 针对新建目录:
777-umask
后的权限就是新建目录的权限。
我们可以看/etc/bashrc
里面的umask规则:
![]/images/1496043520606.png)
看代码,即UID 大于199
,umask为002
,否则umask为022
普通用户UID在CentOS 6下大于500,CentOS7下大于1000,所以umask值为002
,默认创建的文件和文件夹权限分别为666-002=664
、777-002=775
。
而root用户,UID为0,umask值为022,默认创建的文件和文件夹权限分别为666-022=644
、777-022=755
。
练习题
1、当用户xiaoming
对/testdir
目录无执行权限时,意味着无 法做哪些操作?
无法cd到这个目录,无法删除、移动这个文件。
2、当用户xiaoqiang
对/testdir
目录无读权限时,意味着无 法做哪些操作?
无法查看这个目录,也无法ls查看这个目录里面内容。
3、当用户wangcai
对/testdir
目录无写权限时,该目录下的只读文件file1
是否可修改和删除?
不可以修改和删除。
4、当用户wangcai 对/testdir 目录有写和执行权限时,该目 录下的只读文件file1是否可修改和删除?
可以修改和删除,但是没有读权限的话,只能盲找。
5、复制/etc/fstab
文件到/var/tmp
下,设置文件所有者为 wangcai
读写权限,所属组为sysadmins
组有读写权限,其他人无权限
6、误删除了用户wangcai
的家目录,请重建并恢复该用户家目录及相应的权限属性
最新文章
- Think in Java(Java编程思想)-第2章 一切都是对象
- Bootstrap编码规范
- iOS数据持久化(二)SQLite
- 标准的数据获取 -ios
- 网站全局js代码
- lex 和 yacc 的区别与联系
- 数学思想方法-分布式计算-linux/unix技术基础(5)
- iOS 时间戳的问题
- JAVA基础——最简单的多重循环程序
- 理解Python协程:从yield/send到yield from再到async/await
- Android : Camera之camx hal架构
- connect、resource和dba三种标准角色
- C++中的inline用法
- Swift学习笔记8--Optional Chaining
- centos7 docker私有仓库搭建
- 关于webapi加入Route引用出现问题的解决方案
- GoogleCpp风格指南 8)格式 _part1
- Kafka管理工具介绍
- Oracle - ORA-28547: Connection to server failed,probable Oracle Net admin error (Navicat)
- robotframwork数据库测试(一)——pymysql与pyodbc
热门文章
- C++中类中常规变量、const、static、static const(const static)成员变量的声明和初始化
- unity混音
- 在Debian下利用URLOS快速安装SqlServer2017
- IIS配置相关问题:Framework 4.5 在IIS 7.5中运行
- logstash 处理信息规律研究
- 分享个昨天学的,sqlserver查表的所有列的列名,类型,长度的sql
- jmeter—获取当前时间(年、月、日),往前/往后n天
- supervisor管理superset
- [转帖].MegaRAID SAS 9361-8i 开箱 极简测试
- powershell 删除7天前的文件