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基础入门-文件和目录的属性及权限之链接(综合网络整理)

10-Linux基础入门-文件和目录的属性及权限之用户与组和时间戳基础

13 Linux下的基础IO