su - ユーザーはパスワードを持たないユーザーに対しては機能しません。

su - ユーザーはパスワードを持たないユーザーに対しては機能しません。

CentOSで使ったことがありますがuseradd -M username、今はそんなユーザーになりたいですsu - username

ユーザーのパスワードの入力を求められますが、ユーザーに設定されたパスワードはありません。回避策としてroot権限を付与する必要がsu - usernameあります。

最初はルートパスワードが必要だと思いましたが、そうではありませんでした。どんなアイデアがありますか?

答え1

コマンドを使用してアカウントを作成したら、useraddrootとして次のコマンドを実行して、新しく作成されたアカウントのパスワードを設定する必要があります。

$ passwd <username>

Sudo

あなた(userZ)がuserXのパスワードを提供せずに他のユーザー(userX)になりたいと確信している場合、そしてまずルートになりたくない場合sudo

CentOS Wikiは、この記事で尋ねるトピック全体を見事に扱っています。rootユーザーになる方法

これは要約です。

  1. パスワードを提供せずに他のユーザーになるなど、ルートとしてすべての作業を実行できるようにしたいです。 sudoersファイルに次のルールを追加します/etc/sudoersメモ:rootコマンドを使用してsudoersファイルを編集できますvisudo

    userZ    ALL=(ALL)       ALL
    

    上記の方法はまだuserZのパスワードを求めます。 sudoersにこのルールを追加すると、この保護を削除できます。

    userZ ALL=NOPASSWD: ALL
    
  2. 次の機能を割り当てようとしています。ただを使用して特定のユーザーになりますsudo

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

    メモ:userZが自分のパスワードを使用してsuコマンドを実行するように上記のタスクを実行することも可能です。上記はuserZをuserXに変更するだけです。

答え2

そのユーザーのパスワードを入力するように求められます。

これがうまくいく方法です。ルートでない場合は、パスワードなしで他のユーザーの身元を推測することはできません。

CentOSにsudoがインストールされている場合は追加できます。

youruserid ALL = (username) NOPASSWD: ALL

その時のようにvisudosudo -u username bashsu - username

(編集:確認せずにsudo仕様を入力しようとしました)

関連情報