O Systemd mudará o funcionamento do seu diretório pessoal do Linux

O diretório / home destacado em um gerenciador de arquivos Linux gráfico.
isak55 / Shutterstock

A equipe por trás systemddeseja que você adote uma nova maneira de gerenciar diretórios pessoais. Chamar isso de “nova maneira” é ser leviano – essa é uma verdadeira mudança de paradigma para o Linux. Aqui está tudo o que você precisa saber systemd-homed, o que provavelmente virá para uma distribuição Linux perto de você.

Não é estranho à controvérsia

Quando systemdfoi introduzido em 2010, a comunidade Linux se dividiu em três campos. Alguns pensaram que era uma melhoria, e outros pensaram que era um design defeituoso que não aderia à filosofia Unix . E alguns não se importavam de uma forma ou de outra.

A reação dos opositores foi alta, acalorada e, em alguns casos, quase fanática. Lennart Poettering , engenheiro de software da Red Hat  e co-desenvolvedor do systemd, recebeu até ameaças de morte.

Músicas defendendo a violência contra Poettering foram postadas no YouTube, e sites apareceram tentando coagir os usuários do Linux a boicotar systemd. Seu co-desenvolvedor, Kay Sievers , também recebeu críticas e abusos, mas Poettering certamente suportou o peso disso.

Mesmo assim, em oito meses, o Fedora estava usando  systemd. No final de 2013,  Arch , Debian , Manjaro e Ubuntu  foram todos transferidos para systemd. Obviamente, a glória do código aberto é que, se você não gosta de algo, você pode bifurcar o código-fonte e fazer o que quiser com ele. Novas distribuições – como  Devuan , que era um fork do Debian – foram criadas exclusivamente para evitar o uso systemd.

Seu diretório $ HOME

Na estrutura de diretórios do Linux , tudo que você faz reside no diretório “/ home”. Seus arquivos de dados, imagens, música e toda a árvore de diretório pessoal são armazenados neste diretório com o nome de sua conta de usuário.

As configurações de seus aplicativos são armazenadas em sua pasta inicial em “diretórios de pontos” ocultos. Se o primeiro caractere de um arquivo ou nome de diretório for um ponto (.), Ele estará oculto. Como essas configurações são armazenadas localmente e não em um registro central – e porque um backup do seu diretório inicial inclui esses arquivos e pastas ocultos – todas as suas configurações também são submetidas a backup.

Recomendado:  Por que a tela do meu telefone Android liga aleatoriamente?

Quando você restaura um backup e abre um aplicativo, como o LibreOffice ou Thunderbird, ele procura seu diretório oculto. Ele também encontra suas preferências de documento, configurações da barra de ferramentas e quaisquer outras personalizações. Thunderbird encontra suas informações de conta de e-mail e seu e-mail. Você não precisa passar pela dor de configurar cada aplicativo lentamente.

Você pode usar lscom a -aopção (todos) para ver arquivos e diretórios ocultos. Primeiro, digite o seguinte:

ls

Isso mostra os arquivos e diretórios regulares. Em seguida, digite o seguinte:

ls -a

Agora, você pode ver os arquivos e diretórios ocultos.

ls em uma janela de terminal.

Por ser a parte mais preciosa de uma instalação, é comum que o diretório “/ home” seja montado em sua própria partição ou em um disco rígido separado. Dessa forma, se algo catastrófico acontecer ao sistema operacional ou à partição em que ele está, você pode reinstalar sua distribuição Linux ou trocar por uma nova. Em seguida, você pode simplesmente remontar sua partição inicial existente em “/ home.”

Dados sobre você

Seu diretório pessoal não apenas armazena seus dados; ele também armazena informações sobre você. incluindo alguns atributos de sua identidade digital. Por exemplo, seu diretório “.ssh” armazena informações sobre conexões remotas que você fez a outros computadores e quaisquer chaves SSH que você gerou.

Outros atributos do sistema, como nome de usuário da conta, senha e ID de usuário exclusivo , são armazenados em outros lugares em arquivos como “/ etc / passwd” e “/ etc / shadow”. Qualquer um pode ler alguns deles, mas outros só podem ser lidos por pessoas que têm privilégios de root.

É assim que o conteúdo do arquivo “/ etc / passwd” se parece:

cat / etc / passwd

cat / etc / passwd em uma janela de terminal.

As mudanças do systemd-homed

A intenção das  systemd-homedmudanças é fornecer um diretório home totalmente portátil com seus dados e a identidade digital do Linux armazenada nele. Seu UID e todos os outros mecanismos de identificação e autenticação serão armazenados apenas em seu diretório inicial.

Devido ao seu design “todos os ovos em uma cesta”, os diretórios pessoais são criptografados. Eles são descriptografados automaticamente sempre que você faz login e criptografados novamente sempre que você sai. O método preferido é usar a criptografia de disco Linux Unified Key Setup (LUKS). No entanto, existem outros esquemas disponíveis, como fscrypt .

Um registro de usuário JavaScript Object Notation (JSON) armazena todas as suas informações de identidade em um diretório chamado “~ / .identity”. É assinado criptograficamente com uma chave que está fora do seu controle.

