Linux 新手村 Week 004 – 檔案權限帳號關係, 套件管理
檔案權限帳號關係
檔案的權限分三個類型來做限制, 擁有者權限, 群組權限與其他權限. 每一個類型都有三種權限
R, 讀取權限
W, 寫入權限
X, 執行權限
請看以下範例, 我們把檔案列表(Command: ls -l)資訊分成 8 個 parts

- 檔案清單訊息解說
- Part 1, 10 ( 1 + 9) 個英文字元
- 記錄所有系統user資料的檔案,所記錄的資料包括username、password(有加密), user id, group id, comment ( 註解 ), user home directory, user’s default shell 目錄
- 第1位, 如果是 d 代表這個是目錄, – 代表這個是檔案
- 第 2, 3, 4位: 表示檔案擁有者的存取權限
- 第 5, 6, 7位: 表示檔案所屬群組的存取權限
- 第 8. 9. 10位: 表示其他使用者的存取權限
- Part 2, number of (hard) links, 檔案硬連結數量, 有關軟連結, 硬連結可參考 LINK
- Part 3, 檔案擁有者的帳號
- Part 4, 檔案所屬群組, 該群組內的帳號擁有相同的權限
- Part 5, 檔案大小 by Bytes, 如果想要讓這個單位更直覺, 可以加上參數,
ls -lh - Part 6, mtime, 檔案最後修改時間
- Part 7, mtime, 檔案最後修改時間
- 以上 Part 6 & 7 要注意的是半年內修改: 顯示「月份、日期、時間」(例如
Mar 23 08:30)。 - 超過半年: 顯示「月份、日期、年份」(例如
Oct 12 2025),具體的小時分鐘會被隱藏。 - 如果要看完整的檔案相關時間, 可用
stat指令, 參考 LINK - Part 8, 檔案完整名稱
- 以上 Part 6 & 7 要注意的是半年內修改: 顯示「月份、日期、時間」(例如
- Part 1, 10 ( 1 + 9) 個英文字元
- 編輯檔案權限
- 使用指令
chmod, 使用方式有很多種, 列舉如下 chmod +r filename, 將檔案加上 “讀取” 的功能, 不限擁有者, 所屬群組, 或是其他人chmod +w filename, 將檔案加上 “寫入” 的功能, 不限擁有者, 所屬群組, 或是其他人chmod +x filename, 將檔案加上 “執行” 的功能, 不限擁有者, 所屬群組, 或是其他人chmod XXX filename, XXX 代表三個數字, 數字所代表的意義請以下說明- 0, 代表沒有任何權限
- 1, 代表有執行權限
- 2, 代表有寫入權限
- 4, 代表有讀取權限
- 範例:
- 想給檔案擁有者全部的權限, 第一個 X 就請帶入 7
- 想給檔案所屬群組讀寫權限, 第二個 X 就請帶入 6
- 想給檔案擁有者, 所屬群組以外的人僅有讀取的權限, 第三個 X 就請帶入 4…………… 依此類推
chmod g=rwx filename, 調整該檔案的所屬群組權限chmod o=rwx filename, 調整檔案擁有者的權限chmod u+x filename, 加減檔案所有者對該檔案的權限
- 使用指令
- 更改檔案擁有者與群組歸屬
- chgrp groupname filename, 更改檔案所屬群組
- chown owner:groupname filename: 同時更改檔案擁有者與所屬群組
- 其他相關指令
- touch filename, 建立空檔案
- 快速建立簡短內容的檔案, echo “Hello!” > filename
- 刪除 user
- sudo userdel $username, 家目錄還在喔!!!
- sudo userdel -r $username, 這樣該帳號的相關家目錄與郵件都會刪除
- Or ubuntu / debian 專有的 deluser
套件管理
我們先來了解一下 apt > apt-get > dpkg, 這個方向是從先進簡單到最原始的一個指令排序, 但是他們都依樣是系統的討間管理指令.
| 特性 | dpkg | apt-get | apt |
| 全名 | Debian Package | Advanced Package Tool | Advanced Package Tool |
| 層級 | 底層工具 | 中層命令列工具 | 高層使用者互動工具 |
| 安裝對象 | 本地端 .deb 檔案 |
遠端軟體倉庫 (Repository) | 遠端軟體倉庫 (Repository) |
| 相依性管理 | 不具備(缺套件會報錯) | 具備(會自動下載缺少的套件) | 具備(自動處理,且介面更友善) |
| 主要用途 | 安裝、查詢單個已下載的檔案 | 腳本編寫、伺服器自動化 | 個人日常使用(推薦) |
| 進度條顯示 | 無 | 無 | 有(更美觀的介面) |
常用指令比較
| 動作 | 傳統指令 (apt-get/cache) | 現代指令 (建議使用) |
| 更新軟體清單 | apt-get update |
apt update |
| 安裝軟體 | apt-get install |
apt install |
| 移除軟體 | apt-get remove |
apt remove |
| 搜尋軟體 | apt-cache search |
apt search |
| 列出已安裝軟體 | dpkg -l |
apt list --installed |
那麼既然有比較現代化的指令 apt 了, 為什麼還要用 dpkg 呢? 那是因為你會遇到 deb 的安裝檔, 以下範例解說
# 當你從網路上(例如 Google Chrome 官網)下載了一個 .deb 安裝檔時。
# apt 無法直接「吃, 安裝」一個本地檔案,這時要用 dpkg
sudo dpkg -i google-chrome-stable_current_amd64.deb