gpt4 book ai didi

linux - 为什么我会获得这些文件权限?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:18:46 24 4
gpt4 key购买 nike

我编写了一个汇编代码来创建目录和其中的文件,它们已创建但具有奇怪的权限 - 目录是 drwxrwxrwx 文件是 -r-xr -xr-x

据我所知,更改 mode 参数可以将文件权限更改为 777,但我没有找到更改方式和结果的模式。 (它是 777 或 555)。

umask 设置为 0002

为什么我得到了目录的全部权限?是什么导致了文件的这些权限?以及如何更改权限?

我使用这两行来编译和链接:

nasm run.s -f elf64 -o run.o
ld run.o -o run

我使用 Ubuntu 而不是 VMWare。

代码:

section    .data

dir_name: db 'mynewdir', 0
dir_mode equ 0

file_name: db 'mynewfile', 0
file_mode equ 0

section .text

global _start

_start:
mov rdi, dir_name
mov rsi, dir_mode
mov rax, 83 ; sys_mkdir
syscall

mov rdi, dir_name
mov rax, 80 ; sys_chdir
syscall

mov rdi, file_name
mov rsi, file_mode
mov rax, 85 ; sys_creat
syscall

mov rdi, 0
mov rax, 60 ; sys_exit
syscall

斯特拉斯:

$ strace ./run
execve("./run", ["./run"], [/* 63 vars */]) = 0
mkdir("mynewdir", 0) = 0
chdir("mynewdir") = 0
creat("mynewfile", 0) = 3
exit(0) = ?
+++ exited with 0 +++

最佳答案

为 future 的用户添加答案:
显然,出现意外结果的原因是该程序在具有特殊权限设置(VMWare 默认设置)的共享主机目录中运行。
当我在常规目录中运行它时,考虑到 umask,我得到了预期的结果。

关于linux - 为什么我会获得这些文件权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46897875/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com