2012-05-06 6 views
3

NASデバイスが常にオンラインになっているわけではないので、sudoを使用して2つの別個のネットワークドライブを一時的にマウントしたいので、/ etc/fstabに何かを追加する必要はないと確信しています。シェルスクリプト - gksudoを使って、1回のパスワードプロンプトで連続したsudo操作を実行するにはどうすればよいですか?

#!/bin/sh 

sudo mount -t cifs //10.1.1.9/Volume_1 /media/DNS323-A -ousername=user,password=pass,iocharset=utf8 
sudo mount -t cifs //10.1.1.9/Volume_2 /media/DNS323-B -ousername=user,password=pass,iocharset=utf8 

私は、端末内で実行」を選択する必要があります。

次のコードは、このようにsudoのパスワードプロンプトは私の問題である、しかし、私は端末からスクリプトを実行するつもりはない、これを達成することができますそのスクリプトをファイルブラウザウィンドウから正常に実行できるようにします。したがって私はsudoのパスワードを入力するためのプロンプトウィンドウを開くgksudoを使用することを好むだろう。

しかし、代わりに次のコードを使用すると、sudoのパスワードを2回入力する必要があります。から実行しない場合、私は次のように、 しかし唯一の最初のドライブが最初のスクリプトのように実装されている「sudoをとして実行」するスマートにとgksudoオプションを使用しようとしました。この時点で

gksudo "mount -t cifs //10.1.1.9/Volume_1 /media/DNS323-A -ousername=user,password=pass,iocharset=utf8" 
gksudo "mount -t cifs //10.1.1.9/Volume_2 /media/DNS323-B -ousername=user,password=pass,iocharset=utf8" 

は、上記黙って失敗しますターミナル:

gksudo this{ 
command1 
command2 
command3 
} 

それは私だけですかGKSを行います。私は本当に、次のされて行うことができるようにしたいのですが、私はそれが可能だかどうかわからないんだけど何

gksudo -S "mount -t cifs //10.1.1.9/Volume_1 /media/DNS323-A -ousername=user,password=pass,iocharset=utf8" 
sudo "mount -t cifs //10.1.1.9/Volume_2 /media/DNS323-B -ousername=user,password=pass,iocharset=utf8" 

udoには短い記憶がありますか?

答えて

4

これはスクリプトなので、sudo/gksudoコマンドをスクリプトに含めるのではなく、sudoを使用してスクリプトを呼び出すのが最善の方法です。

私はgksudoはメモリそのものを持っていないと思っています。それはすべてバックグラウンドで使用されているsudoです。

別possiblitiyが使用することを次のようになります。

gksudo "sh -c 'command1; command2; ...'" 

が、それは非常にエレガントではありません。

+0

私の家庭用コンピュータである混沌とした世界では、特に私がやりたいことを正確に達成したときに、私は妙な解決策を扱うことができると思います。洗練された解決策は、/ etc/fstabにドライブを追加してsudoの必要性を否定することですが、私が探していた利便性をあなたに与えました。ありがとう! –

0

私はこれを非常に頻繁に使用して、ユーザーが自分のスクリプトを「root」として実行するようにしています。これはメモリから呼び出されます。

関連する問題