我想创建权限为777的目录。
下面的代码正在创建目录,但没有我要求的权限。
section .text
global _start:
_start:
mov rax,83 ;syscall number for directory
mov rdi,chaos ; dir name
mov esi,00777Q ;permissions for directory
syscall
mov rax,60
mov rdi,0
syscall
section .data
chaos:db 'somename'
这里是man 2 mkdir
:
参数
mode
指定新目录的模式(请参阅inode(7((。进程的umask以通常的方式修改它:在没有默认ACL的情况下,创建的目录的模式为(mode & ~umask & 0777)
。
基本上,您的程序和用户都可以否决每个权限位:
- 您可以通过将它们传递给
mkdir
来说出您对哪些比特感到满意 - 用户可以通过设置
umask
来说出他们对哪些比特感到满意 - 只有双方同意的位才会设置在最终目录中
因此:
-
如果在运行程序之前运行
umask 0000
,则目录将为0777
。 -
如果运行
umask 0027
,则目录将为0750
。 -
如果您想违背用户的意愿强制目录为
777
,则必须在单独的步骤中使用chmod("somename", 0777)
。