簡體   English   中英

如何在匯編Linux x86中使用chmod()?

[英]How work with chmod() in assembly linux x86?

我如何使用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的變量中設置這些值,或者我必須使用數值number,我必須使用哪個數值? S_IWGRP或00020#按組寫入

第二個問題:我是不是真的做到了? 我將它們放在ecx中並執行以下操作:

mov eax,15   
mov ebx,mypathfile
mov ecx,S_IWUSR
int 0x80

有人可以給我代碼示例嗎?

最后一個問題是,如何設置文件的777權限(對所有人執行讀寫操作)?

謝謝。

這是完整的程序。 那應該回答你的問題。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM