如何在汇编 linux x86 中使用 chmod()?
Posted
技术标签:
【中文标题】如何在汇编 linux x86 中使用 chmod()?【英文标题】:How work with chmod() in assembly linux x86? 【发布时间】:2014-08-02 15:33:53 【问题描述】:如何使用 chmod() 在 Assembly linux x86 中更改文件权限? 我想要汇编中的示例代码, 我看到了帮助指南,但仍然很难理解
http://man7.org/linux/man-pages/man2/chmod.2.html
int chmod(const char *pathname, mode_t mode);
chmod() 有 2 个 argv,第一个是路径文件名,第二个是 mod !
路径 /Users/paul/Desktop/file.txt 和 mode_t 模式是: S_ISUID , S_ISGID , S_ISVTX , S_IRUSR ,S_IWUSR
还有更多可以在 url 中看到 第一个问题:我需要在 ecx 的变量中设置这些值,否则我必须使用 值数字,我必须使用哪一个? S_IWGRP 或 00020 #write by group
第二个问题:我真的这样做了吗?我把这些放在 ecx 中并执行同样的这个:
mov eax,15
mov ebx,mypathfile
mov ecx,S_IWUSR
int 0x80
谁能给我代码示例?
最后一个问题是,如何设置文件的 777 权限(对所有人进行读写执行)?
谢谢。
【问题讨论】:
我找到了如何设置777烫发,请回答我的其他问题 【参考方案1】:这是完整的程序。这应该可以回答您的问题。
main.asm:
global _start
section .text
_start:
mov eax, 15 ; sys_chmod
mov ebx, path
mov ecx, 0777o
int 0x80
mov eax, 1 ; sys_exit
mov ebx, 0
int 0x80
section .data
path: db "file.ext", 0
构建:
nasm -f elf32 -o main.o main.asm
ld -m elf_i386 -o main main.o
【讨论】:
以上是关于如何在汇编 linux x86 中使用 chmod()?的主要内容,如果未能解决你的问题,请参考以下文章