web-dev-qa-db-ja.com

UNIX-マウント:rootだけが実行できます

非rootユーザーがデバイスをマウント/アンマウントできるようにする必要があります。私はUNIXに関してはまったくの初心者なので、私のためにそれをおろそかにしてください。

私はinterwebz全体を調べて答えを見つけましたが、誰もが同じ答えを出しているようです。/etc/fstabを変更して、userオプション(またはusers、両方を試しました)。私はそれをしました、そしてそれはまだmount: only root can do thatと言います。

これが私のfstabの内容です。

#/ etc/fstab:静的ファイルシステム情報。
#
# 'vol_id --uuid'を使用して、
#デバイスの汎用一意識別子を出力します;これは、デバイスに名前を付けるためのより堅牢な方法としてUUID =とともに使用できます
#。これは、ディスクが追加および削除されても機能します。 fstab(5)を参照してください。
#
#
 proc/proc proc defaults 0 0 
#/インストール中に/ dev/mapper/minicc-rootにありました
 UUID = 1a69f02a-a049-4411-8c57-ff4ebd8bb933/ext3 relatime、errors = remount-ro 0 1 
#/ bootはインストール中に/ dev/sda5にありました。 -1267-44c4-8788-e1354d71faf5/boot ext2 relatime 0 2 
#インストール中に/ dev/mapper/minicc-swap_1にスワップがありました
 UUID = 0bb583aa-84a8-43ef-98c4-c6cb25d20715なしswap sw 0 0 ..____。]/dev/scd0/media/cdrom0 udf、iso9660 user、noauto、exec、utf8 0 0 
/dev/scd0/media/floppy0 auto rw、user、noauto、exec 、utf8 0 0 
/dev/sdb1/mnt/sdcard auto auto、user、rw、exec 0 0 

サムドライブのパーティションが/dev/sdb1と表示されます。私のfstabは問題なく設定されていると思いますが、他の投稿の誰もが、このエントリがfstabファイルにあると、実際にmountコマンドを呼び出す方法について言及し損ねているようです。ここが私の問題かもしれません。ドライブのマウントに使用するコマンドは次のとおりです。

$ mount /dev/sdb1 /mnt/sdcard

/bin/mountはrootが所有し、rootグループに属しており、4755の権限を持っています。
/bin/umountはrootが所有し、rootグループに属しており、4755の権限を持っています。
/mnt/sdcardは私が所有し、私のグループの1つに属しており、0755の権限があります。

私のマウントコマンドはSudoを使用すると問題なく機能しますが、Sudoなしでこれを実行できるようにする必要があります(PHPから実行できるようにする必要があります= Shell_execを使用したスクリプト)何か提案はありますか?

16
Travesty3

ボリュームを通常のユーザーとしてマウントする場合は、マウントポイント名を指定するだけで済みます。

mount /mnt/sdcard

/etc/fstabファイルは、使用されるデバイスを提供します。

17
Kevin Panko

/dev/sdb1の所有権をrootに変更してみてください:

chown root:root /dev/sdb1

とあなたのfstab

/dev/sdb1   /mnt/sdcard auto    rw,user,noauto,exec,utf8   0   0

そして、あなたのmountを次のようにしてください:

mount /dev/sdb1