cifs共有をマウントするスクリプトを作成しようとしています。以下は私のスクリプトです。私はproxmox v7 debian 11 VMでcliだけを実行し、GUIは実行していません。スクリプトがあるパテを介して接続しました/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」を印刷してから「shareconnected」を印刷します。しかし、スクリプトを実行すると、通常どおりsudo
ユーザーのパスワードを要求し、出力が表示されず、ルートパスワードを要求せずにルートプロンプトに直接移動するので、少し心配です。その後、exit
root プロンプトに入力すると、通常のユーザーと同じ操作を実行し、通常のユーザーのプロンプトに戻ります。
私はこれを台無しにしたと確信していますが、これは私にとって非常に危険な行動のようです。あなたの考え?
答え1
最初の行が間違っています。それで#!
、いいえ$!
。前者はシェルのコメントですが、スクリプトを実行するために使用するプログラムをオペレーティングシステムに通知し、後者は最後に実行されたバックグラウンドタスク番号を含みます(私の記憶が正しい場合)。そのようなものがないと仮定すると、何も拡張されないため、スクリプトの先頭はbashプロセスを開始して終了で終わり、実際のスクリプトを実行します。
セキュリティの問題は見えません。確かにスクリプトのバグですが、それを実行している人はとにかくsudo権限を持っています。