2012-02-23 8 views
0

スクリプトでmountコマンドを使用して、USBドライブをBashにマウントしています。 haldameonとautofsを無効にして、ドライブが自動マウントされないようにしました。BASH:root以外のユーザーのUSBドライブをマウントしても、ドライブへの書き込み権限が与えられない

すべてがルートで動作し、ルートで実行する場合は、ルート以外のアカウントに切り替えます。しかし、シャットダウンから非rootアカウントに入ってスクリプトを実行すると、ドライブはマウントされますが、書き込みコマンドは許可されません。ここで

は、いくつかの擬似コードです:

オフにautofs、 挿入ドライブを手動haldaemon は、ディレクトリを使用して書き込むためにマウント 試みを実行するコンピュータには/ mnt/

エラー権限

ここで自動マウントコードを無効にします。ここで

#stop automounter 
/etc/init.d/autofs stop 
#stop hal daemon, this is the hardware abstraction layer 
/etc/init.d/haldaemon stop 

は、マウント・コードです:

echo "Copying Test Files to Drives" 
#copy 
cp $copyfile "/mnt/WHITE" 
cp $copyfile "/mnt/GREEN" 
cp $copyfile "/mnt/RED" 
sync 
sleep 2 

またマウント、/etc/init.d/のためのコマンド:ここ

#WHITE--------------------------------------- 

    if grep -qs '/mnt/WHITE' /proc/mounts; then 
     echo "WHITE Mounted re-mounting Unnecessary" 
    else 
     #check if the directories are already there and remove if necessary 
     if [ -d "/mnt/WHITE" ] ; then 
      rmdir "/mnt/WHITE" 
     fi 

     #create directory and mount by label 
     mkdir -p /mnt/WHITE 
     mount -L WHITE /mnt/WHITE 

     #check if the WHITE USB Drive is mounted to the correct directory 
     if [ -d "/mnt/WHITE" ] ; then 
      #check if USB is mounted by location 
      if grep -qs '/mnt/WHITE' /proc/mounts; then 
       echo "WHITE Mounted" 
      else 
       echo $errorstatus_white_mount 
       exit 1 
      fi 
     else 
      echo $errorstatus_white_mount 
      exit 1 
     fi 
    fi  

は、エラーが発生したコピーコードがありますautofs stop、/etc/init.d/haldaemon stopはsudoersファイルにあります。

この許可の謎を助けてくれてありがとう。

+0

mount -L WHITE /mnt/WHITE -o rw 
具体的には、読み取り/書き込み権限を与え

、または

読み取りとマウント
mount -L WHITE /mnt/WHITE -o rw,uid=test,gid=test 

は/ユーザに対してアクセス可能デバイスを作るだけでなく、書き込み、/mnt/WHITEのように見える? –

+0

所有者:root、作成と削除。グループ:ルート、アクセスファイル。その他:アクセスファイル – bing281

答えて

1

それはあなたがマウント/ fstabにいくつかのパラメータを渡していないということかもしれません。あなたは明示的にスクリプトのオプションを渡すことができます。グループfstabのエントリを何test

+0

これは機能しました。私はまた、ヘルプのおかげで/ mnt/

1

は、あなたがそれらに書き込むカントなぜ彼らはおそらくので、ルートによって所有されている

ls -l 

MNTドライバのパーミッションを確認してください。

はそれらをchownをする必要があるかもしれません:

chown domain:user /mnt/{WHITE|GREEN|RED} 
+0

私はこれを上記と組み合わせて使用​​しましたが、それだけでは機能しませんでした。 – bing281

関連する問題