Как получить всех Пользователей и эхо, если они работают или нет?

Интересная проблема, которая я думал бы, собирается укусить Вас в конце.

Можно сделать сценарий, который сделает следующее:

rm /tmp/hw_snapshot
touch /tmp/hw_snapshot
cat /proc/cpuinfo | grep  >> /tmp/hw_snapshot
dmidecode | grep  >> /tmp/hw_snapshot
lspci | grep  >> /tmp/hw_snapshot
md5sum /tmp/hw_snapshot > /tmp/key

Нет у Вас есть уникальный идентификатор для Вашей аппаратной конфигурации. Проблема - то, что даже в том же модельном ряде аппаратные средства могут значительно различаться включая центральные процессоры, Сетевые платы, Количество Сетевых плат, и т.д. Так в основном, если кто-то имеет модель HP DL380 и затем добирается, другой с дополнительной сетевой платой добавил, что Ваш уникальный ключ больше не действителен.

Плюс я все еще не понимаю цели аппаратного ограничения основы на коммуникацию. Если Вы хотите управлять тем, что говорит с Вашей машиной, помещает материал, который может на частной сети с нею (если Вы можете).

-1
26.05.2013, 16:05
1 ответ
 perl -le 'print while $_=getpwent' | sort

Даст Вам список имен пользователей.

 ps -eo user= | sort -u

Даст Вам список имен пользователей, соответствующие uids которых являются эффективными идентификаторами пользователей по крайней мере одного выполнения процесса.

 who | awk '{print $1}' | sort -u

Перечислит пользователей, в настоящее время входил в систему

 printf '%s\n' "$@" | sort -u

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

Теперь, когда у Вас есть те 4 списка, можно использовать comm управляйте для выбора, кто из тех характерен для любых двух данных списков или появляется в одном, но не другом.

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

Например:

#! /bin/bash -
comm -12 <(printf '%s\n' "$@" | sort -u) \
         <(ps -eo user= | sort -u)

Названный как:

./my-script root mythul stephane

сообщит, у кого из тех 3 пользователей есть рабочие процессы (предполагающий, что существуют непосредственные отношения между именем пользователя и uid в Вашей системе).

4
28.01.2020, 05:07

Теги

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