Узнайте, есть ли локальный пользователь, зарегистрированный при входе в систему через ssh

Мне нужно выполнить некоторые вычисления на машине, на которой я могу получить доступ только удаленно, но также служит в качестве рабочей станции. Их много, и я хочу выбрать «свободный». Свободный означает, что в этом случае никто не регистрируется локально.

Моя первая попытка была командой who, но по какой-то причине она отображает только «выбранных» пользователей, и я не могу точно узнать, как они выбраны. Следующая попытка: ps aux | cut -d " " -f1 | sort | uniq: лучше показать кучу демонов, но также и локального пользователя, который не был отображен who.

Мое текущее решение заключается в том, чтобы войти и сделать ps aux | grep "gnome-session", что лучше, но все еще дает мне много мусора. В идеале я ищу что-то, что я могу включить в свой профиль ssh, который предупреждает меня о (активных) локальных пользователях при входе в систему.

EDIT:

  • Ни who и w вернули локального пользователя. Является ли это неожиданным поведением?
  • uptime, с другой стороны, показал мне нужное количество пользователей (локальных и удаленных пользователей минус-системы, таких как root)
  • finger не установлен
6
задан 1 June 2012 в 10:52

51 ответ

Подумайте, как установить самую высокую оценку ваших расчетов. Следует избегать использования ресурсов для любых других пользователей, которые могут войти в систему.

nice -n 19 your_calculation_command
1
ответ дан 25 July 2018 в 18:42

last

просматривает / var / log / wtmp и отображает журнал последних зарегистрированных пользователей, включая те в настоящее время вошел в систему.

1
ответ дан 25 July 2018 в 18:42

Установлена ​​ли команда finger, или, если нет, может быть? Это должно предоставить список всех пользователей, которые вошли в систему и откуда (например, на другом компьютере или непосредственно на машине), а также указать, как долго этот пользователь простаивает.

Для получения дополнительной информации см. man-страницу ubuntu finger .

4
ответ дан 25 July 2018 в 18:42

Мне нравится этот:

