AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 422656
Accepted
Alnitak
Alnitak
Asked: 2018-02-08 13:21:55 +0800 CST2018-02-08 13:21:55 +0800 CST 2018-02-08 13:21:55 +0800 CST

Como fazer uma unidade USB formatada em ext4 com permissões RW completas para qualquer máquina Linux?

  • 772

Quero formatar meu stick USB ext4e usá-lo como faria com qualquer outra unidade de formato não Linux típica ( FAT32, exFAT, NTFS).

Ou seja, quero poder conectar o pendrive em qualquer uma das minhas máquinas linux e ler/gravar nele sem precisar ajustar permissões , como fazer chmodou chownoutras coisas.

Eu preferiria usar um software de partição GUI como GParted, em vez de comandos de linha de comando, embora qualquer solução seja bem-vinda!

Tenho certeza de que uma postagem como essa é o paraíso da bandeira duplicada para alguns, mas depois de navegar em 6 ~ 10 SO e nas postagens do fórum do google, não encontrei uma solução simples para minha pergunta. Parecia que tudo se tratava de ajustar as permissões por usuário. Talvez você simplesmente não consiga usar ext4drives com a mesma conveniência sem cérebro que os NTFS.

ubuntu permissions
  • 1 1 respostas
  • 39180 Views

1 respostas

  • Voted
  1. Best Answer
    telcoM
    2018-02-08T16:08:35+08:002018-02-08T16:08:35+08:00

    Como qualquer sistema de arquivos no estilo unix, o ext4 inclui propriedade de arquivo padrão Unix e convenções de permissão. Ou seja, o usuário é identificado por um número UID, e cada usuário pertencerá a um ou mais grupos, cada grupo identificado por seu número GID. Cada arquivo tem um UID de proprietário e um GID de proprietário de grupo. Os três conjuntos clássicos de permissões de arquivo Unix são:

    • um conjunto de permissões para o proprietário, identificado pelo número UID do proprietário
    • um conjunto de permissões para o proprietário do grupo, identificado pelo número GID do grupo
    • um conjunto de permissões para todos os outros

    Para poder acessar o stick sem precisar ajustar as permissões, você deve garantir que todos os arquivos e diretórios criados no stick tenham permissões não restritivas automaticamente. O problema é que as permissões em todos os novos arquivos criados são controladas pelo umaskvalor ... e você realmente não deseja continuar alterando-o 000para criar arquivos no pendrive e voltar ao valor padrão (geralmente 002ou 022) para uso normal . Um único erro pode levar você a criar um arquivo de configuração importante com permissões amplamente abertas, que podem comprometer a segurança de sua conta de usuário ou causar outros problemas menores.

    Se você pode ter certeza de que o número UID do seu usuário normal é o mesmo em todos os seus sistemas Linux, e você só se preocupa com o acesso para aquele usuário (além do root, é claro), você pode se safar apenas formatando o stick USB para ext4, montá-lo pela primeira vez e atribuir a propriedade de seu diretório raiz à sua conta de usuário regular antes de começar a usar o sistema de arquivos.

    Assumindo que esta /dev/sdX1é a partição do stick USB na qual você deseja criar o sistema de arquivos e <username>é o seu nome de usuário, você pode fazer isso ao configurar o stick USB para uso:

    sudo mkfs.ext4 /dev/sdX1
    sudo mount /dev/sdX1 /mnt
    sudo chown <username>: /mnt
    sudo umount /mnt
    

    Mas se você não puder garantir números UID/GID correspondentes e/ou houver vários usuários que possam querer usar o pendrive, você precisará fazer algo um pouco mais complicado, mas ainda uma operação única após criar o ext4 sistema de arquivos no stick.

    Precisamos definir uma ACL padrão no diretório raiz do sistema de arquivos do stick USB que atribui acesso total a todos em qualquer novo arquivo ou diretório. E para garantir que o stick será montado com suporte ACL ativado, precisamos usar tune2fspara ajustar as opções de montagem padrão armazenadas nos metadados do sistema de arquivos.

    sudo mkfs.ext4 /dev/sdX1
    sudo tune2fs -o acl /dev/sdX1
    sudo mount /dev/sdX1 /mnt
    sudo chown <username>: /mnt
    chmod 777 /mnt
    setfacl -m d:u::rwx,d:g::rwx,d:o::rwx /mnt
    sudo umount /mnt
    

    Supondo que todos os seus sistemas suportem ACLs em sistemas de arquivos ext4 e que qualquer ferramenta de montagem de mídia removível que você possa usar não ignore a aclopção de montagem, agora você deve ter um pendrive no qual todos os arquivos criados nele terão permissões -rw-rw-rw-e todos subdiretórios criados serão drwxrwxrwx+. O sinal de mais indica que o subdiretório terá uma ACL: o conjunto de permissões padrão personalizado configurado para o diretório raiz do stick também será herdado pelos subdiretórios e eles se comportarão da mesma forma.

    O proprietário UID/GID ainda corresponderá ao UID e ao GID primário do usuário que criou o arquivo no sistema de arquivos, mas devido às permissões relaxadas de arquivos e diretórios, isso não deve ser um grande problema.

    O único problema que posso esperar é que a cópia de arquivos para o stick USB tentará, por padrão, duplicar as permissões de arquivo do original, o que você não deseja neste caso.

    Por exemplo, se você criar um arquivo no Sistema A com permissões -rw-r--r-- e copiá-lo para o stick, mova o stick para o Sistema B com números UID não correspondentes. Você ainda pode ler o arquivo no Sistema B, mas não pode sobrescrevê-lo no pendrive sem primeiro deletar ou renomear explicitamente o arquivo original. Mas você pode fazer isso, desde que tenha acesso de gravação ao diretório em que o arquivo está .

    Na verdade, isso pode ser um recurso útil: se você modificar o mesmo arquivo em vários sistemas, isso o levará a salvar uma nova versão do arquivo a cada vez, em vez de sobrescrever o One True File... e se o arquivo for importante, isso pode realmente ser uma coisa boa.

    • 38

relate perguntas

  • Torne as configurações do teclado Apple persistentes em ../hid_apple/parameters/

  • traçar gráfico 2D com pontos de um arquivo

  • Como faço para verificar se estou usando 9.9.9.9 para DNS?

  • Instale várias distribuições Linux em paralelo

  • O OpenVPN auto-compilado não inicia a partir do systemd

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    ssh Não é possível negociar: "nenhuma cifra correspondente encontrada", está rejeitando o cbc

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    Como descarregar o módulo do kernel 'nvidia-drm'?

    • 13 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add retorna com: "Erro ao conectar ao agente: nenhum arquivo ou diretório" 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya Por que o Linux usa LF como caractere de nova linha? 2017-12-20 05:48:21 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve