216 字
1 分钟
0
救援 NixOS 的 sudo (/etc/pam.d/sudo 损坏)
1. sudo 提示密码错误
安装 NixOS 时,在 nixos-enter
后,sudo 有问题。无法输入密码,一但 sudo 就提示密码错误。
解决:编辑 /etc/pam.d/sudo
,改成了以下允许所有用户使用 sudo:
#%PAM-1.0
auth sufficient pam_rootok.so
#auth required pam_unix.so
auth required pam_permit.so
#account required pam_unix.so
account required pam_permit.so
account required pam_warn.so
#session required pam_unix.so
session required pam_permit.so
password required pam_permit.so
2. Nix 无法更改 /etc/pam.d
安装好以后,我靠,这个文件被链接到了 /nix/store
里。哭,改不了了!
解决:configuration.nix
添加以下内容:
security.pam.services.sudo.rootOK = true;
让 NixOS 重构 /etc/pam.d/sudo。
3. 急救技巧
sudo 用不了的时候
nix-shell -p sudo
vim /etc/sudoers
root ALL=(ALL:ALL) SETENV: ALL
%wheel ALL=(ALL:ALL) NOPASSWD:SETENV: ALL
vim /etc/pam.d/sudo
# Account management.
account required pam_unix.so # unix (order 10900)
# Authentication management.
auth sufficient pam_rootok.so # rootok (order 10200)
auth sufficient pam_unix.so likeauth try_first_pass # unix (order 11500)
auth required pam_deny.so # deny (order 12300)
# Password management.
password sufficient pam_unix.so nullok yescrypt # unix (order 10200)
# Session management.
session required pam_env.so conffile=/etc/pam/environment readenv=0 # env (order 10100)
session required pam_unix.so # unix (order 10200)
救援 NixOS 的 sudo (/etc/pam.d/sudo 损坏)
https://blog.lzc256.com/posts/recovering-sudo-in-nixos/