NixOS를 설치하고 시작하려고 시도했으며 sudoers 파일에 내 사용자를 추가해 보았습니다.
모든 명령을 루트로 실행하지 않도록 사용자를 만들었습니다.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
중복됩니다. 저는 useradd
NixOS를 사용하면서 이런 문제를 겪은 적이 없습니다.
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
하면 됩니다.