Como alterar o proprietário do ponto de montagem

44

Nós movemos o diretório de dados mysql para outro disco, então agora /var/lib/mysqlé apenas um ponto de montagem para outra partição. Definimos o proprietário do /var/lib/mysqldiretório como mysql.mysql.

Mas sempre que montamos a partição, a propriedade muda para root.root. Por isso, não foi possível criar banco de dados MySQL adicional.

Nossa entrada fstab:

/dev/mapper/db-db   /var/lib/mysql    ext3    relatime        0       2

Como alterar o proprietário do ponto de montagem para outro usuário que não seja root?

Arie K
fonte

Respostas:

43

Você precisa alterar as permissões do sistema de arquivos montado, não do ponto de montagem quando o sistema de arquivos não está montado. Então mount /var/lib/mysqlentão chown mysql.mysql /var/lib/mysql. Isso mudará as permissões da raiz do sistema de arquivos MySQL DB.

A idéia básica é que o sistema de arquivos que contém o banco de dados precisa ser alterado, não o ponto de montagem, a menos que seu caminho tenha alguns problemas, por exemplo, libsó pode ser lido pela raiz.

Cristian Ciupitu
fonte
32

Além disso

mount device mount-point -o uid=foo -o gid=foo

se o grupo precisar mudar também


fonte
2
Onde uid fooé o nome do usuário que você deseja que seja o proprietário do ponto de montagem. E gid fooé o nome do grupo de usuários, geralmente o mesmo que o nome do usuário. Na dúvida, basta digitar ls -lseu diretório pessoal e verificar o nome e o segundo nomes, respectivamente.
Zequez 12/12
10

Adicione uid e gid como estes:

/dev/mapper/db-db  /var/lib/mysql ext3  relatime,rw,exec,uid=frank,gid=www-group        0       2

Você pode usar nomes de usuário / grupo reais (cuidado com os espaços) ou valores numéricos de uid, gid. Adicionei rw e exec, o que pode ajudar a evitar problemas de acesso (presumindo que você esteja em um sistema de desenvolvimento, não em um servidor de produção).

PS: para ainda mais acesso (se desejado), adicione ", dir_mode = 0777, file_mode = 0777"

Frank Nocke
fonte
3
Não, não é relatime. lwn.net/Articles/244829
endolith
7
-1 porque uide gidflags funcionam apenas em sistemas de arquivos que não suportam o esquema de permissões do Linux - ou seja, FAT e NTFS, entre outros. Veja askubuntu.com/a/34068/329506
mgarciaisaia
2
Sim, encontrei a questão uid / gid - existe uma solução?
tofutim 26/09/16
Isso me ajudou com minha unidade FAT32. Obrigado.
Naeem Khan
3

Certifique-se de alterar as permissões quando o sistema de arquivos não estiver montado - fazê-lo enquanto montado nunca funcionou para mim.

Além disso, você pode adicionar a opção 'user' ao seu fstab, por exemplo:

/dev/mapper/db-db   /var/lib/mysql    ext3    relatime,user        0       2

Isso também significa que o comando mount (se precisar ser chamado) não precisará de privilégios de root para montar esse volume. Não alterar o seu fstab, no entanto, não o impedirá de corrigir o problema!

Tom Werner
fonte
2

Eu costumo fazer isso no diretório desmontado vazio

chmod 777 <directory>

Então faça

chown -R mysql.mysql <directory>

Então, em / etc / fstab, faça

<device>    <directory>  ext3   user,defaults 0 2

Então use

mount -a

para montar todos os sistemas de arquivos listados em / etc / fstab.

Isso funciona para mim. De uma chance

Saurabh Barjatiya
fonte
2

Se você quiser fazer isso apenas como parte da mountlinha de comando, poderá usar a -oopção e:

mount device mount-point -o uid=foo

Isso mudará o proprietário do ponto de montagem para usuário em foovez de raiz.

Nasko
fonte