Adiciona uma conta de convidado criada durante o login em determinados grupos?

2

Esta questão está relacionada com outra pergunta mais geral sobre 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 uma configuração de sala de aula com 16.04. Muitos alunos usam essas máquinas para diversas finalidades, entre análise de dados e aquisição de dados por meio de dispositivos USB conectados.

As contas de convidados nos servem para limpar as máquinas entre logins. O recurso adicional das contas de convidados é que, ao ligar as máquinas e "esquecê-las", a máquina faz login automaticamente na conta de convidado e inicia uma janela do navegador. O problema é que as contas de convidados não têm 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 cedo o suficiente no processo de login para trabalhar.

Isso é o que eu tentei até agora:

  • colocando este comando em um dos dois ganchos documentados : auto.sh e prefs.sh no /etc/guest-session diretório. Nenhum dos dois funciona. prefs.sh é executado no contexto do usuário e, embora auto.sh deva ser executado no contexto raiz, ele é executado muito tarde para incluir a conta de convidado recém-criada nos dois grupos
  • modificando os scripts disponíveis, o lightdm roda ( Sim, eu sei que isso não é bom, mas eu estava ficando desesperado ) e ainda assim isso não funciona. Eu preciso executar o comando moduser logo após a criação da conta, mas antes do login atual.
  • De acordo com documentação antiga (11 ou mais) existe um gancho chamado setup.sh , que eu tentei, mas Não tenho certeza se esse gancho funciona mais.
  • Procurei escrever um script do udev, mas isso parece terrivelmente doloroso e a documentação parece voltada para a montagem de pendrives USB que não permitem o acesso a dispositivos USB. Eu posso estar errado aqui.
  • Em algum lugar, tropecei em alguma documentação dizendo que havia um mecanismo de 'script' semelhante para adicionar automaticamente novos usuários a determinados grupos, mas não consigo encontrá-los. Isso pode funcionar neste caso ou não, mas vou tentar.
por pbeeken 12.05.2016 / 03:36

4 respostas

0

Eu não sei exatamente quando isso aconteceu, mas o lightdm foi atualizado, então o comportamento do script de inicialização prefs.sh agora funciona como anunciado. Criando um arquivo chamado prefs.sh em / etc / guest-session com a seguinte linha:

moduser $USER -a -G plugdev,dialout

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

    
por pbeeken 19.08.2016 / 17:57
2

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

No final da função add_account , ele chama useradd para crie o usuário. Se você adicionar a opção -G plugdev,dialout aqui, isso deve funcionar.

Use dpkg-divert para evitar que um pacote atualizado sobrescreva seu script modificado.

    
por Florian Diesch 12.05.2016 / 03:58
1

Use usermod , não ' moduser '.

  

... então o comportamento do script de inicialização prefs.sh agora funciona como   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 seja carregada se você incluí-lo em prefs.sh . '' moduser 'não é um comando válido. Use esta linha:

usermod -a -G plugdev,dialout $USER
    
por Godvalve 23.07.2017 / 02:24
0

auto.sh nunca foi executado em um contexto raiz. prefs.sh fez 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.sh que não é executado como root.

Não sei se essa mudança de comportamento é intencional. Se não, pode haver uma razão para propor uma mudança.

Não sabe ao certo o 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 pen drives, pelo menos. Possivelmente existem outros dispositivos cujo uso é impedido via AppArmor.

Editar:

Arquivei um relatório de erros e, se aceito, você poderá usar prefs.sh para atribuir o convidado ao grupo (s) como você poderia antes.

No que diz respeito a pen drives, fiz alguns testes e descobri que o formato do stick é importante. Com um stick formatado em ext4 eu não sabia nem ler nem escrever, mas quando formatado como fat16 ele funciona bem.

    
por Gunnar Hjalmarsson 12.05.2016 / 13:36