發表文章

目前顯示的是有「Ubuntu」標籤的文章

Fix error: postfix/sendmail MTA

錯誤訊息 error: postfix/sendmail[3354]: fatal: open /etc/postfix/main.cf: No such file or directory xxxxxxxxxxxxxxxxxxx from MTA 安裝 postfix 相關處理 sudo apt-get install postfix sudo nano /etc/postfix/main.cf sudo chmod 777 /etc/postfix/main.cf sudo postconf -n > /etc/postfix/main.cf sudo chmod 644 /etc/postfix/main.cf sudo systemctl status postfix sudo systemctl start postfix

安裝友善的 terminal 環境 on Ubuntu

安裝 zsh # 安裝 sudo apt install zsh -y # 預設改成使用 zsh chsh -s $(which zsh) 安裝 oh-my-zsh # 安裝 sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" # 環境可以看到已成功安裝 oh-my-zsh env 安裝 fonts-powerline # 安裝 sudo apt install fonts-powerline -y 指令顯示執行時間 # 可查看有哪些佈景可以用 ls ~/.oh-my-zsh/themes/ # 查看使用哪一個 theme cat ~/.zshrc # 改該 theme 的參數 nano ~/.oh-my-zsh/themes/robbyrussell.zsh-theme # 加入以下指令 function preexec() { timer=${timer:-$SECONDS} } function precmd() { if [ $timer ]; then timer_show=$(($SECONDS - $timer)) if [[ $timer_show -ge $min_show_time ]]; then RPROMPT='%{$fg_bold[red]%}(${timer_show}s)%f%{$fg_bold[white]%}[%*]%f' else RPROMPT='%{$fg_bold[white]%}[%*]%f' fi unset timer fi } autoload -Uz add-zsh-hook add-zsh-hook preexec preexec add-zsh-hook precmd precmd # Done 自動建議指令 Option 1: git clone https://github.com/zsh-users/zsh-autosuggestions ~/.zsh/zsh-autosuggestions #...

使用金鑰檔案進行自動解鎖 LUKS 加密磁區 on Ubuntu

注意事項 該硬碟會在該電腦自動解鎖,所以電腦登入帳號密碼要保管好 別台電腦沒設定過的,一樣要使用密碼 環境 作業系統:Ubuntu 24 目標 讓系統快照備份軟體 timeshift 可以在電腦重開機後,即可存取加密的備份硬碟 首先,生成一個密鑰檔案來代替手動輸入的密碼 sudo dd if=/dev/urandom of=/root/.luks-key bs=4096 count=1 設置密鑰檔案的權限,只能被 root 用戶讀取 sudo chmod 600 /root/.luks-key 將這個密鑰檔案添加到 LUKS 加密磁區 ( sdX 應替換為實際的 LUKS 加密磁區裝置名稱(例如 /dev/sda2 )) sudo cryptsetup luksAddKey /dev/sdX /root/.luks-key 查詢加密裝置的 UUID,等一下要使用 sudo blkid /dev/sdX 編輯 /etc/crypttab 文件 sudo nano /etc/crypttab 加入以下文字,告訴系統在開機時自動解鎖磁區 ( luks_device_name 是加密裝置的名稱,可以取自己想要的名稱, YOUR-DEVICE-UUID 是剛剛查詢到的 UUID) luks_device_name UUID=YOUR-DEVICE-UUID /root/.luks-key luks 更新 initramfs 讓變更生效 sudo update-initramfs -u 重開機,檢查加密磁區是否在開機時自動解鎖 sudo reboot

Ubuntu 24 上安裝 Docker 官方來源的 Docker

更新系統套件 sudo apt update sudo apt upgrade -y 移除舊版 Docker(若已安裝) sudo apt install -y ca-certificates curl gnupg 安裝套件允許使用 HTTPS 傳輸,及 GPG 金鑰 sudo apt install -y ca-certificates curl gnupg 新增 Docker 的官方 GPG 金鑰 sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg 設定 Docker 的下載點 echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null 安裝 Docker Engine 、docker compose 和相關套件 sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin 確認是否已安裝 Docker sudo docker --version 應該要看到類似這樣 Docker version 27.4.0, build bde2b89 試試執行 Docker sudo docker run --rm hello-world 應該要看到類似這樣 Hello from Docker! This mess...

免打 sudo 在 Ubuntu 終端機執行 docker 跟 docker-compose 指令

解決執行 docker 跟 docker-compose 要打 sudo 並且輸入密碼才可以執行的麻煩 注意事項 安全性會降低 此文的 Docker 是透過 snap 安裝 環境 作業系統:Ubuntu 24 確認 Docker 服務是否正在執行 snap services docker # inactive 的話,就啟動它 sudo snap start docker 或是 sudo systemctl status snap.docker.dockerd.service # inactive 的話,就啟動它 sudo systemctl start snap.docker.dockerd.service 檢查 docker 群組是否存在 cat /etc/group | grep docker # 有的話會看起來類似這樣 # docker:x:1001:{your_account} 輸出是空的話,建立該群組。對,就是建一個 docker 群組 sudo groupadd docker 檢查你是否在 docker 群組中 groups $USER # 看起來類似這樣 # {your_account} : group1 adm cdrom sudo dip plugdev users lpadmin docker 此指令也可以看 id $USER 如果沒有 docker 字樣出現的話,把你加入 sudo usermod -aG docker $USER 立即生效 newgrp docker 確認是否不需 sudo 可正常執行 docker ps

RPi 應設的權限

自己的 home 目錄,以帳號 pi 來說,以下幾種 $ chmod 751 /home/pi # 只有 pi 有全部權限rwx、跟群組可rx該資料夾、其他知道路徑的可執行 $ chmod 700 /home/pi # 嚴格,群組跟其它人都不能進該資料夾(eg. cd 或 ls) $ chmod 751 /home/pi # 可以讓其它人進該資料夾,比如說 nginx 或 www-data (不在群組的話),但看不到這一層有什麼檔案。不過知道有哪些檔案或資料夾,並且權限符合的話,可以直接 cd 那些資料夾或是 cat nano vi 檔案等等的指令。 SSH的權限 $ chmod 600 ~/.ssh/id_rsa $ chmod 644 ~/.ssh/id_rsa.pub $ chmod 600 ~/.ssh/known_hosts $ chmod 600 ~/.ssh/authorized_keys $ chmod 700 ~/.ssh 如果有使用到SSL憑證的話,不應該變更這兩個檔 $ sudo chmod 664 server.key $ sudo chmod 664 server.crt