Files

104 lines
8.7 KiB
JSON
Raw Permalink Normal View History

{
"meta": {
"title": "Máquina: Adicionar diretório compartilhado no Host ProxMenux Documentação",
"description": "Crie um diretório no host pronto para bind mounts LXC, com permissões para contêineres com e sem privilégios. Sticky bit, rwx para todos e ACLs padrão para herança.",
"ogTitle": "Máquina: Adicionar diretório compartilhado no Host ProxMenux Documentação",
"ogDescription": "Prepare um diretório host para bind mounts LXC com permissões compatíveis com CTs privilegiadas e sem privilégios."
},
"header": {
"title": "Máquina: Adicionar diretório compartilhado na Máquina",
"description": "Crie um diretório no host para bind mounts em um ou mais contêineres LXC. O ProxMenux aplica permissões para CTs com e sem privilégios, sem precisar alinhar UIDs deslocados ou executar chown para cada contêiner, e registra o diretório para uso posterior pelo LXC Mount Manager.",
"section": "Armazenamento e Compartilhamento · Máquina"
},
"intro": {
"title": "O que é isto (e NÃO é)",
"body": "Esta ferramenta <strong>não</strong> registra nada no Proxmox (nenhum <code>pvesm add</code> aqui). Ele apenas prepara um diretório no host — <code>/mnt/shared</code>, por padrão — com permissões que qualquer contêiner LXC pode ler e gravar, independentemente de o CT ser privilegiado ou não. A próxima etapa normal é montá-lo em cada CT com o <mountLink>LXC Mount Manager</mountLink>."
},
"why": {
"heading": "Por que uma ferramenta dedicada para isso",
"intro": "Quando você vincula uma pasta de host em um container LXC, as permissões dependem de:",
"items": [
"Se o CT tem <strong>privilégios</strong> (UID 0 no CT = UID 0 no host) ou <strong>não tem privilégios</strong> (UID 0 no CT = UID 100000 no host, com deslocamento de +100000).",
"O proprietário do diretório do host (um arquivo do UID 1000 no host usa as permissões de “outros” para um CT sem privilégios, pois nenhum usuário do CT corresponde a esse UID do host).",
"Se vários CTs compartilham o mesmo diretório (CTs diferentes podem ter diferentes intervalos UID)."
],
"outro": "O truque pragmático que ProxMenux usa aqui é para <strong>dar a todos acesso</strong> no nível do sistema de arquivos: world-rwx mais o sticky bit, além de ACLs para que os novos arquivos herdem as mesmas permissões. Qualquer UID mapeado pode ler e escrever; nenhum alinhamento UID / GID é necessário."
},
"howRuns": {
"heading": "Como o script é executado",
"body": "O script não tem menu principal — ele executa uma única ação, <strong>Crie diretório compartilhado</strong>. Fase 1 coleta o caminho-alvo; Fase 2 cria o diretório e aplica permissões."
},
"bits": {
"heading": "O que cada bits de permissão faz",
"intro": "O número <strong>1777</strong> não é arbitrário — é o mesmo modo que o Linux usa para <code>/tmp</code>. Três propriedades combinadas:",
"headerBit": "Bit",
"headerEffect": "Efeito",
"headerWhy": "Porque é que isto importa aqui?",
"rows": [
{
"bit": "1 (sticky bit)",
"effect": "Somente o proprietário do arquivo, o proprietário do diretório ou um processo com privilégios suficientes pode excluir ou renomear o arquivo.",
"why": "Ajuda a impedir que usuários com UIDs mapeados diferentes apaguem arquivos uns dos outros. Não isola CTs com o mesmo UID mapeado ou acesso root privilegiado."
},
{
"bit": "777 (rwx-rwx-rwx)",
"effect": "Todos podem ler, gravar e atravessar o diretório.",
"why": "Os UIDs CT não privilegiados (100000+) aparecem como \"outros\" do host, então o world-rwx lhes dá acesso."
},
{
"bit": "ACL (predefinidas)",
"effect": "Herdado em cada arquivo / subdir recém-criado.",
"why": "O novo conteúdo herda as ACLs padrão sem executar o script novamente. Os aplicativos ainda podem solicitar modos restritivos ou alterar as permissões depois."
}
],
"privTitle": "Os CTs com privilégios veem o mesmo resultado, sem o deslocamento de UIDs",
"privBody": "Para um CT privilegiado, o UID 0 no CT é o UID 0 no host, então o <code>root</code> dentro do CT pode ler / escrever o diretório do host diretamente. <code>1777</code> ainda está bem — isso significa que usuários não root dentro do CT também podem usar o diretório. As mesmas permissões cobrem ambos os casos."
},
"where": {
"heading": "Onde colocar o diretório compartilhado",
"intro": "O selecionador de localização oferece quatro opções:",
"opt1Title": "1. Criar uma nova pasta no /mnt",
"opt1Body": "A escolha habitual. ProxMenux auto-sugere o primeiro nome livre (<code>shared</code>, <code>shared2</code>, <code>shared3</code>, ...). Basta confirmar ou escrever um nome diferente.",
"opt2Title": "2. Digite o caminho personalizado",
"opt2Body": "Para pastas fora de <code>/mnt</code>. Qualquer caminho absoluto funciona (por exemplo, <code>/srv/media</code>, <code>/data/family</code>). O script aplica as mesmas permissões.",
"opt3Title": "3. Ver as pastas existentes no /mnt",
"opt3Body": "Diagnóstico somente leitura: lista todos os diretórios sob <code>/mnt</code> com suas permissões, proprietário e espaço disponível. Útil antes de criar um novo para evitar colisões de nomes.",
"opt4Title": "4. Cancelar",
"opt4Body": "Sai sem criar nada. O mesmo que pressionar <kbd>Esc</kbd>.",
"tipTitle": "Onde vive o /mnt?",
"tipBody": "Por padrão, o <code>/mnt</code> fica no sistema de arquivos raiz do Proxmox. Se você quiser o diretório compartilhado em um disco diferente (um disco de dados, um pool ZFS), monte esse disco em <code>/mnt/&lt;name&gt;</code> primeiro (disco Manager ou <diskLink>Adicionar disco local como armazenamento Proxmox</diskLink>), e então crie o diretório compartilhado como uma subpasta dentro dele — ou escolha \"Digite o caminho personalizado\" aqui e aponte para o disco montado."
},
"manual": {
"heading": "Equivalente manual",
"body": "Todo o fluxo pode ser reproduzido à mão:"
},
"next": {
"heading": "Próxima etapa: bind mount nos contêineres",
"body": "Criar o diretório apenas o prepara – nenhum contêiner o vê ainda. Para torná-lo visível dentro de um ou mais LXCs, use o <mountLink>LXC Mount Manager</mountLink> para vincular a montagem <code>/mnt/&lt;name&gt;</code> nos CTs. Como as permissões já estão abertas, o Mount Manager <strong>não</strong> se oferecerá para alterá-las — o diretório está pronto para ser usado como está."
},
"troubleshoot": {
"heading": "Resolução de Problemas",
"mkdirTitle": "\"Failed to create directory\"",
"mkdirBody": "Normalmente um problema do sistema de arquivos: <code>/mnt</code> está em um sistema de arquivos somente leitura, o caminho contém um componente que não é um diretório (por exemplo, você digitou <code>/etc/passwd/sub</code>), ou o disco está cheio. Verifique com <code>df -h /mnt</code> e <code>mount | grep /mnt</code>.",
"writeTitle": "O recipiente não pode escrever apesar das permissões abertas",
"writeBody": "Verifique novamente se o CT está realmente usando a montagem de ligação (<code>pct config &lt;ctid&gt; | grep ^mp</code>). Dentro do CT, execute <code>touch /mnt/data/test-$(date +%s)</code> — se isso falhar com a permissão negada, a montagem pode estar em um sistema de arquivos host que não honra ACLs (algumas montagens mais antigas de <code>ext3</code> ou <code>vfat</code>). Mova o diretório compartilhado para um ext4 / xfs / btrfs / zfs de suporte.",
"aclTitle": "Comandos ACL silenciosamente indisponíveis",
"aclBody": "Em uma instalação Proxmox mínima <code>setfacl</code> / <code>getfacl</code> podem não estar instalados. O script cai de volta graciosamente (<code>command -v setfacl</code> check) e aplica apenas permissões POSIX — que é muitas vezes suficiente, mas novos arquivos não herdarão automaticamente o perfil permissivo. Instale <code>acl</code> com <code>apt-get install -y acl</code> e execute novamente o script no diretório."
},
"related": {
"heading": "Relacionado",
"items": [
{
"href": "/docs/storage-share/lxc-mount-points",
"label": "Gerenciador de montagem LXC",
"tail": " — a etapa natural seguinte: ligar esta pasta num ou mais recipientes."
},
{
"href": "/docs/storage-share/host-local-disk",
"label": "Adicionar o disco local como armazenamento Proxmox",
"tailRich": " — se você quiser o diretório compartilhado em um disco dedicado, prepare o disco primeiro, monte-o em <code>/mnt</code>, em seguida, crie a subpasta compartilhada aqui."
}
]
}
}