理解 umask

理解 umask

我有以下任务:

如果你创建了一个文件file1和一个目录dir1并且之前使用过,那么权限是什么umask 026?现在使用umask 233并执行以下操作:

cat file1 > file2  
mv file1 file3  
mkdir dir2

文件file2、file2和file3分别具有哪些权限?解决方案是:

file1: 640  
dir1: 751  
file2: 444  
file3: 640  
dir2: 544 

难道不是umask 233用户可以写入,组可以写入和执行,其余人也可以写入和执行吗?

答案1

umask通常在特定用户创建新文件或新目录时会出现这种情况。如果文件具有666权限,则它会向所有人授予权限。同样,具有权限read and write的目录也会向所有人授予权限。777read, write, and execute

umask 000--> 为所有新创建的文件提供 666 权限,为所有新创建的目录提供 777 权限。

八进制 umask 是通过使用按位非对参数的一元补码进行按位与来计算的。

文件公式:

  1. 对于文件:

666 - (umask value) eg: for umask of 022, the permission of a newly created file will be: 666 - 022 = 644 ,i.e -rw-r-r

  1. 对于目录:

777 - (umask value) eg: for a umask of 022, the permission of a newly created directory will be 777 - 022 = 755, i.e drwxr-xr-x

以下是文件和目录的 umask 值及其对应权限的完整列表:https://www.linuxtrainingacademy.com/all-umasks/

从您的例子来看,file1dir1是使用 创建的umask 026,因此它分别具有以下权限:640(666 - 026)和751(777 - 026)...而 和file2dir2使用 创建的,因此它分别具有和的umask 233权限。444544

相关内容