LINUX.ORG.RU

[иксы] Получить имя пользователя


0

1

Задача следующая: нужно получить имя пользователя, работающего в текущем tty (для дальнейшей обработки в скриптах).
w и who не помогают.

$ w
 04:41:38 up 18 min,  0 users,  load average: 0.00, 0.03, 0.05
USER     TTY        LOGIN@   IDLE   JCPU   PCPU WHAT

$ who -a
                        2011-08-08 04:22               212 id=rc    term=0 exit=0
           system boot  2011-08-08 04:22
           run-level 5  2011-08-08 04:30                   last=3
LOGIN      tty1         2011-08-08 04:28              2323 id=c1
LOGIN      tty3         2011-08-08 04:22               718 id=c3
LOGIN      tty2         2011-08-08 04:41              3791 id=c2
                        2011-08-08 04:22               715 id=rm    term=0 exit=0
LOGIN      tty5         2011-08-08 04:22               720 id=c5
LOGIN      tty6         2011-08-08 04:22               721 id=c6
LOGIN      tty4         2011-08-08 04:22               719 id=c4
                        2011-08-08 04:30              2556 id=x
В качестве DM используется slim.
ps t tty7 тоже не шибко информативен.
$ ps t tty7
  PID TTY      STAT   TIME COMMAND
 2563 tty7     Ss+    0:08 /usr/bin/X -nolisten tcp vt07 -auth /var/run/slim.auth
Так вот, каким образом все таки можно получить имя пользователя?

Ответ на: комментарий от kernelpanic

ps aux | grep -v root

PS если не то, то сонный -> возможно не понимаю `твоё желание`

tn1 ()
Ответ на: комментарий от tn1

>ps aux | grep -v root
А если юзеров несколько?

не понимаю `твоё желание`

Грубо говоря, надо получить имя юзера, работающего на tty7 в иксах.

kernelpanic ★★★★★ ()
Ответ на: комментарий от kernelpanic
me@sleipnir:~$ ps auxwwf
...
root      1976  0.0  0.0  26620   748 ?        Ss   09:21   0:00 /usr/bin/kdm
root      1981  5.0  1.1 143516 45032 tty7     Ss+  09:21   0:21  \_ /usr/bin/X :0 vt7 -br -nolisten tcp -auth /var/run/xauth/
A:0-YtBRaa
root      2218  0.0  0.0  60304  2052 ?        S    09:21   0:00  \_ -:0         
me        2304  0.0  0.2 253476 10044 ?        Ssl  09:21   0:00      \_ gnome-session
gorilych ★★ ()
Ответ на: комментарий от kernelpanic

Грубо говоря, надо получить имя юзера, работающего на tty7 в иксах.

who | grep tty7

Или я тоже чего-то не понимаю?

strangeman ★★★★ ()
Ответ на: комментарий от strangeman
root@somehost:~# who
someuser tty7         2011-08-02 16:24 (:0)
root     pts/0        2011-08-08 14:13 (192.168.xxx.xxx)
root@somehost:~# who | grep tty7
someuser tty7         2011-08-02 16:24 (:0)

Вот и все.

strangeman ★★★★ ()

Пока что по вашему выводу ps вобще не видно, что там кто-то работает (залогинен).

mky ★★★★★ ()

username=`who|grep pts/7|cut -f1 -d " «`

madcore ★★★★★ ()

>> В качестве DM используется slim.

У него есть одна характерная проблема с настройками по умолчанию — не регистрируется сессия, поэтому с точки зрения любого процесса пользователь как бы нигде не залогинен. Можно вылечить правкой конфига, прописав там sessreg. Кстати, некоторые программы, например Gajim, могут просто не запускаться, если пользователь не зарегистрирован на одной из виртуальных консолей.

GotF ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.