我有以下任务:
如果你创建了一个文件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
的目录也会向所有人授予权限。777
read, write, and execute
umask 000
--> 为所有新创建的文件提供 666 权限,为所有新创建的目录提供 777 权限。
八进制 umask 是通过使用按位非对参数的一元补码进行按位与来计算的。
文件公式:
- 对于文件:
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
- 对于目录:
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/
从您的例子来看,file1
和dir1
是使用 创建的umask 026
,因此它分别具有以下权限:640
(666 - 026)和751
(777 - 026)...而 和file2
是dir2
使用 创建的,因此它分别具有和的umask 233
权限。444
544