Questão o tempo de atividade não mostra saída para usuários não privilegiados


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

Além disso...

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

E a saída strace é disponível a partir do 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ê?


1
2018-01-21 15:49


origem


Você poderia adicionar a saída de ls -l /proc/uptime /proc/loadavg a sua pergunta? E enquanto você está nisso, corra strace uptime > ~/strace-uptime.txt 2>&1, carregue o ~/strace-uptime.txt arquivo em algum lugar e vinculá-lo aqui. - gertvdijk


Respostas:


Olhe para o strace fornecido por você:

bbx @ bard: ~ $ mais 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 uptime programa é executado. Para resolver isso, verifique o que /home/bbx/bin/uptime está fazendo lá e remova-o se possível. Caso contrário, use o caminho completo (/usr/bin/uptime).


2
2018-01-21 18:09



<lâmpada> Oh, sim, claro que. Eu esqueci que o script estava no caminho para esse usuário. Obrigado por olhar! - Craig Constantine