Script de usuário no logout

1

O problema : estou compartilhando um diretório com minha esposa. Eu coloquei nós dois em um grupo 'compartilhado' e o diretório também pertence ao grupo 'compartilhado'. Sempre que um de nós cria um arquivo, esse arquivo pertence a user: user, em vez de user: shared ...

A solução : Eu posso fazer sudo chown, mas minha esposa não pode. Então, eu quero executar um script quando eu sair da sessão.

Se eu entendi corretamente, os scripts de inicialização vão em /etc/init.d/ e os scripts de runlevel vão em /etc/rc0.d/ onde 0 é o runlevel (0-6).

Perguntas: Os scripts de runlevel são executados somente na saída / logout? Isso depende do usuário, ou seja, eu gostaria de executá-lo apenas para o meu usuário (não tão importante, neste caso, mente)? Qual nível de execução devo escolher (meu palpite é 5)? Devo colocar o script em outro lugar?

Além disso, imagino que o script será executado pelo root, então não há necessidade de sudo dentro do script, correto?

    
por GUI Junkie 19.03.2012 / 11:15

2 respostas

2

Eu acredito que você pode usar o setgid bit?

De man 2 chmod :

  

S_ISGID (02000) set-group-ID (definir ID de grupo efetivo do processo   em execve (2); bloqueio obrigatório, conforme descrito em fcntl (2); dê uma   o novo grupo de arquivos do diretório pai, conforme descrito em chown (2) e   mkdir (2))

Os scripts de nível de execução são executados apenas nas alterações de nível de execução.

Veja também este tópico: link

    
por brownian 19.03.2012 / 12:03
1
  • Os scripts de nível de execução são executados somente na saída / logout?

Aqueles em /etc/init.d somente na inicialização / desligamento, não durante a troca de usuário / logout / login.

  • Isso depende do usuário, ou seja, eu gostaria de executá-lo apenas para o meu usuário (não tão importante, neste caso, mente)?

Como eles são executados antes do login: não, eles não dependem do usuário.

  • Qual nível de execução devo escolher (meu palpite é 5)?

O Ubuntu usa normalmente 2 como nível de execução padrão. Você pode testá-lo com

runlevel

no shell.

  • Devo colocar o script em outro lugar? De acordo com o brownian, você poderia usar ~ / .logout, mas uma solução melhor é produzir os arquivos com um ID de grupo apropriado. Isso pode ser feito com o início do editor com sg.

    sg share gedit

sg age de forma semelhante a su - alterna usuário / grupo de comutadores. Talvez você possa colocar uma partida em seus painéis para facilitar o acesso. Solução brownians para todo o diretório parece ainda melhor.

  • Além disso, imagino que o script será executado pelo root, portanto não há necessidade de sudo no script, correto?

Está correto.

    
por user unknown 19.03.2012 / 12:14