Mount

你會認為這是一個安全問題嗎?嘗試編寫 cifs 腳本

  • January 10, 2022

我正在嘗試編寫安裝 cifs 共享的腳本。下面是我的腳本,我在 proxmox v7 debian 11 VM 上執行,只有 cli,沒有 gui。我通過 putty 連接,這個腳本位於/srv/share. 我還設置了 fstab 來自動掛載它,但是我在測試這個腳本時解除安裝了它。

// Beginning of script  
#! /bin/bash  
share="/storage"

// Test for share connectivity and connect if needed  
if [ ! -d $share/_Scripts ];  
then  
// following command is all one line  
mount -t cifs //x.x.x.x/storage /storage -o uid=root,gid=smb_admins,credentials=/home/xxxxx/.cifs,file_mode=0770,dir_mode=0770  
else  
echo “Share is already connected”  
fi  
// End of Script

如果我只是以我的使用者身份執行它,它不會給出任何提示,沒有錯誤,什麼都沒有。如果我在命令提示符下鍵入 exit,它會輸出“exit”,然後是“Share is already connected”,然後將我返回到使用者的命令提示符。但是,如果我將腳本作為 執行sudo,它會像往常一樣詢問我的使用者密碼,不顯示任何輸出,並且直接將我放入 root 提示符而不詢問 root 的密碼,這讓我有些擔心。如果我然後exit在根提示符下鍵入,它會執行與我的正常使用者相同的操作,並將我返回到我的正常使用者的提示符。

我確定這是我搞砸了,但這對我來說似乎是非常危險的行為。你的意見?

你的第一行是錯誤的。應該是#!,不是$!。前者是對您的 shell 的註釋,但會告訴您的作業系統您要使用哪個程序執行腳本,如果我沒記錯的話,後者包含最後執行的後台作業的編號。假設沒有這樣的東西,它會擴展到什麼都沒有,所以你的腳本開始只是啟動一個 bash 程序,你以退出結束,之後你的實際腳本執行。

我沒有看到安全問題,這肯定是你的腳本中的一個錯誤,但無論如何執行它的人都有 sudo 權限。

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