su – пользователь не работает для пользователей без пароля

Я создал пользователя в CentOS с useradd -M username . Теперь я хочу стать таким пользователем, как su - username .

Он запрашивает у меня пароль для этого пользователя, но я не установил пароль для этого пользователя. В качестве обходного пути я должен стать root, тогда su - username работает явно.

Во-первых, я думал, что он запрашивает пароль root, но это не так. Есть идеи?

  • Переход на суперпользователь при запуске скрипта оболочки
  • Переключение пользователей без символа -
  • su: Разрешение отклонено, несмотря на правильный пароль
  • Вывод команды id из команды запуска с "su -c"
  • Как я могу запустить часть скрипта в качестве другого пользователя?
  • запускать экран после «su'ing для конкретного пользователя
  • «Sudo su» делает меня пользователем root?
  • Невозможно изменить настройки в команде, когда я запускаю его с помощью sudo
  • 2 Solutions collect form web for “su – пользователь не работает для пользователей без пароля”

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

     $ passwd <username> 

    Судо

    Если вы абсолютно уверены, что вы, (userZ), хотите стать другим пользователем (userX), не предоставляя пароль пользователяX, И вы не хотите, чтобы сначала стали root, тогда вы, скорее всего, ищете sudo .

    CentOS Wiki очень хорошо справляется со всей этой темой, о которой вы спрашиваете здесь, в этом артикулированном названии: « Как стать корнем» .

    Вот краткий обзор.

    1. Вы хотите иметь возможность делать что-либо как root, например, стать другими пользователями, не предоставляя свой пароль. Добавьте следующее правило в файл sudoers, /etc/sudoers . ПРИМЕЧАНИЕ. Вы редактируете файл sudoers с помощью команды visudo как root!

       userZ ALL=(ALL) ALL 

      Вышеупомянутый подход все равно вызовет у вас пароль пользователяZZ. Вы можете избавиться от этой защиты, добавив это правило в sudoers.

       userZ ALL=NOPASSWD: ALL 
    2. Вы хотите передать возможность только стать конкретным пользователем, используя sudo .

       userZ ALL=(root) NOPASSWD: /bin/su - userX 

      ПРИМЕЧАНИЕ . Вышеупомянутое также можно сделать так, чтобы userZ также использовал свой пароль для запуска команды su . Вышеуказанный только давайте userZ стать userX, не более того.

    Он запрашивает у меня пароль для этого пользователя

    Вот как это работает. Если вы не являетесь пользователем root, вы не можете использовать идентификатор другого пользователя без пароля.

    Если CentOS поставляется с установленным sudo, вы можете добавить

     youruserid ALL = (username) NOPASSWD: ALL 

    с visudo а затем sudo -u username bash похоже на su - username

    (изменить: попытался ввести спецификации sudo без проверки)

    Linux и Unix - лучшая ОС в мире.