Linux
了解如何讀取 LVM 屬性和文件系統權限
我正在對 Dell OS10(引擎蓋下的 Debian Stretch)進行一些逆向工程,因為我認為它的工作方式非常酷,而且我正在查看負責創建橋接的文件之一。我想用它來測試我認為命令流是如何從上面工作的,但即使是 root,它也說它是只讀的:
"/alt/opt/dell/os10/lib/python/dn_base_br_tool.py" [readonly] 263 lines, 6785 characters Press ENTER or type command to continue
所以我去檢查了掛載的權限:
root@OS10:/alt/opt/dell/os10/bin# df -P /alt/opt/dell/os10/lib/python/dn_base_br_tool.py | tail -1 | cut -d' ' -f 1 /dev/mapper/OS10-SYSROOT root@OS10:/alt/opt/dell/os10/bin# root@OS10:/alt/opt/dell/os10/bin# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert LICENSE OS10 -wi-ao---- 32.00m SYSROOT OS10 -wi-ao---- 13.50g
我去查了一下是什麼
-wi-ao
意思,並根據這個解釋。基於此,我看到以下內容
- 屬性 2 = 可寫
- 屬性 3 = 繼承
- 屬性 5 = 活動量
- 屬性 6 = 打開體積
我想也許可能有一個 ACL,但似乎也不是這樣:
root@OS10:/alt/opt/dell/os10/bin# ls -la /alt/opt/dell/os10/lib/python/dn_base_br_tool.py -rw-r--r-- 1 root root 6785 Jun 16 2020 /alt/opt/dell/os10/lib/python/dn_base_br_tool.py
問題是 - 為什麼該文件是只讀的?
檢查
/proc/mounts
以查看文件系統的實際掛載選項。
lvs
僅講述 LVM 層:即使 LV 已以可寫模式啟動,如果需要,仍然可以將文件系統掛載為只讀模式。該文件也可能在文件系統中被標記為“不可變” - 請參閱
lsattr /alt/opt/dell/os10/lib/python/dn_base_br_tool.py
.