第八天 RHEL7.2 文件权限管理(第一部分)
一、文件的基本权限
文件有三种访问方式限制访问权限
第一种:文件所有者的访问权限
第二种:文件所有者同组的访问权限
第三种:其他人访问权限
当使用ls -l 或ll命令时,可查看此三种权限

在权限描述前,有一个字符,用来描述文件类型,具体文件类型与对应字符如下:
- 代表普通文件
d 代表directory,目录文件
l 代表link,连接文件,指向另一个文件
c 代表character,字符设备文件
b 代表blocks,块设备文件
s 代表sockets,套接字文件
p 代表pipes,命名管道文件
后两种不是很常见

三种权限分别代表 分别为文件所有者、文件所有者属组、其他人
每个权限由三个字符表示即如下:
- rw- r-- r-- root root 1.txt
文件类型 拥有者 属组 其他人 所有者 属组 对象
其中:
- 表示没有此权限
r 表示read,可读
w 表示write,可写
x 表示execute,可执行
==================================================================
二、文件的特殊权限
其实文件与目录设置不止这些,还有所谓的特殊权限。由于特殊权限会拥有一些“特权”.
因而用户若无特殊需求,不应该启用这些权限,避免安全方面出现严重漏洞,造成入侵,甚至摧毁系统!!!
s(SUID,Set UID):可执行的文件搭配这个权限,便能得到特权,任意存取该文件的所有者能使用的全部系统资源。请注意具备SUID权限的文件,heike经常利用这种权限,以SUID配上root帐号拥有者,无声无息地在系统中开扇后门,供日后进出使用。
如:passwd命令
ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 1月 30 2014 /usr/bin/passwd

举例:
使用root查看密码文件
使用gan查看密码文件
怎样实现所有用户都能查看呢

使用root用户给/bin/cat添加s特权

再添加一个普通用户尝试:

为什么可以查看了呢?其实我们是借用root用户的身份执行的
s(SGID,Set GID):设置在文件上面,其效果与SUID相同,只不过将文件所有者换成用户组,该文件就可以任意存取整个用户组所能使用的系统资源。
强调: SUID一般用在文件上(脚本) ,SGID用在目录上比较多
举例:
[root@xiaogan ~]# mkdir /test
[root@xiaogan ~]# groupadd xiaogan
[root@xiaogan ~]# useradd -G xiaogan gan1
[root@xiaogan ~]# useradd -G xiaogan gan2
[root@xiaogan ~]# chown :xiaogan /test
[root@xiaogan ~]# ll -d /test
drwxr-xr-x root xiaogan 8月 : /test
[root@xiaogan ~]# chmod /test
[root@xiaogan ~]# chmod g+s /test
[root@xiaogan ~]# ll -d /test/
drwxrwsr-x root xiaogan 8月 : /test/
[root@xiaogan ~]# su - gan1
[gan1@xiaogan ~]$ cd /test/
[gan1@xiaogan test]$ touch a
[gan1@xiaogan test]$ touch b
[gan1@xiaogan test]$ ll
total
-rw-rw-r-- gan1 xiaogan 8月 : a
-rw-rw-r-- gan1 xiaogan 8月 : b
[gan1@xiaogan test]$ exit
logout
[root@xiaogan ~]# su - gan2
[gan2@xiaogan ~]$ cd /test/
[gan2@xiaogan test]$ touch c
[gan2@xiaogan test]$ touch d
[gan2@xiaogan test]$ ll
total
-rw-rw-r-- gan1 xiaogan 8月 : a
-rw-rw-r-- gan1 xiaogan 8月 : b
-rw-rw-r-- gan2 xiaogan 8月 : c
-rw-rw-r-- gan2 xiaogan 8月 : d
别人在此目录中创建的任何目录和文件,所属组都是此目录的所属组
但是属主还是自己
但是任何人在此目录创建的文件,都可以被删除

============================================================
SBIT(Sticky):只针对目录有效,对文件无效,作用是防止别人删除掉对方的资料
[root@xiaogan ~]# ll -d /test/
drwxrwsr-x root xiaogan 8月 : /test/
[root@xiaogan ~]# chmod o+t /test
[root@xiaogan ~]# ll -d /test/
drwxrwsr-t root xiaogan 8月 : /test/
[root@xiaogan ~]# su - gan1
Last login: 六 8月 :: CST on pts/
[gan1@xiaogan ~]$ cd /test/
[gan1@xiaogan test]$ ll
total
-rw-rw-r-- gan1 xiaogan 8月 : a
-rw-rw-r-- gan1 xiaogan 8月 : b
-rw-rw-r-- gan2 xiaogan 8月 : c
-rw-rw-r-- gan2 xiaogan 8月 : d
[gan1@xiaogan test]$ rm -rf c
rm: cannot remove ‘c’: Operation not permitted
[gan1@xiaogan test]$
============================================================
因为SUID、SGID、Sticky占用x的位置来表示,所以在表示上会有大小写之分。
加入同时开启执行权限和SUID、SGID、Sticky,则权限表示字符是小写的:
[root@xiaogan ~]# ll test.txt
-rw-r--r-- root root 8月 : test.txt
[root@xiaogan ~]# chmod test.txt
[root@xiaogan ~]# ll test.txt
-rwxrwxrwx root root 8月 : test.txt
[root@xiaogan ~]# chmod u+s test.txt
[root@xiaogan ~]# ll test.txt
-rwsrwxrwx root root 8月 : test.txt
[root@xiaogan ~]# chmod u-x test.txt
[root@xiaogan ~]# ll test.txt
-rwSrwxrwx root root 8月 : test.txt
[root@xiaogan ~]#

