我要创建具有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'
答案 0 :(得分:2)
这里是man 2 mkdir
:
参数
mode
指定新目录的模式(请参见inode(7))。进程的umask会以通常的方式对其进行修改:在没有默认ACL的情况下,创建的目录的模式为(mode & ~umask & 0777)
。
基本上,您的程序和用户都可以否决每个权限位:
mkdir
umask
因此:
如果在运行程序之前运行umask 0000
,则目录将为0777
。
如果运行umask 0027
,则目录将为0750
。
如果要违反用户的意愿将目录设置为777
,则必须在单独的步骤中chmod("somename", 0777)
。