Якщо кожен використовує sudo, ви можете розглянути можливість використання чогось уздовж ліній ps -ax | grep sudo
, щоб дізнатися, хто зараз використовує sudo
або env1-controller
і шляхом запуску who
Ви можете отримати уявлення про те, хто насправді працює.
Як приклад на моїй машині з моєї машини виводиться вихід ps -ax | grep sudo
хотів би цього:
24324 pts/0 S 0:00 sudo su <user>
Перший запис - PID, другий - TTY, третій час і остання команда. Якщо ви використовуєте who
Ви отримуєте список користувачів, які в даний час увійшли в систему, і які вони використовують. Це може виглядати так:
<user> pts/0 Nov 23 10:24 (<IP>)
<user> pts/2 Nov 23 10:25 (<IP>)
Так через цю комбінацію ви знаєте, що sudo
підключається до будь-якого користувача pts/0
. Це було б ручним способом перевірки.
Я думаю, що можна об'єднати цю інформацію, але мої навички Баш не достатньо для того, щоб просто розмістити відповідь про те, як це зробити.
Остаточне рішення, яке використовував оригінальний автор питання:
Насправді, я використав grep, щоб витягти точні числа TTY, ps -aux | grep -v grep | grep "sudo su - whoami" | grep -E -o 'pts/[0-9]+' | grep -E -o '[0-9]+'
, а потім використовуйте ls -l /dev/pts/${id}
щоб визначити, хто володіє TTY.
Це:
- Використовуйте
ps -aux
щоб отримати список всіх запущених процесів, включаючи деяку додаткову інформацію.
grep
всі рядки, які не містять grep
щоб виключити grep з виходу.
grep
рядок для всіх процесів, що містять sudo
.
grep
текст pts/<number>
з цих ліній.
grep
тільки номер.
- Використовуйте
ls
перевірити, хто є власником цього TTY.
Використовуючи цю інформацію, ви можете спробувати зробити це (якщо ви хочете використовувати кого):
who | grep $(ps -ax | grep -v grep | grep "sudo su - whoami" | grep -E -o 'pts/[0-9]+')
Але це буде працювати тільки до тих пір, поки є єдиний результат, тому що вихід з $()
буде мати кілька рядків. Як ви бачите, я пропускаю u
від ps
як додана інформація не потрібна для роботи базового сценарію.
sudo
Ви можете розглянути можливість використання чогось по лініяхps -ax | grep sudo
, щоб дізнатися, хто зараз використовуєsudo
абоenv1-controller
і шляхом запускуwho
Ви можете отримати уявлення про те, хто насправді працює.