Redefinir perfil do usuário.

1. Redefinir perfil do usuário.

Leandro Santana
leandrosantana

(usa Debian)

Enviado em 23/05/2019 - 11:31h

Bom dia!!

Cenário:
Trabalho numa universidade e no laboratório de informática há maquinas apenas Windows, porém, quero acrescentar máquinas Linux e pouco a pouco ampliar a alternativa, a outra necessidade do Linux são que as máquinas tem configuração limitadas, diante disso, em pesquisas encontrei uma versão chamada Q4OS, baseada no Debian, essa versão de mostrou bastante sólida e eficaz.

Problema:
Visto isso, o meu problema é o seguinte:
Preciso que toda vez que o usuário efetuar "Logoff" no computador, esse redefina o perfil do usuário, retornando ao estado inicial, ou seja, limpe informações dos navegadores, remova arquivos dos diretórios home e qualquer outra informação referente ao usuário que estava logado anteriormente.

O que foi realizado:
Em pesquisas encontrei duas soluções: Ofris, LinFreeze, Deep lock, porém, não consegui colocar em funcionamento nenhuma delas.

Aí parti para outra possibilidade, um script que efetuasse essa limpeza. Eu criei o seguinte script:
#!/bin/bash
rm -rf /home/epe
rsync -Cravzp /opt/usuarioteste/ /home/

Quando rodo o script manualmente, ele funciona perfeitamente.

O meu problema é como faço para colocá-lo para funcionar após o logoff. Eu já tentei inúmeras possibilidades, por exemplo, init.d, diretórios de inicialização e afins.. Nenhuma funcionou.

Desde já agradeço.

Abraços




  


2. Re: Redefinir perfil do usuário.

Perfil removido
removido

(usa Nenhuma)

Enviado em 23/05/2019 - 14:20h

Legal esse script... Pode usar ele!

Coloque ele para rodar com um comando no arquivo...

 ~/.bash_logout 


Isso deve resolver. O .bash_logout é meramente um script...

A não ser que você esteja usando uma outra shell que não seja o Bash..

Agora, se o usuário removesse o .bash_logout, o o seu script não iria rodar.

Vendo no manual do Bash, você pode colocar os comandos de limpeza
para todos os usuários em

  /etc/bash.bash_logout 


Porém esse é um recurso do Bbash que tem de estar habilitado na sua compilação
e alguns Bashs de algumas distro não tem ele habilitado..

PS: Depois do nome de uma pasta, não precisa colocar "/" . Pode dar problema
em alguns comandos.. Eu mesmo iria só remover e criar uma nova pasta de
usuário, não iria trocar a /home inteira... Mas entendo o que você está
tentando fazer..

PSS: Tem uns comandos que o meu sistema executa toda vez que vai desligar...
Sei que não é o caso, mas também é possível...


3. Re: Redefinir perfil do usuário.

Leandro Santana
leandrosantana

(usa Debian)

Enviado em 23/05/2019 - 14:38h

Obrigado pela ajuda!

Eu já fiz isso e não funcionou, ele simplesmente não faz nada.

O tipo de interface gráfica pode acarretar em algo? Estou usando uma chamada trinity, versão do Q4OS.

Para esclarecer, estou fazendo isso, porque eu deixei configurado atalhos e configurações em alguns softwares, então quando o usuário faz logoff, retorna para padrão.

Saudações

Leandro Tenorio


4. Re: Redefinir perfil do usuário.

Leandro Santana
leandrosantana

(usa Debian)

Enviado em 23/05/2019 - 15:13h

Segue o modo como eu fiz no bash_logout.

GNU nano 2.7.4 Arquivo: .bash_logout

# ~/.bash_logout: executed by bash(1) when login shell exits.

# when leaving the console clear the screen to increase privacy

