UNIX - mount: somente root pode fazer isso

15

Eu preciso permitir que um usuário não raiz monte / desmonte um dispositivo. Eu sou um noob total quando se trata de UNIX, então por favor, mude para mim.

Estou procurando em todo o interwebz para encontrar uma resposta e parece que todo mundo está dando o mesmo, que é modificar /etc/fstab para incluir esse dispositivo com a opção user (ou users , tentei ambos). Eu fiz isso e ainda diz mount: only root can do that .

Aqui está o conteúdo do meu fstab:

# /etc/fstab: static file system information.
#
# Use 'vol_id --uuid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
#                
proc            /proc           proc    defaults        0       0
# / was on /dev/mapper/minicc-root during installation
UUID=1a69f02a-a049-4411-8c57-ff4ebd8bb933 /               ext3    relatime,errors=remount-ro 0       1
# /boot was on /dev/sda5 during installation
UUID=038498fe-1267-44c4-8788-e1354d71faf5 /boot           ext2    relatime        0       2
# swap was on /dev/mapper/minicc-swap_1 during installation
UUID=0bb583aa-84a8-43ef-98c4-c6cb25d20715 none            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

Minha partição do pen drive aparece como /dev/sdb1 . Tenho certeza de que meu fstab está configurado, mas todos os outros posts parecem deixar de mencionar como eles realmente chamam o comando mount quando essa entrada está no arquivo fstab. Eu acho que é aí que meu problema pode estar. O comando que eu uso para montar a unidade é:

$ mount /dev/sdb1 /mnt/sdcard

/bin/mount é de propriedade de root e está no grupo raiz e possui 4755 permissões.
/bin/umount é de propriedade de root e está no grupo raiz e tem 4755 permissões.
/mnt/sdcard é de propriedade por mim e está em um dos meus grupos e tem 0755 permissões.

Meu comando de montagem funciona bem se eu usar sudo , mas eu preciso ser capaz de fazer isso sem sudo (precisa ser capaz de fazer isso a partir de um script PHP usando shell_exec ). Alguma sugestão?

    
por Travesty3 25.05.2010 / 17:57

3 respostas

17

Ao montar um volume como um usuário comum, você só precisa fornecer o nome do ponto de montagem, ou seja:

mount /mnt/sdcard

O arquivo /etc/fstab fornece o dispositivo que será usado.

    
por 25.05.2010 / 19:56
7

Tente alterar a propriedade de /dev/sdb1 para raiz:

chown root:root /dev/sdb1

e sua linha fstab para

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

E faça seu mount assim:

mount /dev/sdb1
    
por 25.05.2010 / 19:51
-1

Eu acho que a opção auto faz a bagunça. Substitua-o pelo noauto.

    
por 25.05.2010 / 18:59