Ssh

我可以告訴 useradd 執行腳本嗎?也許在 /etc/default/useradd 中?

  • September 26, 2020

很多人已經回答了“如何在腳本中正確執行 useradd?”這個問題。

我的問題是:“是否可以告訴 useradd 在呼叫它時執行一個腳本?”

我正在編寫一個腳本來在創建使用者時在 HPC 集群中推送身份文件(ssh-keys),但我認為“最乾淨”的方法是編寫一個useradd 執行的腳本。

腳本應該做這樣的事情:

#!/bin/bash
# sshpush.sh
#
# a script to SSH without passwords around the cluster nodes

mkdir $HOME/.ssh
cd $HOME/.ssh

ssh-keygen -q

cat id_rsa.pub >> authorized_keys

cat > config <<EOF
StrictHostKeyChecking no
FallBackToRsh no
BatchMode yes
ConnectionAttempts 5
UsePrivilegedPort no
Compression no
Cipher blowfish
CheckHostIP no
EOF

cpush /etc/passwd
cpush /etc/shadow
cpush /etc/groups

請注意,/home 目錄作為 NFS 安裝在所有節點上。

理想情況下,腳本應該在使用者創建過程結束時執行,之後$HOME創建並且使用者作為有效的組和 id。

看起來這不是一個選項(Fedora 19,shadow-utils-4.1.5.1-5.fc19)。不過,這聽起來像是一個非常有用的擴展。請將此報告為對您的發行版的錯誤跟踪器(或應該去哪裡)進行增強的請求。

我不知道 useradd 是否可以呼叫另一個腳本並使用 sudo 權限執行它,但是您可以在 /etc/profile.d/ 下添加一個腳本,以便僅在新創建的使用者第一次登錄時執行。同樣,這是一個解決方法,我不確定這個腳本是否可以作為 sudo 執行。

引用自:https://unix.stackexchange.com/questions/113937