Какова цель пользователя «nobody»?

72

После того, как я прочитал Список всех пользователей Google , я заметил, что есть учетная запись пользователя с именем " никто в моей системе Ubuntu.

Также я заметил, что я могу войти в эту учетную запись из терминала, используя следующую команду и мой пароль:

sudo su nobody

Это совсем не против меня, но я хочу знать, в чем цель этого пользователя? Он создан по умолчанию при новой установке Ubuntu или создается путем установки определенного пакета?

    
задан Radu Rădeanu 07.08.2013 в 14:52
источник

5 ответов

68

Здесь можно запускать все, что не требует специальных разрешений. Обычно он зарезервирован для уязвимых служб (httpd и т. Д.), Так что если они будут взломаны, они будут иметь минимальный ущерб для остальной части системы.

Сравните это с запуском чего-то как реального пользователя, если эта служба была скомпрометирована (веб-серверы иногда используются для запуска произвольного кода), она будет работать как пользователь и иметь доступ ко всему, что пользователь имел. В большинстве случаев это как плохое как получение root.

Вы можете прочитать немного больше о пользователе никому из Ubuntu Wiki:

Чтобы ответить на ваши последующие действия:

Почему я не могу получить доступ к этой учетной записи с помощью su nobody ?

sudo grep nobody /etc/shadow покажет вам, что никто не имеет пароля, и вы не можете su без пароля учетной записи. Самый чистый способ - это sudo su nobody . Это оставит вас в довольно запутанной оболочке sh .

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

Если для операций программы не требуются разрешения. Это наиболее заметно, если не будет никакой активности на диске.

A реальный мир пример этого - memcached (кеш-ключ в базе данных / база данных / вещь), сидящий на моем компьютере и мой сервер, работающий под учетной записью nobody. Зачем? Поскольку он просто не нуждается в каких-либо разрешениях и предоставлять ему учетную запись, которая имела доступ к файлам для записи, просто была бы ненужным риском.

    
ответ дан Oli 07.08.2013 в 15:02
источник
23
  

Во многих вариантах Unix «никто» - это обычное имя пользователя   учетная запись, которая не имеет файлов, не имеет привилегированных групп и не имеет   кроме тех, которые есть у каждого другого пользователя.

     

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

Информация взята из Ссылка .

    
ответ дан Paulius Šukys 07.08.2013 в 15:02
13

Пользователь nobody создается по умолчанию при новой установке (проверен на Ubuntu Desktop 13.04).

  

Во многих вариантах * nix nobody является обычным именем пользователя   учетная запись, которая не имеет файлов, не имеет привилегированных групп и не имеет   за исключением тех, которые есть у каждого другого пользователя ( nobody user   и группа не имеет записи в файле /etc/sudoers ).

     

Обычно запускаются демоны как nobody , особенно серверы, в   чтобы ограничить ущерб, который может быть нанесен злонамеренным пользователем, который   получил контроль над ними. Однако полезность этого метода   уменьшено, если запускается более одного демона, так как тогда   контроль над одним демоном обеспечит контроль над всеми ними. Причина в том, что   что nobody -удаленные процессы имеют возможность посылать сигналы каждому   другие и даже отлаживают друг друга, позволяя им читать или даже изменять   памяти друг друга.

     

<суб> Источник :    Википедия - Никто (имя пользователя)

  

Процессы nobody могут отправлять сигналы друг другу   и даже ptrace друг друга в Linux, что означает, что никто не владеет   процесс может читать и записывать память другого процесса, не принадлежащего никому.

     

Это примерная запись пользователя nobody в файле /etc/passwd :

[email protected]:~$ grep nobody /etc/passwd
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
     

Как вы можете заметить, пользователь nobody имеет /bin/sh в качестве оболочки входа   и /nonexistent в качестве домашнего каталога. Как следует из названия,   Каталог /nonexistent по умолчанию не существует.

     

Если вы параноик, вы можете установить оболочку nobody по умолчанию как    /usr/sbin/nologin и т. д., запретить вход ssh для пользователя nobody .

     

<суб> Источник :    LinuxG.net - Пользователь Linux и Unix Nobody

    
ответ дан Alaa Ali 07.08.2013 в 15:13
10

Вышеупомянутые выше ошибки довольно неправильны, поскольку они предполагают, что nobody является «общим» анонимным / гостевым стилем пользователя.

В модели управления доступом UNIX / Linux анонимные / гостевые стили пользователей не существуют, и это плохие предложения:

  • " общий для запуска демонов как nobody , особенно серверов, для ограничения ущерба, который может быть нанесен злонамеренным пользователем, который получил контроль над ними. " из-за этого: « Однако полезность этой методики уменьшается, если запускается более одного демона, так как тогда получение контроля над одним демоном обеспечит их управление всеми ».
  • " Настоящим примером этого является memcached (ключевой ключ в кеше / базе данных / вещественной ценности), сидящий на моем компьютере и мой сервер, работающий под учетной записью nobody . Почему? он просто не нуждается в каких-либо разрешениях и предоставлять ему учетную запись, которая имела доступ на запись к файлам, просто была бы ненужным риском. "

Имя пользователя nobody с идентификатором пользователя 65534 было создано и зарезервировано для определенной цели и должно использоваться только для этой цели: в качестве заполнителя для «неотображаемых» пользователей и идентификаторов пользователей в экспорте дерева NFS.

То есть, если для экспорта дерева NFS не настроено сопоставление пользователя и идентификатора, в экспорте будут отображаться файлы all , принадлежащие nobody . Цель этого - запретить всем пользователям системы импорта доступ к этим файлам (если у них нет «других» разрешений), поскольку ни один из них (кроме root ) не может быть / стал nobody .

Поэтому очень сложно использовать nobody для любой другой цели, потому что ее целью является идентификатор пользователя / пользователя для файлов, которые не должны быть доступны никому.

В вики-записи тоже неверно.

Практика UNIX / Linux заключается в создании новой учетной записи для каждого «приложения» или области приложения, которая нуждается в отдельном домене управления доступом и никогда не будет повторно использовать nobody вне NFS.

    
ответ дан PeterG 15.09.2015 в 14:07
0

никто не является специальной учетной записью пользователя и группы. Поскольку это фактическое имя пользователя (и имя группы) и может использоваться процессами и даже пользователями, это не буквально nobody . Например, некоторые конфигурации Apache не имеют никого, поскольку пользователь / группа, которая владеет файлами и каталогами веб-сайта. Проблема возникает, когда несколько процессов могут использовать пользователя nobody, например каталоги NFS и веб-сервер.     

ответ дан jeffmcneill 11.11.2016 в 08:31