Não é possível gravar na partição de dados NTFS, possivelmente devido à falta de permissões?

1

Eu tenho o Ubuntu 18.04 instalado em um SSD com um HDD separado maior com 1 partição que contém o Windows 10 e outra partição NTFS que eu uso para armazenar todos os tipos de dados. Eu adicionei a partição de dados NTFS para montar na inicialização usando o utilitário de discos no Ubuntu, auto monta muito bem, mas só tem acesso de leitura. Eu gostaria de ter essa partição também tem acesso de gravação do Ubuntu. Mas eu não consigo descobrir como. (Inicialização rápida no Windows 10 está desativada)

Heres meu arquivo fstab (A última entrada, dev / sdb4, é a partição de dados NTFS):

# /etc/fstab: static file system information.
#
# Use 'blkid' 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).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda3 during installation
UUID=0e4a3e97-171f-4c96-9260-e2eb217f4302 /               ext4    errors=remount-ro 0       1
# /boot/efi was on /dev/sda2 during installation
#UUID=1022-A48D  /boot/efi       vfat    umask=0077      0       1
# swap was on /dev/sda1 during installation
UUID=c59f57b3-26c6-4fb1-82ae-29e676a973b1 none            swap    sw              0       0
UUID=1022-A48D  /boot/efi   vfat    defaults    0   1
/dev/sdb4 /mnt/sdb4 auto defaults,x-gvfs-show 0 0

Estas são as permissões para esta partição

Também explique como essa unidade pode ser adicionada aos Favoritos (a barra lateral que mostra os aplicativos ou aplicativos em execução que você marcou como favoritos) em 18.04?

    
por m.umar 27.05.2018 / 22:52

1 resposta

2

Por padrão, a menos que a partição montada seja uma partição ext2 / 3/4 ou uma partição que possa manipular permissões de estilo UNIX (como partições Mac HFS / HFS +), a unidade é montada como root:root para usuário / grupo propriedade por padrão. exFAT / FAT / FAT32 / NTFS não suportam permissões de estilo UNIX, portanto você não pode usar esses tipos de permissões.

Assim, você precisa definir permissões na montagem para o que você precisa que elas sejam. Existem muitas opções diferentes que você pode definir, mas nós vamos empresta um pouco da minha outra resposta sobre como montar o NTFS para que possa ser lido por qualquer usuário mas adapte-o apenas para o seu usuário.

Primeiro, precisamos obter algumas informações. Você precisará executar o comando id no terminal. Isso nos dará algumas informações que precisaremos quando construirmos os pontos de montagem, ou seja, seus uid e gid . Abaixo está o exemplo de tal saída do meu próprio laptop, embora o seu provavelmente seja substancialmente diferente:

$ id
uid=1000(teward) gid=1000(teward) groups=1000(teward),4(adm),6(disk),20(dialout),24(cdrom),27(sudo),30(dip),46(plugdev),113(lpadmin),128(sambashare),132(sbuild),137(lxd),140(wireshark),998(pgadmin4)

De relevância nesta instância específica são os valores uid e gid , que no meu caso são 1000 para ambos. O seu pode ser diferente, mas precisaremos manter esses valores em mãos.

Em seguida, reestruture sua linha /etc/fstab . Seu sistema fez auto para detectar o disco externo, o que é bom, mas há um pequeno problema com isso - isso depende do sistema operacional ser capaz de determinar o tipo de sistema de arquivos no disco. Então vamos substituir isso por ntfs .

Isso faz do seguinte o início da sua /etc/fstab line:

/dev/sdb4 /mnt/sdb4 ntfs

A parte chave do que você precisa fazer agora é ajustar as opções para montagem. defaults é um bom ponto de partida, mas não o que você precisa. Idealmente, você deve ter as seguintes opções adicionais em suas opções:

 locale=en_US.utf8,windows_names,umask=7000,uid=UID,gid=GID

Você precisa substituir UID e GID nas linhas uid= e gid= pelos valores numéricos uid e gid que obtivemos anteriormente de id .

Como você pode se perguntar o que essas opções fazem, deixe-me explicar com algumas edições da minha outra resposta:

  • locale=en_US.utf8 - enforces the US English locale with UTF8
  • windows_names - enforces that Windows name restrictions are in place for new files in the partition.
  • umask=7007 - Basically, inverse chmod. Define what permissions are not permitted for files. Essentially, I don't prohibit anything read/write/execute here except for 'other users' than yourself, so all files on the mounted location get, effectively, read, write, and execute privileges for your user. I don't want any of the special bits set (setuid, setgid, sticky), so I have to eliminate them from the first octet - since the numeric sum of those is a '7' and i'm prohibiting those permissions, I put a leading 7.
  • uid=1000, gid=1000 - Have the partition mounted into that folder with user and group ownership of UID (User ID) and GID (Group ID) of 1000 (this is my user's user and group, teward, on the Ubuntu system).

Adicioná-los à linha de opções permitirá que o seu dispositivo externo seja compatível com a inicialização dupla do Windows com a nomenclatura de arquivos e também imponha o UTF8. Ele também definirá as permissões corretamente, para que seu usuário possa apenas ler / gravar na partição. Isso faz com que sua linha /etc/fstab seja esta:

/dev/sdb4 /mnt/sdb4 auto defaults,x-gvfs-show,locale=en_US.utf8,windows_names,umask=7000,uid=UID,gid=GID 0 0

Não precisamos fazer nada com os dois últimos zeros, tudo bem sair daqui. Apenas certifique-se de atualizar os valores GID e UID para os valores reais.

Em seguida, use sudo umount /dev/sdb4 && sudo mount /dev/sdb4 para desmontar e remontar a partição com as novas opções. Você deve ter privilégios de leitura / gravação em todo o disco agora.

    
por Thomas Ward 27.05.2018 / 23:40