Estou tentando montar um NAS em um ambiente de codificação.
Descobri que este comando é necessário, mas não sei os detalhes dele.
Alguém pode explicar o que file_mode=0777
, dir_mode
e significa ? em:uid
gid
rw,file_mode=0777,dir_mode=0777,credentials=/config/cred,uid=$(id −u),gid =$(id -g),vers=3.0
Isso não é um comando em si, mas o valor do
-o
parâmetro (opções) domount
comando usado. Então o comando seria:onde
[device]
está o NAS visto pelo seu sistema operacional,[mount point]
é o diretório no qual você deseja que o NAS seja montado e[fs type]
é o tipo de sistema de arquivos do seu NAS. Não sabemos qual é o sistema de arquivos do seu NAS, mas poderia muito bem sercifs
(para um compartilhamento do tipo Samba), pois os parâmetros a seguir sugerem umcifs
sistema de arquivos.file_mode
é o conjunto de permissões que os arquivos recém-criados no NAS (criados por meio da montagem) obterão. Eles seriam legíveis, graváveis e executáveis por qualquer usuário. Isso pode ser um risco à segurança, mas depende de você.dir_mode
é o mesmo que,file_mode
mas para novos diretórios.Os
uid
egid
são os IDs de usuário e de grupo que o NAS usará para acessar os arquivos. IDs de usuário e IDs de grupo são números. Isso significa que esses números devem ser definidos no NAS como usuários válidos. O valor que é passado ao NAS como ID do usuário neste comando específico é o resultado do comandoid -u
, ou seja, o ID do usuário que executa omount
comando. Isso seria1000
na maioria dos sistemas. O mesmo para o ID do grupo que é passado comoid -g
.Além disso, um
credentials
arquivo é passado. Geralmente é usado para conter o nome de usuário e a senha para acessar o NAS. Observe que o nome de usuário no arquivo de credenciais pode entrar em conflito com ouid
parâmetro. Não sei qual será usado se apontarem para usuários diferentes. Melhor omitir um deles.Todas essas informações podem ser obtidas em arquivos
man mount
adicionaisman
, comoman mount.cifs
.Explicação para alguns deles:
rw é para montar o sistema de arquivos com permissões de leitura e gravação
file_mode=0777 define permissões para arquivos (r/w/x)
dir_mode=0777: define permissões para diretórios
uid=$(id -u): significa que o ID do usuário do proprietário é igual ao ID do usuário atual
credenciais=/config/cred: significa que o arquivo de credenciais está em /config/cred
Não tenho certeza sobre o resto.
Define
file mode
as permissões do arquivo LOCAL edir mode
faz o mesmo para os diretórios.uid
(identificador de usuário) e gid (identificador de grupo) definem os respectivos proprietários LOCAL para esses objetos. Esta é apenas uma máscara de como os arquivos aparecerão no lado do cliente, não altera os arquivos e pastas no servidor.Presumirei abertamente que estamos falando de montagens SMB aqui, pois são as mais comuns e fáceis de configurar.
Existem algumas coisas aqui que decidem qual é o comportamento exato do arquivo. Funciona aproximadamente assim:
no lado do servidor (por exemplo Samba) você define:
exemplo rápido de trecho de arquivo de configuração do samba:
Essas configurações do servidor controlam apenas o comportamento dos arquivos no lado do servidor e não afetam o comportamento dos arquivos no computador cliente local.
Quando você monta esse compartilhamento, o servidor expõe todas as informações originais de proprietário e permissão ao cliente; no entanto, elas provavelmente não funcionarão no sistema a partir do qual você está acessando esses arquivos. Portanto, ao montar isso no cliente, você irá mascará-los com algo que permita que seus usuários locais trabalhem com os arquivos corretamente.
exemplo: você faz login no seu computador cliente como usuário: JohnDoe sua conta de usuário no servidor pode ser: JDoe e os arquivos que você tenta acessar podem ser criados pelo usuário: SuperMan
(Aliás: seus próprios arquivos no servidor são, portanto, de propriedade do usuário: JDoe)
portanto, ao montar o compartilhamento em sua máquina local, você deve usar a máscara uid e gid para o uid do usuário local JohnDoe e o gid para algum grupo do qual esse usuário é membro em seu sistema local. Isso faz de você o proprietário local desses arquivos (mas SOMENTE no seu sistema local, é uma máscara). Caso contrário, você nem conseguiria trabalhar com seus próprios arquivos no servidor, pois o usuário do servidor é diferente da sua conta local no computador cliente.
E pelo mesmo motivo você pode substituir as permissões de arquivos e diretórios locais. Desta forma você pode superar problemas de permissão, por exemplo, com grupos ou outros usuários. Pessoalmente, uso principalmente 664 para arquivos e 775 para diretórios.
Finalmente: acho que as configurações de umask do sistema do seu servidor também podem afetar a forma como as permissões de novos arquivos são criadas. fora do escopo desta resposta, mas algo para manter em mente caso você comece a ver coisas que não fazem sentido. Informações bônus como você quiser :)