for i in $(ls /dev/pts/*);do echo "TTY $i - $(ps e -t $i|grep -oP "(?<=(RUSER\=))[a-z]*"|uniq)";done ; echo -e '\n+++\n';  for i in $(pgrep ssh);do pstree -paul $i;done
0
ответ дан 25 July 2018 в 18:42

Я бы пошел с:

who | cut -d' ' -f1 | sort | uniq

Это покажет список пользователей real . Если список пуст - машина вышла из системы, ожидая, что кто-то войдет в систему. ps aux покажет также некоторых пользователей системы, которые вы, вероятно, не хотите видеть.

2
ответ дан 25 July 2018 в 18:42

Быстрая и грязная попытка:

ps au --no-heading | cut -d " " -f1 | uniq
0
ответ дан 31 July 2018 в 11:17

last

просматривает / var / log / wtmp и отображает журнал последних зарегистрированных пользователей, включая те в настоящее время вошел в систему.

7
ответ дан 31 July 2018 в 11:17

Установлена ​​ли команда finger, или, если нет, может быть? Это должно предоставить список всех пользователей, которые вошли в систему и откуда (например, на другом компьютере или непосредственно на машине), а также указать, как долго этот пользователь простаивает.

Для получения дополнительной информации см. man-страницу ubuntu finger .

4
ответ дан 31 July 2018 в 11:17

Мне нравится этот:

for i in $(ls /dev/pts/*);do echo "TTY $i - $(ps e -t $i|grep -oP "(?<=(RUSER\=))[a-z]*"|uniq)";done ; echo -e '\n+++\n';  for i in $(pgrep ssh);do pstree -paul $i;done
0
ответ дан 31 July 2018 в 11:17

Я бы пошел с:

who | cut -d' ' -f1 | sort | uniq

Это покажет список пользователей real . Если список пуст - машина вышла из системы, ожидая, что кто-то войдет в систему. ps aux покажет также некоторых пользователей системы, которые вы, вероятно, не хотите видеть.

2
ответ дан 31 July 2018 в 11:17

Установлена ​​ли команда finger, или, если нет, может быть? Это должно предоставить список всех пользователей, которые вошли в систему и откуда (например, на другом компьютере или непосредственно на машине), а также указать, как долго этот пользователь простаивает.

Для получения дополнительной информации см. man-страницу ubuntu finger .

4
ответ дан 31 July 2018 в 12:17

last

просматривает / var / log / wtmp и отображает журнал последних зарегистрированных пользователей, включая те в настоящее время вошел в систему.

7
ответ дан 31 July 2018 в 12:17

Я бы пошел с:

who | cut -d' ' -f1 | sort | uniq

Это покажет список пользователей real . Если список пуст - машина вышла из системы, ожидая, что кто-то войдет в систему. ps aux покажет также некоторых пользователей системы, которые вы, вероятно, не хотите видеть.

2
ответ дан 31 July 2018 в 12:17

Быстрая и грязная попытка:

ps au --no-heading | cut -d " " -f1 | uniq
0
ответ дан 31 July 2018 в 12:17

Мой ответ, чтобы список каждого пользователя регистрировался уникальным образом.

w | tail -n +3 | cut -d " " -f1 | sort | uniq
1
ответ дан 31 July 2018 в 12:17

Подумайте, как установить самую высокую оценку ваших расчетов. Следует избегать использования ресурсов для любых других пользователей, которые могут войти в систему.

nice -n 19 your_calculation_command
1
ответ дан 31 July 2018 в 12:17

Подумайте, как установить самую высокую оценку ваших расчетов. Следует избегать использования ресурсов для любых других пользователей, которые могут войти в систему.

nice -n 19 your_calculation_command
1
ответ дан 2 August 2018 в 00:51

last

просматривает / var / log / wtmp и отображает журнал последних зарегистрированных пользователей, включая те в настоящее время вошел в систему.

7
ответ дан 2 August 2018 в 00:51

Установлена ​​ли команда finger, или, если нет, может быть? Это должно предоставить список всех пользователей, которые вошли в систему и откуда (например, на другом компьютере или непосредственно на машине), а также указать, как долго этот пользователь простаивает.

Для получения дополнительной информации см. man-страницу ubuntu finger .

4
ответ дан 2 August 2018 в 00:51

Я бы пошел с:

who | cut -d' ' -f1 | sort | uniq

Это покажет список пользователей real . Если список пуст - машина вышла из системы, ожидая, что кто-то войдет в систему. ps aux покажет также некоторых пользователей системы, которые вы, вероятно, не хотите видеть.

2
ответ дан 2 August 2018 в 00:51

Быстрая и грязная попытка:

ps au --no-heading | cut -d " " -f1 | uniq
0
ответ дан 2 August 2018 в 00:51

Мой ответ, чтобы список каждого пользователя регистрировался уникальным образом.

w | tail -n +3 | cut -d " " -f1 | sort | uniq
1
ответ дан 2 August 2018 в 00:51

Мне нравится этот:

for i in $(ls /dev/pts/*);do echo "TTY $i - $(ps e -t $i|grep -oP "(?<=(RUSER\=))[a-z]*"|uniq)";done ; echo -e '\n+++\n';  for i in $(pgrep ssh);do pstree -paul $i;done
0
ответ дан 2 August 2018 в 00:51

last

просматривает / var / log / wtmp и отображает журнал последних зарегистрированных пользователей, включая те в настоящее время вошел в систему.

7
ответ дан 4 August 2018 в 16:22

Установлена ​​ли команда finger, или, если нет, может быть? Это должно предоставить список всех пользователей, которые вошли в систему и откуда (например, на другом компьютере или непосредственно на машине), а также указать, как долго этот пользователь простаивает.

Для получения дополнительной информации см. man-страницу ubuntu finger .

4
ответ дан 4 August 2018 в 16:22

Быстрая и грязная попытка:

ps au --no-heading | cut -d " " -f1 | uniq
0
ответ дан 4 August 2018 в 16:22

Подумайте, как установить самую высокую оценку ваших расчетов. Следует избегать использования ресурсов для любых других пользователей, которые могут войти в систему.

nice -n 19 your_calculation_command
1
ответ дан 4 August 2018 в 16:22

Я бы пошел с:

who | cut -d' ' -f1 | sort | uniq

Это покажет список пользователей real . Если список пуст - машина вышла из системы, ожидая, что кто-то войдет в систему. ps aux покажет также некоторых пользователей системы, которые вы, вероятно, не хотите видеть.

2
ответ дан 4 August 2018 в 16:22

Мне нравится этот:

for i in $(ls /dev/pts/*);do echo "TTY $i - $(ps e -t $i|grep -oP "(?<=(RUSER\=))[a-z]*"|uniq)";done ; echo -e '\n+++\n';  for i in $(pgrep ssh);do pstree -paul $i;done
0
ответ дан 4 August 2018 в 16:22

Мой ответ, чтобы список каждого пользователя регистрировался уникальным образом.

w | tail -n +3 | cut -d " " -f1 | sort | uniq
1
ответ дан 6 August 2018 в 01:00

Другие вопросы по тегам:

Похожие вопросы: