僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
新規ユーザのパスワードを、自分で設定できるようにする方法。
sshの公開鍵認証(ログイン時にパスワードを入力しない)と組み合わせる。
visudo で以下のように。
NEWUSER ALL=(ALL) NOPASSWD /usr/bin/passwd NEWUSER
自分のパスワード新規作成が、sudoによりパスワードを
要求されずにできてしまう、という仕掛け。
変更はもちろんsudo不要。自分の権限でやればよい。
この例のNEWUSER は変数で置き換えたりグループ化したり
する、はず。
$ sudo -l Matching Defaults entries for NEWUSER on this host: !visiblepw, always_set_home, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin User NEWUSER may run the following commands on this host: (ALL) NOPASSWD: /usr/bin/passwd NEWUSER (ALL) /bin/cat
このsudo -l では、パスワードを聞いてこなかった。 NOPASSWDがそのユーザーに一行でもあるとそうなるのかしら。
違うマシンから、公開鍵を登録してあるホストに、特に文句も言われず
あっさりログインできてしまった。
すべてlxc環境下の、Stretchにて確認。時刻はUTCのまま。
ホスト1(Host_1)から、リモートホスト(R1)に公開鍵登録。
ホスト2(Host_2)に、ホスト1と(名前もIDも)違うユーザ作成。
ホスト1の $USER/.ssh を、ホスト2の違うユーザの$HOMEに
コピーさせ、起動。
ホスト1でリモートホストにログイン。
そのまま、ホスト2でもリモートホストに何も怒られずに
ログイン。
違うIPから、同じフィンガープリントが記録された。
# tail -f /var/log/auth.log Aug 20 04:26:53 R1 sshd[84]: Server listening on 0.0.0.0 port 22. Aug 20 04:26:53 R1 sshd[84]: Server listening on :: port 22. Aug 20 04:27:13 R1 sshd[346]: Accepted publickey for $USER from $Host_1 port 34652 ssh2: ED25519 SHA256: $SAME_SSH_KEY_FINGERPRINT_XXXXXXXXXXXXXXXXX Aug 20 04:27:13 R1 sshd[346]: pam_unix(sshd:session): session opened for user $USER by (uid=0) Aug 20 04:27:19 R1 sshd[358]: Accepted publickey for $USER from $Host_2 port 37428 ssh2: ED25519 SHA256: $SAME_SSH_KEY_FINGERPRINT_XXXXXXXXXXXXXXXXX Aug 20 04:27:19 R1 sshd[358]: pam_unix(sshd:session): session opened for user $USER by (uid=0)
...なんての、他所でやったらいかんだろうな。
設定によってはwarningとかPermission deniedとかなる、かも。
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。