Создать в своем каталоге полноценную утилиту su пользователь не сможет – он не обладает правом ее чтения, а следовательно, не сможет ее скопировать. Даже если допустить, что он ее скопирует, то ценность копии будет невелика, поскольку при копировании у файла сбрасывается бит эффективных прав доступа. Но создать жесткую ссылку на недоступный файл удается без проблем.
Хитрость здесь заключается еще и в том, что второй символ в имени man вводится в русскоязычной раскладке. В противном случае при вводе команды man было бы запущено настоящее справочное руководство, что в планы пользователя вовсе не входит.
После этого из другой консоли командой ps -ef можно наблюдать, что процесс man был запущен пользователем root. Продолжает демаскировать ложный процесс только имя консоли, из которой он запущен.
Еще один очевидный демаскирующий признак, отображаемый утилитами ps и top, – имя пользователя, запустившего процесс. Как уже отмечалось выше, запуск пользователем утилиты passwd или su «приписывается» владельцу этих файлов root. Файлы с установленным битом SUID, принадлежащие администратору, находятся под его контролем и, как правило, не могут быть использованы для деструктивных действий. Но пользователь может попробовать написать простой командный файл и присвоить ему эффективное право запуска от имени другого пользователя. Пользователь ожидает, что в списке процессов такая команда отобразится как запущенная другим лицом. Проверим, так ли это.
Зарегистрируемся в двух консолях с правами обычных пользователей (допустим, их имена john и braun). Пользователь braun создает в каталоге /tmp командный файл с именем no следующего содержания:
#! /bin/bash
yes 12345 > /dev/null &
Затем он командой chmod присваивает файлу /tmp/no права доступа 4777. Пробный запуск утилиты ее владельцем braun показывает, что она работоспособна. Аналогично пробуем запустить утилиту /tmp/no от имени пользователя john. После этого с правами root наблюдаем за процессами и видим, что замысел не удался. В колонке USER отображается пользователь john, и имя программы фиксируется не no, а yes. Следовательно, утилиты для отображения процессов не подвержены таким простым способам обмана.