我们目前有几个用户在通过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