Linux学习之十四-Linux文件和目录权限
Linux文件和目录权限
在Linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录。
通过设定权限可以从以下三种访问方式限制访问权限:只允许用户自己访问;允许一个预先指定的用户组中的用户访问;允许系统中的任何用户访问。
Linux中一切皆文件,关于文件的权限所有者分为用户,用户组,其他三类,权限的类别分为r(可读)、w(可写)、x(可执行)三种,其分别对应的权限数值为4、2、1
修改权限的命令为chmod,修改所属者的命令为chown
模拟环境:
创建用户组abc
创建用户a并指定用户组abc
创建用户b并指定用户组abc
创建其他用户test,不指定用户组
查看创建的用户
[root@localhost ~]# groupadd abc
[root@localhost ~]# useradd -g abc a
[root@localhost ~]# useradd -g abc b
[root@localhost ~]# useradd test
[root@localhost ~]# tail -3 /etc/passwd
a:x:500:500::/home/a:/bin/bash
b:x:501:500::/home/b:/bin/bash
test:x:502:502::/home/test:/bin/bash
- 文件的权限
1.1使用root用户创建文件,并修改文件的属主和属组
[root@localhost ~]# mkdir /data
[root@localhost ~]# touch /data/ceshi.txt
[root@localhost ~]# chown a.abc /data/ceshi.txt
[root@localhost ~]# ll /data/ceshi.txt
-rw-r--r-- 1 a abc 0 Apr 9 21:02 /data/ceshi.txt
1.2可以发现文件默认的权限位为644,分别修改权限位为754、731,文件变为可执行(颜色变绿)
[root@localhost ~]# mkdir /data
[root@localhost ~]# touch /data/ceshi.txt
[root@localhost ~]# chown a.abc /data/ceshi.txt
[root@localhost ~]# ll /data/ceshi.txt
-rw-r--r-- 1 a abc 0 Apr 9 21:02 /data/ceshi.txt
1.3小结:
对于普通用户来说,文件具有执行权限的前提是需要具有读的权限
root用户拥有绝对的权限
root用户对所有文件都有读写的权限
UGO中任何一个有执行权限就等于root用户有执行权限
- 目录的权限
2.1使用root用户创建目录,并修改文件的属主和属组
[root@localhost ~]# mkdir /data/ceshi
[root@localhost ~]# chown a.abc /data/ceshi
[root@localhost ~]# touch /data/ceshi/{1..5}
[root@localhost ~]# ls -ld /data/ceshi
drwxr-xr-x 2 a abc 4096 Apr 9 21:11 /data/ceshi
2.2分别切换到不同用户下执行ls命令(检验读权限)、mkdir命令(检验写权限)、cd命令(检验执行权限)
[root@localhost ~]# su - a
[a@localhost ~]$ ls /data/ceshi
1 2 3 4 5
[a@localhost ~]$ mkdir -p /data/ceshi/6
[a@localhost ~]$ cd /data/ceshi
[a@localhost ceshi]$ cd
[a@localhost ~]$ su
Password:
[root@localhost a]# su - b
[b@localhost ~]$ ls /d
ls: cannot access /d: No such file or directory
[b@localhost ~]$ ls /data/ceshi
1 2 3 4 5 6
[b@localhost ~]$ mkdir -p /data/ceshi/7
mkdir: cannot create directory `/data/ceshi/7': Permission denied
[b@localhost ~]$ cd /data/ceshi
[b@localhost ceshi]$ cd
[b@localhost ~]$ su
Password:
[root@localhost b]# su - test
[test@localhost ~]$ ls /data/ceshi
1 2 3 4 5 6
[test@localhost ~]$ mkdir -p /data/ceshi/7
mkdir: cannot create directory `/data/ceshi/7': Permission denied
[test@localhost ~]$ cd /data/ceshi
[test@localhost ceshi]$ cd
[test@localhost ~]$ su
Password:
[root@localhost test]# cd
[root@localhost ~]#
2.3可以发现
a 用户具有读写执行权限
b 用户具有读和执行权限,没有写权限
test 用户具有读和执行权限,没有写权限
2.4修改权限位为731,执行同样的命令检验结果,此时
drwx-wx--x 3 a abc 4096 Apr 9 21:11
a 用户具有写执行权限,没有读权限
b 用户具有执行和写权限,没有读权限
test 用户具有执行权限,没有读和写权限
2.5修改权限位为754,执行同样的命令检验结果,此时
drwxr-xr-- 3 a abc 4096 Apr 9 21:11
a 用户具有写执行权限,没有读权限
b 用户具有读和执行权限,没有写权限
test 用户具有读权限,没有写和执行权限
2.6小结:
对于普通用户来说,目录的读权限(ls)需要具有执行权限
- 文件和目录的关系
目录也是一种文件,目录的block里面存放的就是目录下的文件名和目录名
block的默认大小为4096字节=4k
- 读取文件内容的原理
读取/data/ceshi.txt,会先找到根目录/的inode,通过inode找到根目录的block,在根目录的block中,找到/data目录,通过目录名找到/data目录的inode号,根据inode号,找到/data目录的block,读取/data目录的block,找到文件名为/data/ceshi.txt的文件,找到/data/ceshi.txt的inode号之后,最后再读取/data/ceshi.txt的block,将结果输出到屏幕上。
- 权限的掩码
5.1查看系统掩码配置文件cat /etc/bashrc|sed -n '65,69p'
相关内容如下
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
umask 002
else
umask 022
fi
umask 通过控制权限掩码就可以控制默认权限
umask 查看权限掩码
umask 0002 修改权限掩码
5.2基于文件的权限掩码
umask默认为0022
0666
- 0022
= 0644
当把umask设置为奇数的时候,系统会自动把算出的奇数位数值加一
5.3基于目录的权限掩码
umask默认为0022
0777
- 0022
= 0755
当把umask设置为奇数的时候,与文件不同的是,系统不会自动加一
博主原创文章,转载请务必注明出处
Linux学习之十四-Linux文件和目录权限的更多相关文章
- Linux学习之十四、管线命令
Linux学习之十四.管线命令 地址:http://vbird.dic.ksu.edu.tw/linux_basic/0320bash_6.php
- linux 学习3 第四讲 文件常用命令
好几天没有在网上总结了.我把ppt先誊写在本子上,这样听的时候记录就方便很多,添些东西就可以. 我想先看shell那部分,但是没有之前几章的准备,是没法跟着视频动手操作的.所以还是按部就班得学习. 虽 ...
- Linux学习(十四)磁盘格式化、磁盘挂载、手动增加swap空间
一.磁盘格式化 分好去的磁盘需要格式化之后才可以使用.磁盘分区一般用mke2fs命令或者mkfs.filesystemtype.这个filesystemtype分为ext4,ext3,xfs等等.xf ...
- Linux学习之CentOS(四)----Linux文件属性、所有者、群组、其他组及文件权限操作简要总结
Linux文件属性.所有者.群组.其他组及文件权限操作简要总结 首先介绍一个重要的知识点:文件属性控制权限 [root@www ~]# ls -al total 156 drwxr-x--- 4 ro ...
- Linux命令(十四) 查看工作目录文件 ls
目录 1.命令简介 2.常用参数介绍 3.实例 4.直达底部 命令简介 ls 命令是 Linux 下最常用的命令. ls 就是 list 的缩写.默认情况下 ls 命令用来打印出当前目录的清单, 如果 ...
- Linux学习之十五-Linux文件特殊权限和附加权限
Linux文件特殊权限和附加权限 1.特殊权限suid 范围:只能针对二进制命令文件 作用:让普通用户拥有二进制命令文件所有者的权限 举例1:普通用户使用passwd命令修改密码 cat /etc/s ...
- Linux学习之十六、文件的格式化与相关处理
原文地址:http://vbird.dic.ksu.edu.tw/linux_basic/0330regularex_4.php 文件的格式化与相关处理 接下来让我们来将文件进行一些简单的编排吧!底下 ...
- linux学习(十)linux安装MySQL
一.前言 由于我使用的是阿里云的服务器,后面会加入配置阿里云的部分,非阿里云的linux系统可以省略后面的步骤,根据自己系统的情况进行配置~ PS:我安装的是mysql5.7.24的版本,其他版本的M ...
- [Linux] Linux学习笔记(5)-文件与目录管理
1.Linux目录结构为树状结构,最顶层的目录为跟目录"/",其它目录通过挂载可以将它添加到目录树中,通过解除挂载移除它们. 2.绝对路径与相对路径 绝对路径写法:由根目录&quo ...
随机推荐
- LeetCode——Problem2:Add Two Numbers
这又过了一周了,总感觉刷这个好花时间呀.每次都一两个小时.让我不好安排时间.应该是我太菜了.对,没错,就是这样 1.题目 You are given two non-empty linked list ...
- hdu 4289 网络流拆点,类似最小割(可做模板)邻接矩阵实现
Control Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Sub ...
- iOS App启动图不显示的解决办法.
1. 正常来说,启动图以及App图标需按照命名规则命名, 但是命名不规范并不影响显示; 2. 设置启动图的两种方法: (1) iOS 8—xcode 6 之后新出LaunchScreen.s ...
- POJ 3111 K Best(01分数规划)
K Best Time Limit: 8000MS Memory Limit: 65536K Total Submissions: 9876 Accepted: 2535 Case Time ...
- 游戏(game)
游戏(game) 题目描述 这个游戏是这样的,你有一个初始序列S ,你每次可以选择一段任意长度的连续区间,把他们+1 再膜k,给定目标序列,你需要尝试用尽量少的操作次数将初始序列变为目标序列.作为一名 ...
- HDOJ 1171 Big Event in HDU
Big Event in HDU Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- 【BZOJ4504&&Hihocoder1046】K个串(主席树,堆)
题意:一个长度为n的数字序列,选出其中的一个连续子串,然后统计其子串中所有数字之和(注意这里重复出现的数字只被统计一次)询问第k大的和是多少 1 <= n <= 100000, 1 < ...
- sql联合主键,用于多对多,关系映射
如题.记录下. 复合主键,由多个字段共同确定一行信息 composite key, containing multi cols to fix one element.
- angular-关于分页
列表渲染数据量庞大的时候,我们需要用到一个filter来控制我们的列表进行循环渲染. 这就要用到一个filter,limitTo. 在此,我使用了变量来进行控制,可以随时调换每页的数量,并且配合分页按 ...
- Codeforces 920D Tanks
题目链接 题意 有 \(n\) 个容积无限的水缸,初始时水量为\(a_1,a_2,...,a_n\),有一把容积为\(k\)的勺子,可以从一个水缸中舀水倒入另一个水缸中.问能否给出操作序列,使得最终某 ...