Mount
你會認為這是一個安全問題嗎?嘗試編寫 cifs 腳本
我正在嘗試編寫安裝 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 權限。