Quando monto uma unidade USB externa no Linux (CentOs4), as permissões são definidas por padrão como somente leitura. Como há vários usuários no computador que precisam usar a unidade externa, desejo que todos tenham permissão rw
para toda a unidade. Também quero que eles possam montar a unidade se o computador tiver sido desligado acidentalmente. Eles podem usar Sudo mount
para montar a unidade, mas isso só lhes dará permissão de leitura, e eu obviamente não quero permitir Sudo chmod
.
Existe uma configuração padrão que eu possa alterar para que cada novo disco USB externo obtenha automaticamente permissões rw
?
Para habilitar o acesso de todos os usuários, a chave é uma opção umask = 0 para montar o comando.
Sudo mount -o umask=0,uid=nobody,gid=nobody /dev/something /mnt/somewhere
umask = 0 é suficiente, uid e gid apenas por questão de clareza, para que você não veja mais donos de 'root' do que necessariamente.
@ Tom's answer (escrevendo/etc/fstab entry) permitirá pular Sudo
e se você escrever umask = 0 como opção adicional, você terá o melhor dos dois mundos:
Tendo isso em/etc/fstab:
/dev/something /mnt/somewhere auto users,noatime,umask=0 0 0
permite que você execute
mount /dev/something
e todo mundo tem acesso a todos os arquivos.
Aqui está a nota técnica, se você quiser saber detalhes:
Como man mount
diz, 'umask = 0' garantirá que nenhuma regra adicional se aplique ao modo de acesso a arquivos. Para sistemas de arquivos FAT (que são mais usados em discos USB), não há modo de acesso armazenado. Mas o seu processo atual tem algum valor de umask definido, você pode vê-lo se você executar apenas umask
no terminal. mount
usa isso como padrão e remove o modo de acesso do seu valor umask de todos os arquivos no disco montado. Os valores de umask mais usados são (octal) 022 - nenhum grupo e outro tipo de gravação, e 027 - nenhum grupo escreve, nenhum outro acesso.
Adicione uma entrada ao/etc/fstab. Aqui está uma entrada que adicionei há apenas algumas horas para a minha unidade USB Seagate:
UUID = 4ACC734ECC733375/media/Linux ext3 errors = remount-ro, padrões, usuários, noatime, nodiratime 0 0
A chave aqui é a entrada "usuários" que permite aos usuários montar e desmontar a unidade.
Edit: isso funciona para drives específicos - não sei se pode ser habilitado para all drives com uma entrada.
Digite mount
. Isso dará o lugar atual em que está. Aqui está minha saída.
[email protected] ~ $ mount
/dev/sda4 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/cgroup type tmpfs (rw)
none on /sys/fs/Fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
none on /run/user type tmpfs (rw,noexec,nosuid,nodev,size=104857600,mode=0755)
none on /sys/fs/pstore type pstore (rw)
/dev/sda6 on /media/DATA1 type vfat (rw,uid=1000,utf8,umask=077)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
systemd on /sys/fs/cgroup/systemd type cgroup (rw,noexec,nosuid,nodev,none,name=systemd)
gvfsd-Fuse on /run/user/1000/gvfs type Fuse.gvfsd-Fuse (rw,nosuid,nodev,user=rick)
/dev/sdf1 on /media/usb0 type vfat (rw,noexec,nodev,sync,noatime,nodiratime)
O último é o meu drive USB, rodado automaticamente pelo Linux Mint.
Agora digite
Sudo umount /dev/sdf1
isso desmontará a unidade
agora remontar corretamente.
Sudo mount -t vfat /dev/sdf1 /media/usb0 -o rw,users,umask=0