if [ "$SHLVL" = 1 ]; then
[ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q
fi

rm -rf /home/usuario_teste

rsync -Cravzp /opt/usuario_teste /home/




5. Re: Redefinir perfil do usuário.

Perfil removido
removido

(usa Nenhuma)

Enviado em 23/05/2019 - 15:21h

O problema é que seu gerenciador de sessões não sai da shell de log-in com "exit" ou "logout",
acho que pode ser que ele nem saia da shell de log-in quando você faz log-off..
[ ... ]

https://superuser.com/questions/410525/explain-why-bash-logout-wont-run-commands
https://unix.stackexchange.com/questions/371161/bash-logout-is-not-running-on-exit-of-putty

PS: Tinha escrito mais umas coisas, mas fiz uns testes aqui e não deu certo, então retirei,
mas deixei as referências... Se me vier algo a mais na cabeça, escrevo aqui... Boa sorte!




6. Re: Redefinir perfil do usuário.

Perfil removido
removido

(usa Nenhuma)

Enviado em 23/05/2019 - 23:10h

Me ocorre o seguinte: você poderia criar um serviço do systemd. porém, andei olhando
e não sei se ele tem um alvo "logout.target", acho que só para reinicialização, suspensão
ou desligamento da máquina...

Log-out depende de como você entrou!

O que eu acho mais provável, é que seu gerenciador de sessões tenha condições de
executar um script quando um usuário fizer logout.

Veja, qual o gerenciador de sessões que você está utilizando no Q4OS?

Se fosse o lightdm, seria fácil:

Adicione a seguinte linha:

session-cleanup-script=/caminho/para/script 


no arquivo /etc/lightdm/lightdm.conf e reinicie a máquina.

https://sobrelinux.info/questions/3456/execute-a-script-upon-logout-reboot-shutdown-in-ubuntu
https://askubuntu.com/questions/293312/execute-a-script-upon-logout-reboot-shutdown-in-ubuntu

--------------------------------------------------
Algum tempo depois...
--------------------------------------------------

Eu procurei aqui, e no Q4OS usa-se o SDDM para gerenciar sessões, e não achei
um jeito de ele rodar scripts..

Se você não quiser mudar de gerenciador de sessões para o lightdm que tem a funcionalidade
de rodar scripts, acho que a alternativa mais fácil é configurar um serviço do SYSTEMD para
rodar o script de limpeza tipo uma vez por dia ou a cada reboot/desligamento da máquina..

--------------------------
Crie um timer ( o timer controla o serviço do systemd que vc irá criar depois também!)

Vamos dar um nome para ele de "limpezaconvidado.timer"
O timer deve ficar em /etc/systemd/system/limpezaconvidado.timer


[Unit]
Description=Temporizador de Limpeza do Usuário Convidado

[Timer]
OnCalendar=*-*-* 05:00:00
Persistent=true

[Install]
WantedBy=timers.target


Aqui, eu configurei ele para rodar todo dia às 5h da manhã.
O systemd vai rodar o serviço assim que a máquina inicializar, caso
tenha perdido o último agendamento do timer..

Depois, crie um serviço do systemd que o timer irá ativar.
observe que o timer e o serviço devem ter o mesmo nome!!

Criar o serviço em:
/etc/systemd/system/limpezaconvidado.service



[Unit]
Description=Roda o Script de Limpeza do Usuário Convidado

[Service]
Type=oneshot
User=root
ExecStart=caminho/para/o/script/de/limpeza


Aqui no caso é bom executar como o raíz ( User=root ) ...

Depois de criados, é só habilitar e ativar o timer como raíz ou com sudo..

$ sudo systemctl enable limpezaconvidado.timer

$ sudo systemctl start limpezaconvidado.timer


Depois, você pode ver se ele está ativo com:

$ systemctl list-timers  



Ou o seguinte comando para ver todos os timer, inclusive os inativos:
$ systemctl list-timers --all 




Seria bom você colocar no seu script, um comando para matar a sessão do
convidado, antes de remover a pasta dele antiga e colocar uma nova...
Para ter certeza que ele nao está logado.... Mas enfim, isso é só ajuste daí.



7. Re: Redefinir perfil do usuário.

Leandro Santana
leandrosantana

(usa Debian)

Enviado em 24/05/2019 - 06:12h

Olá, muitíssimo obrigado pela ajuda!!!

Ontem, eu fiquei até tarde procurando soluções com base em seus posts, o gerenciador de sessões que estou utilizando é o TDM, caso eu não esteja enganado, pois, eu mudei isso no início.
Ontem, também tentei instalar o gdm, porém, deu um problema que não subia a interface gráfica.


Assim que eu chegar efetuarem essas parametrização citadas por ti.


Será que compensa migrar de versão ou insisto mais um pouco?


Muito obrigado.

Saudações




8. Re: Redefinir perfil do usuário.

Perfil removido
removido

(usa Nenhuma)

Enviado em 24/05/2019 - 09:18h


Insista mais um pouco..

O LightDM deve funcionar do jeito que você precisa... Com o timer e serviço do SystemD, você consegue um reset uma vez por dia.. .

O GDM parece que dá para rodars cripts no logout, tb... Só colocar uma entrada para chamar o script em /etc/gdm/PostSession/Default
( Você já deve ter tentado isso?)
Se vc for trocar o gerenciador de sessões, desinstalei os demais, só deixe um para ele funcionar direito, e não entrar em conflito com os outros..

Todas distros do Linux, você consegue deixar do jeito que quer... Como um sistema base, o Q4OS parece ser OK, daí você vai configurando..










Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts