Linux

為什麼直接複製文件不可編輯?

  • October 9, 2022
mkdir ~/.config/dunst

sudo cp /etc/dunst/dunstrc ~/.config/dunst/dunstrc

這使文件不可編輯

rm ~/.config/dunst/dunstrc
touch ~/.config/dunst/dunstrc
sudo cp /etc/dunst/dunstrc ~/.config/dunst/dunstrc

這使文件可編輯。為什麼linux會這樣?

大多數現代作業系統都應用文件權限和所有權。在 Linux 中,與在 Unix 上一樣,預設行為是限制對文件的訪問,除非被告知要共享它們(其他作業系統採用不同的方法)。通過使用“sudo”,您可以在沒有任何安全控制的情況下執行操作。Sudo 以 root 使用者身份執行命令。當您以 root 身份複製文件時,新文件歸 root 所有。該文件仍然是可編輯的 - 但不是由 root 以外的其他使用者編輯。你可以…

  • 以 root 身份編輯文件(通常不好)
  • 將文件的使用者(或組,如果組可寫)所有權更改為您通常使用的使用者(或他們所屬的組)(好)
  • 更改文件的權限,以便任何人都可以編輯它(壞)
  • 更改文件權限的預設值(壞)

更改所有權是使用chown命令完成的。使用chmod更改文件的權限。使用umask命令更改預設值,通常從您的 shell 配置文件中呼叫。chmod 和 chown 在第一個連結中進行了說明,在後續連結中進行了更詳細的說明。

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