Ssh
我可以告訴 useradd 執行腳本嗎?也許在 /etc/default/useradd 中?
很多人已經回答了“如何在腳本中正確執行 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 執行。