Имеем шелл, вводим id и узнаем, под кем сидим, но в etc/passwd такого юзера нет. Ладно идем в proc, находим файл с ключами, видим, что да, действительно, 4-значными уидами etc/passwd не богат. Ладно, тогда значит долбим getent по уидам и нам вываливаются экзотические юзеры (включая меня). Вопрос: почему эту экзотику я не вижу сразу в etc/passwd???
Вы вероятно заметили, что в системе намного больше пользовательских аккаунтов, которые определены в /etc/passwd, чем тех, которые логинятся в систему на самом деле. Всё это потому, что различные компоненты Linux используют некоторые аккаунты для повышения безопасности. Обычно, такие системные аккаунты имеют идентификатор (uid) меньший 100, и у многих из них в качестве стартовой оболочки установлена /bin/false. Так как эта программа ничего не делает, кроме как выходит и возвращает код ошибки, это эффективно препятствует использованию этих аккаунтов в качестве обычных аккаунтов для логина — т.е. они предназначены только для внутрисистемного пользования.
Ну да, все верно написал, только вопрос был другой, эти самые логины как раз отсутствуют в etc/passwd, и уид там больше 1000, я их нашёл только по ключам
И вообще, там вовсе не демоны, а реальные учётки: vasia, masha, и т.п. Веб-сервер там джино (если это как-то связано)
смена корневого каталога, например если ваша домашняя директория находится по пути /home/user, то можно сделать этот путь корнем, тоесть вы будете заперты в пределах этого каталога и для вас корень файловой системы(/) будет /home/user, а уже в /home/user можно положить /etc/passwd(полный путь будет /home/user/etc/passwd) и в этом passwd написать что угодно, а так как у вас корневой раздел изменён, то при выполнении например команды cat /etc/passwd вы будете читать файл по пути /home/user/etc/passwd а не настоящий /etc/passwd
Нифига себе... а существует ли способ это как-нибудь обойти? Ну, мне не надо рутить сервак, мне хотя бы в соседние папки зайти, где лежат соседние сайты
Однако, все оказалось проще, чем я думал ) команда id возвращает одного пользователя, которого нет в etc/passwd команда who возвращает другого пользователя, который есть в etc/passwd