Adicionar conta de convidado criada durante o login em determinados grupos?

Adicionar conta de convidado criada durante o login em determinados grupos?

Esta questão está relacionadaoutra questão mais geralsobre contas de convidados. Este é muito específico.

Configuração: tenho muitos Dell Latitude E6410s mais antigos e alguns Dell Latitude 5450 mais recentes que uso em sala de aula executando 16.04. Muitos estudantes usam essas máquinas para diversos fins, entre análise e aquisição de dados por meio de dispositivos USB conectados.

As contas de convidados nos servem bem para limpar as máquinas entre os logins. O recurso adicional das contas de convidado é que ao ligar as máquinas e 'esquecê-las', a máquina faz login automaticamente na conta de convidado e abre uma janela do navegador. O problema é que as contas de convidados não possuem privilégios para acessar as portas USB.

Uma solução simples seria adicionar a nova conta de convidado (por exemplo, guest-abf2) ao grupo dialout e plugdev para que os alunos possam usar dispositivos conectados e pen drives. Algo como:

moduser -a -G plugdev,dialout $USER

dentro de um script com antecedência suficiente no processo de login para funcionar.

Isto é o que eu tentei até agora:

  • colocando este comando em qualquer um dos doisganchos documentados: auto.she prefs.shno /etc/guest-sessiondiretório. Nenhum dos dois funciona. prefs.shé executado no contexto do usuário e embora auto.shdeva ser executado no contexto raiz, é executado tarde demais para adicionar a conta de convidado recém-criada aos dois grupos
  • modificando os scripts disponíveis que o lightdm executa (Sim, eu sei que isso não é bom, mas eu estava ficando desesperado) e ainda assim isso não funciona. Preciso executar o comando moduser logo após a criação da conta, mas antes do login real.
  • De acordo comdocumentação antiga (11 ou mais)existe um gancho chamado setup.shque eu tentei, mas não tenho certeza se esse gancho funciona mais.
  • Eu tentei escrever um script udev, mas isso parece terrivelmente doloroso e a documentação parece voltada para a montagem de pen drives USB, não permitindo acesso a dispositivos USB. Eu posso estar errado aqui.
  • Em algum lugar, tropecei em alguma documentação que dizia que havia um mecanismo semelhante a um 'script' para adicionar automaticamente novos usuários a determinados grupos, mas não consigo encontrá-lo. Isso pode funcionar neste caso ou não, mas vou tentar.

Responder1

As contas de convidados são criadas pelo shell script /usr/sbin/guest-account.

No final da função add_accountele chamaadição de usuáriopara criar o usuário. Se você adicionar a -G plugdev,dialoutopção aqui, isso deve funcionar.

Usardpkg-desviarpara evitar que um pacote atualizado substitua seu script modificado.

Responder2

Usarusermod, não ' moduser'.

... então o comportamento do script de inicialização prefs.sh agora funciona conforme anunciado. Criando um arquivo chamado prefs.sh em /etc/guest-session com a seguinte linha:

moduser $USER -a -G plugdev,dialout

Esse comando fará com que a sessão do convidado trave e não carregue se você incluí-la no prefs.sh. '`moduser' não é um comando válido. Use esta linha em vez disso:

usermod -a -G plugdev,dialout $USER

Responder3

auto.shnunca foi executado em um contexto raiz. prefs.shfez isso até o Ubuntu 15.10 quando foi originado por /usr/sbin/guest-account, mas o código foi refatorado e em 16.04 prefs.shé originado por /usr/share/lightdm/guest-session/setup.shqual não é executado como root.

Não sei se essa mudança de comportamento é intencional. Caso contrário, pode haver um motivo para propor uma mudança.

Não tenho certeza do que você quer dizer quando diz que uma sessão de convidado não pode acessar as portas USB. Eu sei que você pode usar pendrives, pelo menos. Possivelmente existem outros dispositivos cujo uso é impedido via AppArmor.

Editar:

eu arquiveium relatório de buge, se aceito, você poderá usar prefs.shpara atribuir o convidado ao(s) grupo(s) como fazia antes.

No que diz respeito aos pendrives, fiz alguns testes e descobri que a forma como o pendrive é formatado é importante. Com um stick formatado em ext4 não consegui ler nem escrever, mas quando formatado como fat16 funciona bem.

Responder4

Não sei exatamente quando isso aconteceu, mas o lightdm foi atualizado, então o comportamento do script de inicializaçãopreferências.shagora funciona como anunciado. Criando um arquivo chamadopreferências.shem/etc/sessão de convidadocom a seguinte linha:

moduser $USER -a -G plugdev,dialout

Consegui exatamente o que precisava para permitir que os alunos acessassem novos dispositivos USB na conta de convidado.

informação relacionada