如何创建具有777权限的目录



我想创建权限为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)

最新更新