linux文件权限命令umask

umask:设置所创建文件或目录的默认权限

umask值是个掩码,它会屏蔽掉不想授予该安全级别的权限,创建文件或目录时,需要将umask值从对象的全权限中减掉,对文件来说,全权限的值是666(所有用户都有读和写的权限);对目录来说,全权限值则是777(所有用户都有读、写和可执行权限)。

如何通过umask值计算创建文件的默认权限?

计算方法:(文件或目录的全权限) & ~(umask值)

举例:创建一个文件test.c,umask值为0033

文件的全权限为666,因此最终文件的权限为(110110110) & ~(000011011) = 110100100,对应三字符的编码为-rw-r--r--,代表文件属主具有可读可写权限,属组可读,其他用户可读。

在大多数Linux发行版中,umask值通常会设置在/etc/profile启动文件中,也有一些是设置在/etc/login.defs文件中(如Ubuntu),也可以在任何一个终端使用命令umask设置指定一个新的掩码值,但设置仅在该终端有效,关闭终端后,umask恢复为之前的默认值。

如何让umask设置永久有效?

1、有root权限,直接修改启动文件/etc/profile中或/etc/login.defs的umask设置。

2、无root权限,以bash shell为例,其他shell也有对应的启动文件,首先确认$HOME目录下的启动文件,通常可能存在$HOME/.bash_profile、$HOME/.bash_login、$HOME/.profile文件中一两种,shell会按照下列顺序,运行第一个被找到的文件,余下的则被忽略:

$HOME/.bash_profile

$HOME/.bash_login

$HOME/.profile

例如,$HOME下仅有$HOME/.profile文件,打开$HOME/.profile文件,通常会这个文件中会运行$HOME/.bashrc,因此在.bashrc中加入命令“umask 掩码值”,建议在文件的最后加上此命令,以防止命令被后面的同命令覆盖。

【建议】:如果工作涉及到使用linux服务器,建议使用umask将创建文件或目录的默认权限修改为适当的值如033等。

 

参考:

1、http://c.biancheng.net/view/764.html

2、https://man7.org/linux/man-pages/man2/umask.2.html

3、《linux命令行与shell脚本编程大全》第3版

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值