Recomendado:  Como escrever um script de lote no Windows

O diretório inicial de cada pessoa é montado em um dispositivo de loopback, semelhante à maneira como um snapaplicativo é montado. Isso ocorre para que a árvore de diretórios dentro do diretório inicial apareça como uma parte integrada da árvore de diretórios do sistema operacional. O padrão do ponto de montagem é “/home/$USER.homedir” (“$ USER” é substituído pelo nome da conta da pessoa).

Quais são os benefícios?

Como seu diretório inicial se torna um encapsulamento seguro de todos os seus dados, você pode até mesmo ter seu diretório inicial em um dispositivo removível. Por exemplo, você pode usar uma unidade USB para movê-lo entre as máquinas do trabalho e de casa ou qualquer outro systemd-homed computador.

Isso é o que Poettering quis dizer com “um diretório inicial totalmente portátil”. Ele disse que mesmo se você não quiser mover seu diretório inicial em um dispositivo portátil, isso tornará as atualizações e migrações mais fáceis e aumentará a segurança.

Ele remove o que ele chama de “bancos de dados secundários”, que contêm fragmentos de informações importantes sobre você que Poettering acha que deveriam ser centralizados. Os arquivos “/ etc / passwd” e “/ etc / shadow” contêm informações de autenticação e senhas com hash. No entanto, eles também contêm informações como seu shell padrão, o campo General Electric Comprehensive Operating Supervisor (GECOS).

Poettering disse que esses metadados  devem ser racionalizados e armazenados em grupos significativos dentro do registro JSON de cada pessoa em seu diretório inicial.

Gerenciando Seu Novo $ HOME

O systemd-homedserviço é controlado por meio da nova homectl ferramenta de linha de comando .

Existem opções para criar usuários e diretórios pessoais e definir limites de armazenamento para cada usuário. Você também pode definir a senha, bloquear alguém de sua conta ou excluir uma conta completamente. Os usuários podem ser inspecionados e seus registros de usuário JSON também podem ser lidos.

Os fusos horários e outras informações baseadas na localização também podem ser definidos para cada usuário. Você pode especificar o shell padrão e até mesmo definir variáveis ​​de ambiente para que fiquem em um determinado estado sempre que alguém fizer login.

Recomendado:  O carregador USB-C de 100 W da Anker custa apenas US $ 29 no momento

Se você olhar no diretório “/ home”, verá systemd-homedentradas gerenciadas que se parecem com o seguinte, com “.homedir” anexado ao nome de usuário:

/home/dave.homedir

Lembre-se de que este é apenas um ponto de montagem. A localização do diretório inicial criptografado real está em outro lugar.

Limitações e problemas

systemd-homedé apenas para uso em contas de usuário de humanos. Ele não pode lidar com contas de usuário com um UID inferior a 1.000. Em outras palavras, root, daemon, bin e assim por diante não podem ser administrados usando o novo esquema. Sempre haverá a necessidade de formas padrão de administração de usuários. Portanto,  systemd-homed não é uma solução global.

Há um conhecido  catch-22 que precisa ser resolvido. Como mencionamos anteriormente, o diretório inicial de uma pessoa é descriptografado sempre que ela faz login. Mas se alguém estiver acessando remotamente o computador por SSH, as chaves SSH no diretório inicial não podem ser referenciadas porque o diretório inicial ainda está criptografado até que a pessoa faz o login. Claro, é preciso usar as chaves SSH para autenticação antes de fazer o login.

Esse era um problema reconhecido pela systemd-homedequipe, mas não foi possível encontrar nenhuma referência sobre uma solução para ele. Temos certeza de que eles encontrarão uma solução; seria uma queda espetacular se não o fizessem.

Digamos que alguém transporte seu diretório pessoal para uma nova máquina. Se o UID já estiver sendo usado na nova máquina por outra pessoa, ele receberá um novo UID automaticamente. Obviamente, todos os seus arquivos terão que ter sua propriedade reatribuída para o novo UID.

Atualmente, isso está sendo tratado por uma aplicação automática recursiva do  chown -Rcomando . Isso provavelmente será tratado de forma diferente no futuro, quando um esquema mais elegante for desenvolvido. Essa abordagem pesada não leva em consideração os daemons e processos que são executados como outros usuários.

Quando isso vai acontecer?

Isso está acontecendo agora. As alterações de código foram enviadas em 20 de janeiro de 2020 e incluídas na compilação 245 do systemd, que acompanha o Ubuntu 20.04 em abril de 2020.

Para verificar qual versão você tem, digite o seguinte:

systemd --version

systemd --version em uma janela de terminal.

O homectlcomando ainda não está presente, no entanto. Ubuntu 20.04 usa um diretório tradicional / home e não usa systemd-homed.

Obviamente, cabe às distribuições individuais decidir quando incluirão e oferecerão suporte  systemd-homede homectl.

Portanto, não há necessidade de ninguém entrar no modo forcados e tochas acesas. Como os métodos padrão de gerenciamento de usuários e diretórios pessoais permanecerão, todos ainda teremos opções.