浅谈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--)只读权限。
 
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值