executando o comando history como outro usuário

0

Estou confuso sobre o motivo de ter problemas ao executar um comando de histórico como outro usuário para retornar o histórico de todos os usuários - preciso fazer um loop com todos os usuários e obter seu histórico

cat /etc/passwd | awk -F: '{print $1}' > ${system}.users.txt
while read username; do
   echo $username
      sudo -u $username bash -c 'export HISTTIMEFORMAT="%F %T "; history' >../log/${username}.hist
      #sudo -u $username bash -c 'export HISTTIMEFORMAT="%F %T "; history'
done < ./${system}.users.txt

Eu não recebo nenhuma saída de histórico quando eu corro: sudo -u anotheruser history

para solucionar problemas Eu tentei: sudo -u anotheruser bash -c 'which history'

Também corri: sudo find / -name 'history' -type f

e não recebo nenhum executável retornado.

Alguém pode me dizer por que um comando sudo não pode ser executado por outro usuário?

    
por rupert160 25.05.2016 / 06:31

1 resposta

1

(1) history é um shell embutido; não há executável

(2) bash -c torna bash não interativa e shells não interativos não usam histórico. Isso não está muito bem documentado, mas eu preciso dos dois -i e set -o history para obter o histórico em um shell com -c :

bash -ic 'set -o history; history'

(Testado em 4.1.2 (1) no RedHat e 4.3.11 (1) no Ubuntu)

(3) os timestamps não são gravados no arquivo de histórico por padrão, portanto, a menos que você tenha (anteriormente) definido / forçado HISTTIMEFORMAT para seus usuários ou eles (previamente) definiram deliberadamente, linhas / entradas foram lidas o arquivo de histórico terá (todos) o horário atual

(4) sudo altera o ID do usuário e o ID do grupo, mas não o restante do ambiente, portanto, o comando procurará pelo arquivo de histórico do usuário que o está executando, não pelo arquivo $username ; adicione -i

(5) Pode ser mais fácil ler apenas $5/.bash_history - pelo menos para userids que executam o bash e têm um diretório home, o qual os userids do sistema não irão na maioria das vezes

    
por 25.05.2016 / 08:34