如何创建一个777权限的目录?

How to create a directory with 777 permissions?

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

The argument mode specifies the mode for the new directory (see inode(7)). It is modified by the process's umask in the usual way: in the absence of a default ACL, the mode of the created directory is (mode & ~umask & 0777).

基本上,您的程序和您的用户都可以否决每个权限位:

  • 您可以通过将它们传递给 mkdir
  • 来说明您对哪些位感到满意
  • 用户可以通过设置 umask
  • 来说明他们喜欢哪些位
  • 只有你们都同意的位才会被设置到最终目录。

因此:

  • 如果您 运行 umask 0000 在 运行 安装您的程序之前,您的目录将是 0777

  • 如果您 运行 umask 0027,您的目录将是 0750

  • 如果你想违背用户的意愿强制你的目录 777,你必须在单独的步骤中 chmod("somename", 0777)