===================================================================
三、文件权限操作命令 chmod
我们可以使用chmod命令修改文件权限,
u --> 拥有者权限
g -->属组权限
o -->其他人权限
例如:chmod u+x 1.txt
[root@xiaogan ~]# ll 1.txt
-rwxr--r--. 1 root root 1598 8月 5 13:48 1.txt

我们还可以使用三个数字来表示目前1.txt文件的访问权限
如图:

前三个字符,代表拥有者权限,中间三个字符代表属组权限,最后三个字符,其他人权限
可分别用一个数字表示三者对应权限,即744,如图:
rwx中,r对应二进制位中的第三位2的2次方,等于4
w对应二进制位中第二位2的一次方,等于2
x对应二进制位中第一位2的零次方,等于1
若没有对应权限取值为0,故1.txt文件访问权限用三位数表示如图

-rwx------: 文件所有者对文件具有读取、写入和执行的权限。
-rwxr―r--: 文件所有者具有读、写与执行的权限,其他用户则具有读取的权限。
-rw-rw-r-x: 文件所有者与同组用户对文件具有读写的权限,而其他用户仅具有读取和执行的权限。
drwx--x--x: 目录所有者具有读写与进入目录的权限,其他用户近能进入该目录,却无法读取任何数据。
drwx------: 除了目录所有者具有完整的权限之外,其他用户对该目录完全没有任何权限。
-rwx------:等于数字表示700
-rwxr―r--:等于数字表示744
-rw-rw-r-x:等于数字表示665
drwx―x―x:等于数字表示711
drwx------:等于数字表示700


===================================================================
使用命令chown命令,改变目录或文件的所有权
chown:
作用:修改文件拥有者和所属组
语法:chown USER:GROUP 对象
chown 用户:组 文件
操作更改属主:
chown 用户 对象
单独更改属组:
chown :组 对象
文件与目录不仅可以改变权限,其所有权及所属用户组也能修改,和设置权限类似,
用户可以通过图形界面来设置,或执行chown命令来修改。
要修改目录的权限,使用-R参数就可以了,方法和前面一样。 (-R 递归)
[root@xiaogan ~]# ll .txt
-rw-r--r-- root root 8月 : .txt
[root@xiaogan ~]# chown gan:gan 1.txt
[root@xiaogan ~]# ll .txt
-rw-r--r-- gan gan 8月 : .txt
[root@xiaogan ~]# chown root 1.txt
[root@xiaogan ~]# ll .txt
-rw-r--r-- root gan 8月 : .txt
[root@xiaogan ~]# chown :root 1.txt
[root@xiaogan ~]# ll .txt
-rw-r--r-- root root 8月 : .txt
[root@xiaogan ~]#

===================================================================
我们创建文件的默认权限是怎么来的?如何改变这个默认权限呢?
umask设置了用户创建文件的默认权限,它与chmod的效果刚好相反.
mask设置的是权限补码,而chmod设置的是文件权限码。
一般在/etc/profile、$ [HOME]/.bash_profile或$[HOME]/.profile中设置umask值。

vim /etc/profile

