uptime não mostra saída para usuários não privilegiados

1

Eu tenho um sistema 12.04LTS onde o comando uptime não produz saída quando executado por um usuário normal (ou seja, não raiz):

bbx@bard:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 12.04.3 LTS
Release:    12.04
Codename:   precise
bbx@bard:~$ id
uid=1000(bbx) gid=1000(bbx) groups=1000(bbx),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),111(lpadmin),112(sambashare)
bbx@bard:~$ w
 10:42:56 up 21 days, 21:31,  1 user,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    redacted          10:35    0.00s  0.35s  0.00s w
bbx@bard:~$ uptime
bbx@bard:~$ echo $?
0

também ...

bbx@bard:~$ ls -l /proc/uptime /proc/loadavg
-r--r--r-- 1 root root 0 Jan 21 12:57 /proc/loadavg
-r--r--r-- 1 root root 0 Jan 21 12:57 /proc/uptime

A saída strace é disponível no PasteBin.

Enquanto isso, o tempo de atividade funciona bem (a saída corresponde ao comando w (1)) quando invocada pelo root:

root@bard:~# id
uid=0(root) gid=0(root) groups=0(root)
root@bard:~# uptime
 10:45:49 up 21 days, 21:34,  1 user,  load average: 0.00, 0.01, 0.05

Alguém sabe por quê?

    
por Craig Constantine 21.01.2014 / 16:49

1 resposta

2

Veja a sequência fornecida por você:

bbx@bard:~$ more strace-uptime.txt
execve("/home/bbx/bin/uptime", ["uptime"], [/* 15 vars */]) = 0
...

Seu usuário não root bbx tem um script em ~/bin/uptime que é executado. Quando executado como root, outro programa uptime é executado. Para resolver isso, verifique o que o /home/bbx/bin/uptime está fazendo lá e remova-o, se possível. Caso contrário, use o caminho completo ( /usr/bin/uptime ).

    
por Lekensteyn 21.01.2014 / 19:09