🧩 有種安全是綁定你
最初,我只是想做 數位防災包 ,一個能在災難時可以帶著走、隨處開機啟動的可攜式(protable)行動硬碟,但在動手做的過程中,我發現不是每一個Linux的 版本 都能「行走」,當輪到 Red hat 系列的 Fedora,我發現她的安全設計並無法將硬碟做成插到哪 都能開機 的真 · Linux 行動硬碟,在了解安全設計的過程中,我認為安全地備份 和可開機啟動 應該是兩個互不衝突的觀念才對。
為了讓 Fedora 變成可攜式,我開始理解她的安全設計:
-
她用
SELinux(Security-Enhanced Linux)去限制每個進程的行為,讓即使有程式被入侵,也無法超出權限去亂更動。 -
她用
machine-id去識別主機、用systemd嚴格控制開機順序與權限,這些都讓 Fedora 在伺服器領域無比穩固,不過,這些保護機制也像鐵鎖,把系統綁在原機上。
這些功能對企業來說有優勢,資料安全綁定各種硬體是其中一個選項,不過,保資料安全不應該犧牲掉可攜帶的特性,於是,我決定打開它,不是關掉安全防護,而是顧到安全又能行動自由,我請AI幫我寫指令放寬 SELinux、重建 machine-id、解除主機綁定、修復檔案標籤,讓系統能在不同主機之間自由重生,那一刻我明白,安全,不是只想著如何鎖住資料,而是讓資料在任何地方都能安全啟動、自由流通,用比喻來說,安全不是讓你被困在城堡裡,而是即使世界變化無常,我仍能移動城堡去各個地方走跳江湖!
🔐 讓系統能夠旅行
當我完成那顆Fedora 行動硬碟後,我開始更深地比較各種 Linux 哲學,Fedora像是一位嚴謹的守衛,她要求一切簽章模組必須通過驗證,即使是驅動程式,也要有正確的金鑰才能載入,使用 systemd-sysext、SELinux、policycoreutils 等機制確保每次啟動都一致,這種安全策略非常適合企業與科研環境,但對硬碟自由移動並開機而言,則顯得有點固執。
行動自由的光譜另一端,是 Arch Linux 系列,她給使用者完全的掌控權,我可以自訂核心、移除保護、甚至重寫啟動程序,她的哲學是:「一切由你決定」,那是最開放的自由,卻也是最赤裸的風險,一有設定不慎,城堡的門戶大開!
而 Debian 延伸的系列走在兩者之間,她不會過度干涉,也不讓安全鬆懈,她用 APT 套件管理系統保持各軟體之間依賴關係的穩定,用長期支援(LTS)確保安全更新是可穩定可控的,有保護卻仍保留使用者的選擇權。
我選擇這條是自由與安全的中庸之道,穩定、安裝乾淨、又保留可調整的空間。
簡言之:Fedora 是安全需要嚴格的紀律把守;Arch 是自由需要有自我覺察;而 Debian 是安全與自由可以試著平衡。
💡 相見恨晚的覺醒
我用過很長一段時間的 Windows,還記得第一次到電腦教室,看著裡頭好幾排電腦裝著 Windows 95,手裡玩著3.5軟碟保護磁頭的銀色滑蓋,在那滑來滑去的,那時我只覺得有趣,沒想過那背後的世界有著多複雜的設計。Windows 是一個方便的世界,幾乎都有圖形介面、都能那裡點一點,這裡選一選,可也正因如此,我從沒想過自己在用的系統是怎麼運作的?
使用了14年後,當老電腦跑不動 Windows 10 、被 Windows 11 拋棄時,我換了曾經試過又放棄的Linux系統,這次選好入門的Mint,當我用 老電腦 啟動我的 Linux 進到桌面、用了一陣子上手,再加上這次數位防災包的構想和實踐時,我感到相見恨晚,因為這才是我想要的自由,我能 選擇 開機方式、控制更新、決定該啟動哪些服務。
Linux 不需要用花俏的圖形介面來討好我,她只是靜靜地給我選擇該怎麼樣打造自己的電腦。
有統計說 Linux 的桌面應用只有 4% 的人口!那又如何?那 4% 的人,想了解系統、懂風險、更懂得讓老電腦重生,我們願意學會、願意理解、願意在出錯時自己在終端機的指示下修復。另一方面,Linux 在伺服器及嵌入式裝置的占有率高達 90% 以上!原來,她選擇了一條默默在背後使機器運行的路,不張揚的藏在每個人的安卓(Android)手機,甚至 外太空 也有她的身影。
Fedora 管得太緊,Arch 又放得太鬆,而 Debian 給我空間,一個能安心構築「數位防災包」的基礎,當我拔下那幾顆硬碟、插上另一台電腦,看著熟悉的桌面亮起時,我明白了:
安全,不是被鎖住的城堡,而是能夠放心四處開機啟動的自由。
🚀 還給她真自由的指令
🧩 放寬 SELinux 強制模式(允許跨機啟動)
# 將 SELinux 改為寬鬆模式,避免不同主機的安全標籤導致登入失敗
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config
🔄 重設系統識別碼(machine-id)
# 清空並重建系統唯一識別碼,讓新機自動生成新的 ID
sudo truncate -s 0 /etc/machine-id
sudo systemd-machine-id-setup
🧱 重設主機名稱(hostname)
# 設定通用名稱,避免不同主機間的 session 衝突
sudo hostnamectl set-hostname portable-fedora
🚫 關閉使用者 linger
# 防止舊機 session 殘留在 /run/user/1000/,避免新機登入錯誤
sudo loginctl disable-linger $USER
🩹 修復檔案安全標籤
# 恢復 /home 權限標籤,確保 SELinux 不會拒絕使用者資料存取
sudo restorecon -Rv /home/$USER
💾 建立可攜式 UEFI 開機檔
# 安裝通用開機載入器,建立 BOOTX64.EFI,可在任何主機開機
sudo grub2-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=FedoraPortable --removable
sudo grub2-mkconfig -o /boot/efi/EFI/FedoraPortable/grub.cfg
上次修改於 2025-11-02