A equipe por trás do systemd quer que você adote uma nova maneira de gerenciar diretórios pessoais. Chamar isso de “nova maneira” é colocar isso de forma leve – esta é uma verdadeira mudança de paradigma para o Linux. Aqui está tudo o que você precisa saber sobre o systemd-homed, que provavelmente está chegando a uma distribuição Linux perto de você.
últimas postagens
Não Estranho à Controvérsia
Quando systemd foi 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 falho que não aderiu a 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. Poesia de Lennart, engenheiro de software da chapéu vermelho 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 o systemd. Seu co-desenvolvedor, Kay Sievers, também recebeu críticas e abusos, mas Poettering certamente suportou o impacto disso.
No entanto, em oito meses, o Fedora estava usando o systemd. Até o final de 2013, Arco, Debian, Manjaro, e Ubuntu todos foram movidos para o systemd. Claro, a glória do código aberto é que, se você não gostar de algo, você pode bifurcar o código-fonte e fazer suas próprias coisas com ele. Novas distribuições, como Devuan, que era um fork do Debian—foram criados exclusivamente para evitar o uso do systemd.
Seu diretório $HOME
Na estrutura de diretórios do Linux, tudo o que você faz reside no diretório “/home”. Seus arquivos de dados, imagens, músicas e toda a árvore de diretórios pessoais são armazenados nesse diretório com o nome de sua conta de usuário.
As configurações de seus aplicativos são armazenadas em sua pasta pessoal em “diretórios de ponto” ocultos. Se o primeiro caractere de um nome de arquivo ou diretório for um ponto (.), ele ficará oculto. Como essas configurações são armazenadas localmente e não em um registro central – e porque um backup do seu diretório pessoal inclui esses arquivos e pastas ocultos – todas as suas configurações também são copiadas.
Quando você restaura um backup e inicia um aplicativo, como 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. O Thunderbird encontra as informações da sua conta de e-mail e seu e-mail. Você não precisa passar pela dor de configurar lentamente cada aplicativo.
Você pode usar ls com a opção -a (all) para ver arquivos e diretórios ocultos. Primeiro, digite o seguinte:
ls
Isso mostra os arquivos e diretórios regulares. A seguir, digite o seguinte:
ls -a
Agora, você pode ver os arquivos e diretórios ocultos.
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 com o sistema operacional ou a partição em que está, você pode reinstalar sua distribuição Linux ou trocar para uma nova. Então, você pode apenas remontar sua partição inicial existente em “/home”.
Dados sobre você
Seu diretório pessoal não armazena apenas 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 com outros computadores e quaisquer chaves SSH que você gerou.
Outros atributos do sistema, como o nome de usuário da sua conta, senha e ID de usuário exclusivo, são armazenados em outro lugar 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
As alterações do systemd-homed
A intenção das alterações do systemd-homed é fornecer um diretório inicial totalmente portátil com seus dados e identidade digital Linux armazenados nele. Seu UID e todos os outros mecanismos de identificação e autenticação serão armazenados apenas em seu diretório pessoal.
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ê faz logout. O método preferido é usar o Configuração de chave unificada do Linux (LUKS) criptografia de disco. No entanto, existem outros esquemas disponíveis, como fscrypt.
UMA Notação de Objeto JavaScript O registro de usuário (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.
O diretório pessoal de cada pessoa é montado em um dispositivo de loopback, semelhante à maneira como um aplicativo snap é 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 ponto de montagem padrão é “/home/$USER.homedir” (“$USER” é substituído pelo nome da conta da pessoa).
Quais são os benefícios?
Como seu diretório pessoal se torna um encapsulamento seguro de todos os seus dados, você pode até ter seu diretório pessoal em um dispositivo removível. Por exemplo, você pode usar uma unidade USB para movê-la entre suas máquinas de trabalho e domésticas ou qualquer outro computador com home do sistema.
Isso é o que Poettering quis dizer com “um diretório pessoal totalmente portátil”. Ele disse que mesmo que você não queira mover seu diretório pessoal 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 trechos de informações importantes sobre você que Poettering acha que deveriam ser centralizadas. 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 Supervisor Operacional Abrangente da General Electric (GECOS).
Poetizar disse isso 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 serviço systemd-homed é controlado através do novo 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.
Fusos horários e outras informações baseadas em localização também podem ser definidas para cada usuário. Você pode especificar o shell padrão e até definir variáveis de ambiente para que fiquem em um determinado estado sempre que alguém fizer login.
Se você olhar no diretório “/home”, verá entradas gerenciadas do systemd-homed que se parecem com o seguinte, com “.homedir” anexado ao nome de usuário:
/home/dave.homedir
Lembre-se, 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 nas contas de usuários 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 pessoal de uma pessoa é descriptografado sempre que ela faz login. É claro que uma pessoa precisa das chaves SSH para se autenticar antes de poder fazer login.
Este foi um problema reconhecido pela equipe do systemd-homed, mas não encontramos nenhuma referência sobre uma correção para isso. 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. Claro, todos os seus arquivos terão que ter sua propriedade reatribuída ao novo UID.
Atualmente, isso está sendo tratado por uma aplicação recursiva e automática de o comando chown -R. 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 Está Acontecendo?
Isso está acontecendo agora. As alterações do código foram enviado em 20 de janeiro de 2020, e eles foram incluídos na compilação 245 do systemd, que foi enviado com o Ubuntu 20.04 em abril de 2020.
Para verificar qual versão você tem, digite o seguinte:
systemd --version
O comando homectl ainda não está presente, no entanto. O Ubuntu 20.04 usa um diretório /home tradicional e não usa systemd-homed.
Claro, cabe às distribuições individuais decidir quando incluirão e suportarão systemd-homed e homectl.
Portanto, não há necessidade de ninguém entrar no modo de forcados e tochas acesas. Como os métodos padrão para gerenciar usuários e diretórios pessoais permanecerão, todos ainda teremos escolhas.