13-Linux基础入门-Linux中的文件及目录权限(综合网络整理)
Posted 张雨嘉
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了13-Linux基础入门-Linux中的文件及目录权限(综合网络整理)相关的知识,希望对你有一定的参考价值。
一、回顾Linux文件权限基础
Linux文件权限中,总共有十位,第0位表示文件类型,后9位表示文件权限,关于每部分权限的解释如下:
第一部分(第1-3位):属主权限位(user权限位),供主人(自己)使用。
第二部分(第4-6位):属组权限位(group权限位),供小组(你亲近的人)使用。
第三部分(第7-9位): 其它用户权限位,供其他人使用。
二、验证权限的作用效果
1、准备环境
[root@centos~]# groupadd incahome #一个家庭(oldboy的家)。
[root@centos~]# useradd zhangyujia -gincahome #让家庭主人oldboy属于inchome这个家(模拟User)。
usermod -gincahome oldboy
[root@centos~]# useradd oldgirl -g incahome #inchome这个家的家庭成员(模拟用户组group)。
[root@centos~]# useradd test #外边的人,主人及家庭成员以外的人(Other)。
#操作完后要检查
id oldboy
id oldgirl
id test
提示:如果oldboy用户存在的话,就用下面修改用户组的命令。
2、打开四个窗口,分别以root、oldboy、oldgirl、test的身份进入。
3、创建文件的测试准备
①在root用户按照以下步骤执行
[root@centos~]# mkdir /oldboy #创建目录
[root@centos~]# echo "echo oldboylinux" >/oldboy/test.sh #写入内容
[root@centos~]# chmod +x /oldboy/test.sh #添加权限
[root@centos~]# cat /oldboy/test.sh #检查文件内容
echo oldboylinux
②打开四个窗口分别用root、oldboy、oldgirl、test用户登录,分别测试root、oldboy、oldgirl、test用户对上述test文件的权限(可使用CRT交谈窗口功能)。
ls -l/oldboy/test.sh #查看文件权限
[root@centos ~]# ls -l/oldboy/test.sh
-rwxr-xr-x 1 root root17 2月 7 15:11 /oldboy/test.sh
[oldboy@centos ~]$ ls-l /oldboy/test.sh
-rwxr-xr-x 1 root root17 2月 7 15:11 /oldboy/test.sh
[oldgirl@centos ~]$ ls-l /oldboy/test.sh
-rwxr-xr-x 1 root root17 2月 7 15:11 /oldboy/test.sh
[test@centos ~]$ ls -l/oldboy/test.sh
-rwxr-xr-x 1 root root17 2月 7 15:11 /oldboy/test.sh
结论1:oldboy、oldgirl、test三个用户拥有同样的其他用户权限,即读和执行,没有写的权限。
[root@centos ~]# chownoldboy.incahome /oldboy/test.sh
[root@centos ~]# ll/oldboy/test.sh
-rwxr-xr-x 1 oldboyincahome 17 2月 7 15:11 /oldboy/test.sh
结论2:oldboy用户拥有对应用户的权限,即读、写和执行的权限;oldgirl用户拥有对应用户组(incahome)的权限,即读和执行的权限,没有写的权限;test用户拥有对应其他用户的权限,即读和执行权限,没有写的权限。
③还可以分别测试root、oldboy、oldgirl、test用户对目录的权限
[root@centos~]# mkdir /oldboy/test -p
[root@centos~]# ls -ld /oldboy/test/
drwxr-xr-x 2root root 4096 2月 7 20:06 /oldboy/test/
(后边过程略……)
三、改变权限属性(chmod)
chmod是用来改变文件或目录权限的命令,但只有文件的属主和超级用户root才有这种权限。通过chmod来改变文件或目录的权限有两种方法:一种是通过权限字母和操作符表达式的方法来设置权限;另一种是使用数字方法(常用)来设置权限。
1、chmod数字权限方法
①使用格式
chmod[数字组合] 文件名
例如:chmod 777 /data/oldboy/test.txt
②chmod的数字表示法的说明
权限字符 |
含义 |
权限掩码 |
r(read) |
读 |
4 |
w(write) |
写 |
2 |
x (execute) |
执行 |
1 |
- |
没有权限 |
0 |
③关于属组的数字权限计算:
将三部分权限相加,若完全权限为4+2+1=7,若只需要读写权限为4+2+0=6,若只需要读和执行权限为4+0+1=5。
上图的权限为755,分解计算如下算式所示:
7(=4+2+1)5(=4+0+1)5(=4+0+1)
每个三位的权限代码(分别代表属主、属组、其他用户),有八种可能:
数字 |
权限 |
0 |
--- |
1 |
--x |
2 |
-w- |
3 |
-wx |
4 |
r-- |
5 |
r-x |
6 |
rw- |
7 |
rwx |
注意:如果我们想改变的仅仅是打开目录的权限,使用chmod命令时不用加任何参数。如果想把目录下的所有文件或子目录也同时改变,需要使用-R参数。
示例:
[root@centos oldboy]#chmod -R a=rwx test
[root@centos oldboy]#ls -l
总用量 4
drwxrwxrwx 2 root root4096 2月 8 10:48 test
2、chmod字符式权限表示法
①使用格式
chmod[用户类型] [+|-|=] [权限字符] 文件名
用表格表示如下:
②权限增减字符
+:添加某个字段
-:减少某个字段
=:取消其他所有权限赋予给定的权限
示例:
[root@centos test]# ls-l test.sh
-rwx--xr-x 1 root root0 2月 7 20:16 test.sh
[root@centos test]#chmod u-x test.sh
[root@centos test]# ls-l test.sh
-rw---xr-x 1 root root0 2月 7 20:16 test.sh
[root@centos test]#chmod g+r test.sh
[root@centos test]# ls-l test.sh
-rw-r-xr-x 1 root root0 2月 7 20:16 test.sh
[root@centos test]#chmod g=w,o=x test.sh
[root@centos test]# ls-l test.sh
-rw--w---x 1 root root0 2月 7 20:16 test.sh
[root@centos test]#chmod ugo=r test.sh
[root@centos test]# ls-l test.sh
-r--r--r-- 1 root root0 2月 7 20:16 test.sh
[root@centos test]#chmod a=rw test.sh
[root@centos test]# ls-l test.sh
-rw-rw-rw- 1 root root0 2月 7 20:16 test.sh
四、改变文件所属关系命令chown
1、语法:chown [选项]……[所有者][:[组]]文件……
2、方法:
①仅仅授权用户
chown 用户文件或目录
②仅仅授权组(等同于"chgrp 组文件或目录")
chown:组文件或目录
③表示授权用户和组
chown 用户:组文件或目录
注意:
①其中的冒号可以用点替代。
②要授权的用户和组名,必须是Linux系统里实际存在的。
3、举例:
[root@centos ~]# touchtest.sh
[root@centos ~]# ls -ltest.sh
-rw-r--r-- 1 root root0 2月 8 11:23 test.sh
[root@centos ~]# chownoldboy test.sh
[root@centos ~]# ls -ltest.sh
-rw-r--r-- 1 oldboyroot 0 2月 8 11:23 test.sh
[root@centos ~]# chown.test test.sh
[root@centos ~]# ls -ltest.sh
-rw-r--r-- 1 oldboytest 0 2月 8 11:23 test.sh
五、总结
1、Linux普通文件的读、写、执行权限说明
①可读r:表示具有读取、阅读文件内容的权限。
②可写w:表示具有新增、修改文件内容的权限。
a、如果没有r配合,那么vi编辑文件会提示无法编辑(但可强制编辑),echo可以重定向或追加。
b、特别提示:删除文件(修改文件名等)的权限是受父目录的权限控制,和文件本身权限无关。
③可执行x:表示具有执行文件的权限
a、文件本身要能够执行。
b、普通用户同时还需要具备r的权限才能执行。
c、root只要有x的权限就能执行。
2、总结Linux目录的读、写、执行权限说明
①可读r:表示具有浏览目录下面文件及子目录的权限,即ls dir。
a、如果没有x权限,不能放进目录里,即无法cd dir。
b、如果没有x权限,ls列表时可以看到所有文件名,但是会提示无权限访问目录下的文件。
c、如果ls -l列表,所有的属性会带有问号,也会提示无权限访问目录下的文件,但是可以看到所有文件名。
②可写w:表示具有增加、删除或修改目录内文件名(一般指文件名)的权限,需要x权限配合。
③可执行x:表示具有进入目录的权限,例如cd dir。但是没有r无法列表文件及目录,没有w无法新建和删除。
3、默认权限是安全权限的临界点,工作中尽量给这个临界点,或者小于临界点,不要大于临界点。如下所示,超级用户创建目录默认是755,文件是644。
[root@centosoldboy]# mkdir dir
[root@centosoldboy]# touch file
[root@centosoldboy]# ls -lrt
总用量 4
drwxr-xr-x 2 root root4096 2月 8 11:05 dir
-rw-r--r-- 1 rootroot 0 2月 8 11:06 file
附:深入浅出linux系统umask值及其对应的文件权限讲解:http://blog.51cto.com/oldboy/1060032
以上是关于13-Linux基础入门-Linux中的文件及目录权限(综合网络整理)的主要内容,如果未能解决你的问题,请参考以下文章
08-Linux基础入门-文件和目录的属性及权限之文件类型文件扩展名及文件权限基础
08-Linux基础入门-文件和目录的属性及权限之文件类型文件扩展名及文件权限基础
06-Linux基础入门-文件和目录的属性及权限之inode与block
09-Linux基础入门-文件和目录的属性及权限之链接(综合网络整理)