`
shao246
  • 浏览: 9752 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

浅谈Linux文件与文件夹权限

阅读更多

在Linux中,一个文件或文件夹具有三种不同到权限。
其中:
r 代表read读权限
w 代表write写权限
x 代表execute可执行权限
Linux使用二进制编码来表示是否拥有此权限,如rwx为111,rw-为110,---为000。当使用ll命令时,

 

前面首字母如果是d,则表示此为文件夹,如果为-,则表示为文件。
第2至4位为用户级别权限,第5-7位为组级别权限,第8-10为开放级别权限(即所有的用户),如下图所示:
 

 
 

为了方便性及可读性,Linux使用八进制来代替二进制1和0,如二进制111则表示八进制7,110表示6,100表示4...
因此,上面的rwxrwxr-x用二进制表示为111111101,八进制表示为775。(前面的-表示myprog为文件而不是文件夹)


Linux下一个文件的权限默认用八进制值为666,即二进制110110110,表示rw-rw-rw-(只有读写rw,没有可执行权限x)
Linux下一个文件夹的权限默认用八进制值为777,即二进制111111111,表示rwxrwxrwx(读写可执行权限rwx)
 
一般地,使用umask命令来对文件权限进行控制,可以使用cat /etc/bashrc来查看umask的默认值。

 
 

 

如果umask的值为002,此时创建的文件拥有到权限为666-002=664,即拥有110110100(rw-rw-r--)权限。如下图,

 

当创建newfile文件时,系统默认给root用户读和写的权限(rw),给root用户组读和写的权限(rw),给任何人(everyone)只有读的权限(r)。
 
可以使用chmod+八进制值+file来改变文件的权限。如chmod 444 newfile,则把newfile到权限更改为100100100即r--r--r--(用户,组,任何人都只有读权限),如下图:


 

 
总结:
1.Linux文件的权限默认值为666,文件夹的权限默认值为777
2.使用umask命令可以在创建文件或文件夹时得到相应的权限,原理是用权限值666或777减去umask值,如umask=022,则新创建的文件权限值为666-022=644(110100100,rw-r--r--),
umask的值可以在etc/bashrc下查看(其他版本的Linux可能各不相同)。也可以通过umask +数字 去更改权限控制。
如:通过umask 222,然后touch newfile1, 此时newfile1的权限应为444,即(100100100,r--r--r--)只读权限。
 
 

 

  • 大小: 22.5 KB
  • 大小: 19.9 KB
  • 大小: 35.5 KB
  • 大小: 25.5 KB
  • 大小: 25 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics