Linux下文件权限的设置

文件/目录权限设置命令:chmod

这是Linux系统管理员最常用到的命令之一,它用于改变文件或目录的访问权限。该命令有两种用法: 

用包含字母和操作符表达式的文字设定法 ) 

其语法格式为:chmod [who] [opt] [mode] 文件/目录名 

其中who表示对象,是以下字母中的一个或组合: 

u:表示文件所有者 
g:表示同组用户 ;
o:表示其它用户 
a:表示所有用户 
opt则是代表操作,可以为: 
+:添加某个权限  
-:取消某个权限 
=:赋予给定的权限,并取消原有的权限 
而mode则代表权限:
r:可读   
w:可写 
x:可执行 

例如:为同组用户增加对文件a.txt的读写权限: 

chmod g+rw a.txt 

用数字设定法

而数字设定法则更为简单:chmod [mode] 文件名 

关键是mode的取值,一开始许多初学者会被搞糊涂,

其实很简单,我们将rwx看成二进制数,如果有则有1表示,没有则有0表示,那么rwx r-x r-- 则可以表示成为: 

111 101 100 

再将其每三位转换成为一个十进制数,就是754。 

例如,我们想让a.txt这个文件的权限为: 

自己 同组用户 其他用户
可读 是 是 是 
可写 是 是 可执行 

那么,我们先根据上表得到权限串为:rw-rw-r--,

那么转换成二进制数就是110 110 100,再每三位转换成为一个十进制数,就得到664,因此我 们执行命令: 

chmod 664 a.txt

如何设置文件夹权限为777

先进terminal,然后输入Wally的命令,后面添加你的目录名。

sudo chmod -R 7779 U

 

 

查看权限

Linux文件访问权限分为可读,可写和可执行三种。

可用ls -l命令查看,例:

ls -l

显示
-rwxr-xr-x 1 root root 6444 09-22 15:33 shmwrite
-rw-r--r-- 1 root root 1443 09-22 15:33 shmwrite.c
drwxr-xr-x 2 root root 4096 09-22 17:19 test

第一个字符代表文件类型。d代表目录,-代表非目录。

接下来每三个字符为一组权限,分为三组,依次代表所有者权限,同组用户权限,其它用户权限

每组权限的三个字符依次代表是否可读,是否可写,是否可执行

r 表示拥有读的权限

w 表示拥有写的权限

x 表示拥有可执行的权限

- 表示没有该权限

修改权限
可用chmod命令来修改文件权限。
例如:

chmod 754 test

4代表读权限,2代表写权限,1代表执行权限

7=4 + 2 + 1,表示拥有可读可写可执行权限
5=4 + 1,表示拥有可读可执行权限,但是没有写权限
0 代表没有任何权限
以此类推

思考下为什么是4,2,1分别代表读写执行权限,而不是其它数字?
我们知道计算机最底层编码都是二进制,即0,1。要表示一个文件读写执行权限,底层只需一个字节,即8位即可。

约定从右数起第3位为1,代表拥有读权限;第2位为1,代表拥有写权限;第1位为1,代表拥有可执行权限。为0,则没有相应的权限。

即二进制转换成十进制,0000 0100 = 4, 0000 0010 = 2, 0000 0001 = 1。即4,2,1分别代表相应二进制位为1,也即拥有相应权限。这也是上面所提问题的原因所在,这样说大家就更容易记住这些数字代表的含义了

posted @ 2015-11-17 13:35  MokeyChan  阅读(646)  评论(0编辑  收藏  举报