Skip to content

Instantly share code, notes, and snippets.

@spiderbala
Last active June 11, 2024 14:54
Show Gist options
  • Save spiderbala/55804afd029c64175664353e9bbdf069 to your computer and use it in GitHub Desktop.
Save spiderbala/55804afd029c64175664353e9bbdf069 to your computer and use it in GitHub Desktop.
Steam Deck 安裝samba文件分享協定,自動化腳本(包含samba反安裝腳本)
#!/bin/bash
# 將用戶密碼用作此次腳本的變量,免於後續多次重覆輸入密碼
read -s -p "輸入用戶密碼: " user_password
echo
# 解除唯讀模式
if echo "$user_password" | sudo -S steamos-readonly disable; then
echo
echo "唯讀模式已解除"
else
echo -e "\e[93m密碼輸入錯誤,腳本終止。\e[0m"
exit 1
fi
# 刪除fakeroot.conf(模擬root權限的設定)。SteamOS更新系統後若samba失效,有時得刪除此檔才能順利重裝
sudo rm -rf /etc/ld.so.conf.d/fakeroot.conf
# 刪除所有密鑰
sudo rm -rf /etc/pacman.d/gnupg
# 初始化pacman密鑰,用於驗證軟件包的簽證
sudo pacman-key --init
# 使用默認的Arch Linux密鑰替代
sudo pacman-key --populate archlinux
sudo pacman-key --populate holo
sudo pacman -Scc --noconfirm
# 更新 Archlinux-keyring 套件
sudo pacman -Sy archlinux-keyring --noconfirm
# 刷新pacman(套件管理工具)
sudo pacman -Syu --noconfirm
# 安裝samba文件分享協定
sudo pacman -S samba --overwrite '*' --noconfirm
# 編寫samba配置文件
echo "
[global]
workgroup = WORKGROUP
server string = Samba Server
server role = standalone server
[Homes]
comment = Home Directories
browseable = no
writable = yes
[Steam]
path = /home/deck/.local/share/Steam
writable = yes
[GAME_Folder]
path = /home/deck/.local/share/Steam/steamapps/common
writable = yes
[Mount_Point]
path = /run/media
writable = yes
#要再新增共享資料夾,可以依如下格式以及範例(使用時#符號要刪掉)
#[自己取資料夾名稱]
#path = 資料夾路徑
#writable = yes
#[Screenshot]
#path = /home/deck/.local/share/Steam/userdata/用戶名/760/remote
#writable = yes
#[Userdata]
#path = /home/deck/.local/share/Steam/userdata/用戶名
#writable = yes
#[Compatdata]
#path = /home/deck/.local/share/Steam/steamapps/compatdata
#writable = yes
#[自己掛載點上的裝置]
#path = /run/media/自己的裝置名稱
#writable = yes
" | sudo tee /etc/samba/smb.conf
# 安裝yay(由社群維護的軟件儲存庫)
sudo pacman -S --needed git base-devel --noconfirm
git clone https://aur.archlinux.org/yay-bin.git
chmod a+rwx yay-bin
cd yay-bin
makepkg -si --noconfirm
# 更新yay
yay --noconfirm
# 安裝wsdd 網路探索服務
yay -S wsdd --overwrite '*' --noconfirm
# 刪除yay暫存檔
cd ..
rm -rf yay-bin
# 新增使用者 deck 為samba服務的默認使用者名稱
echo "替Samba用戶“deck“設置為steam deck用戶相同的密碼"
echo -e "$user_password\n$user_password" | sudo smbpasswd -a deck
# 啟用samba服務
echo 啟用文件分享服務
echo "$user_password" | sudo -S systemctl start smb
# 設置samba服務為開機自啟
echo 設置文件分享服務為開機自啟
echo "$user_password" | sudo -S systemctl enable smb
# 啟用wsdd服務
echo 啟用網路探索服務
echo "$user_password" | sudo -S systemctl start wsdd
# 設置wsdd服務為開機自啟
echo 設置網路探索服務為開機自啟
echo "$user_password" | sudo -S systemctl enable wsdd
# 啟用Samba防火牆端口
sudo firewall-cmd --permanent --add-service=samba
# 重新加載防火牆規則
sudo firewall-cmd --reload
# 重啟唯讀模式
echo "$user_password" | sudo -S sudo steamos-readonly enable
echo 唯獨模式已重啟
echo -e "\e[93msamba文件分享協定已設定完成,可以關閉終端機了,稍待10秒防火牆設置完成即可使用\e[0m"
#!/bin/bash
# 將用戶密碼用作此次腳本的變量,免於後續多次重覆輸入密碼
read -s -p "輸入用戶密碼: " user_password
echo
# 解除唯讀模式
if echo "$user_password" | sudo -S steamos-readonly disable; then
echo
echo "唯讀模式已解除"
else
echo -e "\e[93m密碼輸入錯誤,腳本終止。\e[0m"
exit 1
fi
# 關閉wsdd服務
echo 關閉網路探索服務
echo "$user_password" | sudo -S systemctl stop wsdd
# 關閉samba文件分享服務
echo 關閉文件分享服務
echo "$user_password" | sudo -S systemctl stop smb
# 卸載wsdd網路探索服務
yes | sudo pacman -R wsdd
# 卸載yay軟件儲存庫助手
yes | sudo pacman -R yay-bin
# 卸載samba文件分享協定
yes | sudo pacman -R samba
# 移除samba配置文件
sudo rm -rf /etc/samba
# 移除samba防火牆端口
sudo firewall-cmd --permanent --remove-service=samba
# 重新加載防火牆規則
sudo firewall-cmd --reload
# 重啟唯讀模式
echo "$user_password" | sudo -S sudo steamos-readonly enable
echo 唯獨模式已重啟
echo -e "\e[93msamba文件分享協定刪除完成,可以關閉終端機了\e[0m"
@zhengyi0414
Copy link

请问我这次安装yay时遇见问题,依赖需要大于6.1版本,该如何解决呢

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment