我們目前有幾個用戶在通過SSH登錄到服務器時使用admin用戶。他們都有自己的用戶,但不幸的是,他們仍然偶爾使用管理員。我們可以將其鎖定,並採取措施確保用戶永遠不會被使用,但我期待着看看是否有辦法強制每個登錄名輸入他們使用該用戶的原因,然後才能登錄並在他們使用管理員用戶時訪問服務器。SSH用戶響應提示
通過這種方式,我們可以輕鬆地將訪問日誌文件與員工姓名以及他們使用該用戶的原因進行比較。
有什麼想法?
我們目前有幾個用戶在通過SSH登錄到服務器時使用admin用戶。他們都有自己的用戶,但不幸的是,他們仍然偶爾使用管理員。我們可以將其鎖定,並採取措施確保用戶永遠不會被使用,但我期待着看看是否有辦法強制每個登錄名輸入他們使用該用戶的原因,然後才能登錄並在他們使用管理員用戶時訪問服務器。SSH用戶響應提示
通過這種方式,我們可以輕鬆地將訪問日誌文件與員工姓名以及他們使用該用戶的原因進行比較。
有什麼想法?
這裏有一個想法
#!/bin/bash
# if the user tries Ctrl+C to avoid this check
trap INT no_shell_for_you
no_shell_for_you() { exec /bin/false; }
read -p "Your username please: " username
if getent password "$username" >/dev/null 2>&1; then
echo "Welcome, $username"
# log $username somewhere
exec /bin/bash -l
else
no_shell_for_you
fi
/etc/shells
sudo chsh -s /full/path/to/admin_user/bin/get_real_user.sh admin_user
這是未經測試。測試徹底第3步之前。
謝謝!這幫助我找到了正確的方向來找到答案。 –
這是對虛假陳述開放。任何用戶都可以假裝是另一個。 – alvits
這是我會做的。
註冊每個人的ssh公鑰到管理員用戶的authorized_keys
。在每個條目中,將環境EMPLOYEE
設置爲employeename
。這將要求PermitUserEnviroment
在/etc/ssh/sshd_config
中設置爲yes
。示例條目應如下所示。
environment="EMPLOYEE=employee1" ssh-rsa AAAAB3NzaC1y.....EU88ovYKg4GfclWGCFYTuw8==
現在,我們有一個環境變量命名EMPLOYEE
,我們可以寫一個簡單的腳本來問的原因。
創建文件/etc/profile.d/reason.sh
。該文件不需要可執行,因爲它將來源。
if [[ $(whoami) = "admin" ]]; then
read -p "Please specify the reason for logging in as $USER user: " reason
if [ -z "$reason" ]; then
logout
fi
fi
現在你有$EMPLOYEE
和$reason
登錄。
我投票結束這個問題,因爲它屬於[Unix&Linux](http://unix.stackexchange.com/)。 –
使管理員密碼隨機。您將有2個選項。選項1:使用'sudo'。這將以管理員身份登錄用戶'sudo'。選項2:爲admin用戶使用基於ssh密鑰的身份驗證。每個人都需要向管理員用戶註冊他們的ssh密鑰。 – alvits