umask采用的是补码算法,对于文件,最大值是6,对于目录最大值是7
当我们使用root用户新建一个文件时,umask 022会执行
如此,会采用补码算法,拿掉我们新建文件的 属组 与 其他人 的 读权限,故权限是 755 如上图
对于Linux来说,文件默认是没有执行权限的,所以最大值是6,故在新建文件时,权限是644
umask命令允许你设定文件创建时的缺省模式,对应每一类用户(文件属主、同组用户、其他用户)存在一个相应的umask值中的数字。
对于文件来说,这一数字的最大值分别是6。
系统不允许你在创建一个文本文件时就赋予它执行权限,必须在创建后用chmod命令增加这一权限。
目录则允许设置执行权限,这样针对目录来说,umask中各个数字最大可以到7。
该命令的一般形式为:umask nnn 其中nnn为umask置000 - 777。
我们只要记住u m a s k是从权限中拿走相应的位即可。
如:umask值为022,则默认目录权限为755,默认文件权限为644。
计算方法:
文件默认权限=666-umask值 666-022=644
目录默认权限=777-umask 值 777-022=755
#这是一个好的记忆方法,但不严谨。
举例:创建 一个文件:
umask=033
touch c.txt
那么c.txt的默认文件权限是?
umask掩码为033 .
666-033=633 结果为: 644
第八天 RHEL7.2 文件权限管理(第一部分)的更多相关文章
- (大数据工程师学习路径)第一步 Linux 基础入门----用户及文件权限管理
用户及文件权限管理 实验介绍 1.Linux 中创建.删除用户,及用户组等操作. 2.Linux 中的文件权限设置. 一.Linux 用户管理 Linux 是一个可以实现多用户登陆的操作系统,比如“李 ...
- 实验楼学习linux第一章第三节用户及文件权限管理
用户及文件权限管理 常用命令 查看用户 whoami 创建用户 sudo adduser 用户名 切换账户 su 用户名 删除账户 sudo deluser 用户名 --remove-home 查看用 ...
- linux下的文件权限管理
权限管理有两个层面 第一层区分用户:文件属主(u), 组用户(g), 其它(o) 第二层区分权限:读(r),写(w),可执行(x) 这两个层次构成文件权限管理的二维结构 u g ...
- Linux 文件权限管理
1.文件权限的概述 在Linux系统下,使用权限来保护资源的安全将是一种不错的选择.系统中每个文件的权限都有可读(r).可写(w)和可执行(x)这三种权限,它们分别对应权限数值4.2 和1.系统为每个 ...
- 3,linux入门到上手-文件权限管理与配置
linux入门-文件权限管理与配置 一.关于linux的操作命令一般格式如下: 1,一行指令中第一个输入的部分绝对是"指令(command)"或"可可执行文件案(例如批次 ...
- 利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载
简述 可能大家都知道,php中有一个函数叫debug_backtrace,它可以回溯跟踪函数的调用信息,可以说是一个调试利器. 好,来复习一下 01 one(); 02 03 function one ...
- (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】
原文地址:http://www.cnblogs.com/melonblog/archive/2013/05/09/3062303.html 原文作者:豆浆油条 - melon 本文示例代码测试环境是W ...
- Mac os 下的文件权限管理
Mac os 下的文件权限管理 命令 ls -l -A 结果 -rw-r--r-- 1 user admin 2326156 4 12 15:24 adb 横线代表空许可.r代表只读,w代表写,x代表 ...
- Linux命令(四)——文件权限管理
文件权限是指对文件的访问控制,即哪些用户或群组可以访问文件以及执行什么样的操作. 一.文件的权限 1.Linux文件类型 (1)普通文件:文本文件+数据文件+可执行的二进制文件. (2)目录文件:即文 ...
随机推荐
- vim文本编辑操作
文本选择操作 为了方便地选取文本块,Vim编辑器引入了可视模式(Visual Mode).要选取一段文本块,操作步骤如下: ▶ 将光标移动到要复制文本块的开始处.要注意的是 ...
- python 之时间模块 time
time模块可以用于格式化日期和时间,时间间隔是以秒为单位的浮点小数.每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示. 下面是time模块常用的一些时间格式转换的函数.时间戳可以 ...
- AngularJS 笔记系列(四)控制器和表达式
控制器:在 Angular 中控制器是一个函数,用来向作用域中添加额外的功能.我们用它来给作用域对象设置初始状态,并添加自定义行为. 使用方法: var app = angualr.module('a ...
- delphi webbrowser 跨域访问
procedure IterateFrames(const AWB: IWebBrowser2);var Doc: IHTMLDocument2; Container: IOleContainer; ...
- Delphi锁定鼠标 模拟左右键 静止一会自动隐藏鼠标
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...
- 更新表中数据可以使用join
1.在修改数据库的时候,每写完一条SQL语句都要加上一个分号,这样每句之间是有依赖关系的,上面执行不成功不会执行下面的语句. 2.在更新数据库中数据时可以使用join. 例如: update res ...
- Linux系统——最小化安装
一.虚拟机进行Linux minimal 安装 网络连接:选择“自定义”——>VMnet8(NAT模式) #PC与NAT网络的虚拟机在不同网段,此时虚拟网卡作为网关建立通信 NAT模式可直接上I ...
- 3-CMD
诞生背景AMD其实已经算是解决了前端模块化开发的问题了,但是!!!但是,因为AMD管理依赖的时候,会把所有的依赖下载到本地,并且立即执行一次.依赖少了还好,多的话,那么多js均要被执行一次,这个内存消 ...
- 233. Number of Digit One(统计1出现的次数)
Given an integer n, count the total number of digit 1 appearing in all non-negative integers less th ...
- docker swarm overlay stack 服务部署记录
项目xxx(后端),xxx-ui前端(前后端分离的项目) 依赖mysql,elasticsearch.分别制作了四个镜像来做这件事.希望可以制作跨主机的部署,使用了swarm,以下是学习记录. 参考 ...