Я собрал сценарий для присвоения имен на основе MAC, который должен делать то, что вы хотите: https://github.com/eborisch/ethname
Во-первых, добавление пользователя с помощью useradd
и редактирование users.extraUsers
излишне. Я никогда не заморачивался с useradd
в NixOS.
Что касается конфигурации sudo, вы устанавливаете security.sudo.configFile
строку, содержащую то, что вы обычно вводите в sudoers:
security.sudo.configFile = ''
Sudoers config goes here
''
Я предполагаю, что в вашем случае проблема связана с тем, что вы создали одного и того же пользователя как императивно (с useradd
), так и декларативно (вconfiguration.nix
).
Прежде всего убедитесь, что вы запускаете nixos-rebuild switch
после каждого изменения на /etc/nixos/configuration.nix
. Во-вторых, если этого недостаточно, возможно, параметры, которые вы передали декларативно, нельзя использовать, учитывая, что пользователь уже был создан. В этом случае сначала удалите пользователя, а затем запустите nixos-rebuild switch
, чтобы решить проблему.
Добавления пользователя в группу wheel
должно быть достаточно для получения привилегий sudo.
users.extraUsers.matthew = {
isNormalUser = true;
home = "/home/matthew";
extraGroups = [ "wheel" ];
}
После того, как вы добавили пользователя в новую группу linux, вам необходимо выйти и войти в систему этих пользователей , чтобы эти изменения вступили в силу (новая группа ).
Отредактируйте :, как следует из комментария к вопросу выше, это должно быть extraGroups
, а не extragroups
.