如何设置UNIX/Linux中新创建目录或文件的默认权限

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何设置UNIX/Linux中新创建目录或文件的默认权限相关的知识,希望对你有一定的参考价值。

在unix或者linux中,创建一个新文件或者目录时,这个文件或者目录都具有一个默认的权限,比如目录755,文件644,这些默认权限是由umask(权限掩码)来控制的,一般umask默认值为022,其最终效果就是新创建的目录权限为755,文件权限为644。所以只要修改了用户的umask值,就可以控制默认权限。


1、查看当前umask值,终端运行:

$ umask

2、根据实际需要设置新的umask:

$ umask  nnn

n为1-7中的任一数字,可以根据文件或者目录权限的数字表示值计算得到。

示例:

$ umask 002

目录权限:7-0=7,7-0=7,7-2=5, 即新建目录的默认权限为775

文件权限:目录权限去掉执行权限(-1),即664。

执行该命令只在用户本次登录期间有效,下次登录会恢复默认权限umask。


3、让umask值在用户每次登录后都有效

编辑用户环境变量(~/.profile)文件或者所有用户环境变量(/etc/profile)文件中,修改(或增加)语句umask nnn。


4、常见权限掩码示例

umask值 目录 文件

022    755    644

027    750    640

002    775    664

006    771    660

007    770    660

参考技术A 普通文件默认是644 也就是:
-rw-r--r-- 1 root root 0 May15 20:04 test
自已有读写(rw),同组人员有读(r),其它有读(r)
默认权限可通过umask 修改
默认umask 为022
文件:666 - 022 = 644
目录:777 - 022 = 755
如果你下了umask 011 的指令,则生成的文件目录权限就变成:
文件:666 - 011 = 655
目录:777 - 011 = 766本回答被提问者和网友采纳

以上是关于如何设置UNIX/Linux中新创建目录或文件的默认权限的主要内容,如果未能解决你的问题,请参考以下文章

Unix/Linux环境下,find命令为啥找不到".."目录(也就是上级目录对应的文件夹)

Linux/Unix里,ln -s这个命令是做啥的?我是小白,谢谢你。

怎么设置linux/unix下的jvm的file.encoding-CSDN论坛

linux中 ./configur没有那个文件或目录

Linux/UNIX网络编程的目录

linux装oracle11g数据库文件位置 无法创建目录,怎么办