NixOSでsudoersファイルにユーザーを追加するには?

NixOSでsudoersファイルにユーザーを追加するには?

NixOSをインストールして起動しようとしましたが、sudoersファイルに私のユーザーを追加してみました。

すべてのコマンドをrootとして実行しないようにユーザーを作成しました。第7章ユーザー管理NixOS マニュアル。つまり、逃げた。

# useradd -m matthew
# su - matthew -c "true"
# passwd matthew
Enter new UNIX password: ***
Retype new UNIX password: ***

私も追加しました

users.extraUsers.matthew = {
    isNormalUser = true;
    home = "/home/matthew";
    extragroups = [ "wheel" "networkmanager" ];
}

到着する/etc/nixos/configuration.nix。しかし、まだsudo実行できませんmatthew。たとえば、sudoを使用してsudoのマニュアルページを開こうとすると、エラーが発生しますmatthew is not in the sudoers file

$ sudo man sudo
[sudo] password for matthew:
matthew is not in the sudoers file. This incident will be reported.

次に、次のことを試してください。提案他のディストリビューションからsudoersファイルにユーザーを追加する方法、すなわち$ visudo。つまり、実行

$ visudo

/etc/sudoers.tmp最初の行から読んでください。

# Don't edit this file. Set the NixOS option ‘security.sudo.configFile’ instead.

NixOSオプション "security.sudo.configFile"を設定するには?

答え1

wheelグループにユーザーを追加すると、sudo権限を取得できます。

users.extraUsers.matthew = {
    isNormalUser = true;
    home = "/home/matthew";
    extraGroups = [ "wheel" ];
}

後ろに新しいLinuxグループにユーザーを追加しました。ログアウトしてログインします。、これらの変更を適用するには(新しいグループ)

編集:上記の質問の下のコメントからわかるextraGroupsようにextragroups

答え2

まず、ユーザーuseraddと編集者を追加することはusers.extraUsers重複します。私はuseraddNixOSを使用しながらこのような問題を経験したことがありません。

sudo 構成の場合、security.sudo.configFile通常 sudoers に入れる内容を含む文字列を設定するだけです。

security.sudo.configFile = ''
   Sudoers config goes here
''

答え3

私の意見では、あなたの問題は、同じユーザーを命令的に(使用してuseradd)そして宣言的に(から)configuration.nix生成するという事実に由来しています。

まず、nixos-rebuild switchすべての変更後にそれを実行する必要があります/etc/nixos/configuration.nix。第二に、これが十分でないと、ユーザーがすでに作成されているため、宣言的に渡されたオプションを使用できない可能性があります。この場合は、まずユーザーを削除してから実行してnixos-rebuild switchください。

関連情報