Linux

Linux 文件權限對我說謊

  • March 1, 2020

所以我是使用者david,根據ls -la文件權限700和所有者是大衛。我不明白為什麼不允許我寫入文件。該stat命令返回一些有趣的東西,有 2Access:個 700 和 1 個 500。這500將解釋為什麼我不能寫入文件但為什麼我這樣做時不顯示ls -la?我也無能為力,sudo因為我不知道密碼david

david@traverxec:~/bin$ ls -la
total 16
drwx------ 2 david david 4096 Mar  1 17:43 .
drwx--x--x 5 david david 4096 Oct 25 17:02 ..
-r-------- 1 david david  802 Oct 25 16:26 server-stats.head
-rwx------ 1 david david  363 Oct 25 16:26 server-stats.sh
-rw-r--r-- 1 david david    0 Mar  1 17:43 test
david@traverxec:~/bin$ stat server-stats.sh 
 File: server-stats.sh
 Size: 363             Blocks: 8          IO Block: 4096   regular file
Device: 801h/2049d      Inode: 10901       Links: 1
Access: (0700/-rwx------)  Uid: ( 1000/   david)   Gid: ( 1000/   david)
Access: 2020-03-01 17:27:22.389179535 -0500
Modify: 2019-10-25 16:26:29.049613415 -0400
Change: 2019-10-27 16:24:21.437108121 -0400
Birth: -
david@traverxec:~/bin$ echo "test" >> server-stats.sh 
-bash: server-stats.sh: Operation not permitted
david@traverxec:~/bin$ id
uid=1000(david) gid=1000(david) groups=1000(david),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),109(netdev)

編輯:我可以在目錄中創建文件。我不太確定,但它似乎不是從其他地方安裝的……嗯

david@traverxec:~/bin$ touch test
david@traverxec:~/bin$ ls -la
total 16
drwx------ 2 david david 4096 Mar  1 17:43 .
drwx--x--x 5 david david 4096 Oct 25 17:02 ..
-r-------- 1 david david  802 Oct 25 16:26 server-stats.head
-rwx------ 1 david david  363 Oct 25 16:26 server-stats.sh
-rw-r--r-- 1 david david    0 Mar  1 17:43 test
david@traverxec:~/bin$ df -h .
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       3.9G  1.5G  2.3G  40% /
david@traverxec:~/bin$ findmnt -T .
TARGET SOURCE    FSTYPE OPTIONS
/      /dev/sda1 ext4   rw,relatime,errors=remount-ro
david@traverxec:~/bin$ 

答:該文件被標記為不可變,這意味著即使是root也不能修改這個文件

david@traverxec:~/bin$ lsattr server-stats.sh 
----i---------e---- server-stats.sh

修復:此修復對我不起作用,因為我沒有 root/sudo 訪問權限,但它適用於其他任何人

sudo chattr -i server-stats.sh

引用自:https://unix.stackexchange.com/questions/570590