Crie uma conta de convidado no Gnome 3.X no Arch Linux

6

Eu quero uma conta de convidado como no Ubuntu, que possui os seguintes recursos:

  1. Não requer senha para efetuar login
  2. Uma nova pasta base (em /tmp , se possível) é criada sem dados toda vez
  3. Os dados do usuário são excluídos assim que ele efetua o logout
  4. O usuário não pode usar sudo

Estou executando o Gnome 3.20 no Arch Linux

OBSERVAÇÃO: não feche minha pergunta como duplicata de Crie uma conta de convidado com acesso restrito a aplicativos porque essa pergunta não tem respostas para meu segundo e terceiro ponto

    
por Edward Torvalds 29.01.2016 / 15:25

2 respostas

8

Acontece que é bem simples com o GDM. Eu suponho que você esteja usando o GDM, já que você também está usando o Gnome. Primeiro, crie a conta de usuário guest com uma senha em branco:

sudo useradd -d /tmp/guest -p $(openssl passwd "") guest

O openssl passwd "" retornará o hash de a string vazia, definindo a senha em branco.

Agora, tudo o que você precisa são esses dois scripts:

  • /etc/gdm/PostLogin/Default

    Isso é executado depois que você efetua login e cria o diretório /tmp/$guestuser ( /tmp/guest por padrão) e copia os arquivos padrão de /etc/skel para ele. Para alterar o nome de usuário padrão do usuário convidado, defina guestuser para outra coisa no começo.

     
    #!/bin/sh
    
    guestuser="guest"
    
    ## Set up guest user session
    if [[ "$USER" = "$guestuser" ]]; then
        mkdir /tmp/"$guestuser"
        cp /etc/skel/.* /tmp/"$guestuser"
        chown -R "$guestuser":"$guestuser" /tmp/"$guestuser"
    fi
    exit 0
    
  • /etc/gdm/PostSession/Default

    Isso é executado depois que você efetua logout e removerá o diretório /etc/$guestuser e todo o seu conteúdo. Certifique-se de definir guestuser para o mesmo valor em ambos os scripts.

     
    #!/bin/sh
    
    guestuser="guest"
    
    ## Clear up the guest user session
    if [[ "$USER" = "$guestuser" ]]; then
        rm -rf /tmp/"$guestuser"
    fi
    
    exit 0
    

Por fim, torne os dois scripts executáveis:

sudo chmod 755 /etc/gdm/PostLogin/Default  /etc/gdm/PostSession/Default

Agora, faça o logout e você verá seu novo usuário guest . Você pode efetuar login selecionando-o e pressionando Enter quando for solicitada uma senha. O usuário guest não poderá usar sudo , já que esse é o padrão para todos os usuários. Somente usuários explicitamente mencionados em /etc/sudoers ou aqueles que são membros de grupos explicitamente mencionados em sudoers (como wheel ou sudo , dependendo da sua distribuição) podem usar sudo .

Se você estiver usando uma versão recente do GDM, poderá desativar o botão de login enquanto a caixa de senha estiver vazia. Para contornar isso, você pode dizer ao GDM para não solicitar a senha para grupos específicos. A ressalva é que isso também irá ignorar o menu de seleção de sessão para membros desse grupo. Se você quiser fazer isso, adicione essa linha no início de /etc/pam.d/gdm-password :

auth sufficient pam_succeed_if.so user ingroup guest
    
por 29.01.2016 / 20:08
2

Você pode fazer uso de scripts de logoff . Lá você pode excluir a pasta inicial da sua conta de convidado e criar uma nova no logout. Se necessário, você poderá torná-lo sudo able pela conta de convidado via visudo . Adicione yourguestacc ALL=(root) NOPASSWD: /path/to/script/recreating/the/home/folder . Veja o arch wiki para mais informações.

    
por 29.01.2016 / 15:53