包装脚本只是您调用的脚本,然后调用另一个脚本或程序。
这在 unix 中经常发生。
用户的外壳基本上是一个程序。因此,您也可以将其包装在脚本中。
如果你有一个用户'tom'。他会像这样出现在 /etc/passwd 中:
tom:x:91:91:Tom Mot:/home/tom:/bin/bash
但是tom其实是tom部门共享的账号。
因此,您想在 env 中设置一些变量,以识别 tom 部门的哪个成员正在登录。
为此,您可以将 /bin/bash 属性更改为 /bin/tom-wrapper
然后在该路径中添加一个脚本:
/bin/tom 包装器:
#!/bin/bash
KEY=$(figure out the ssh key the user used to log in) if [ $KEY == $tom_user_one ]; then
USER="Tom User One"
/bin/bash fi
if [ $KEY == $tom_user_two ]; then
USER="Tom User Two"
/bin/bash fi
echo "You aren't the Tom I am looking for." exit 0
这是一个超级简单的脚本,它并不能完全满足您的需求,但可以演示理论。
记得 chmod +x 脚本。
然后当用户登录时,他们没有直接点击 bash,而是点击了你的脚本......这会找出这是哪个 tom 用户......设置和名为 user 的 env 变量标识用户,然后给用户一个 shell。
超级简化,但这是基本思想。