在共享帐户登录时执行命令

在共享帐户登录时执行命令

在工作中,我们的团队使用共享帐户“appadmin”来管理我们的应用程序。登录时,我们每个人都会获取一个包含他或她的首选项的“aliasrc”文件。 (别名、显示、提示……)。

到目前为止我做了这样的事情:

normaluser$ su - appadmin
password:
appadmin$ . ~normaluser/.aliasrc
[superprompt: appadmin@machine]$ 

我希望将所有这些减少到一个命令。到目前为止,我已经替换了suby的使用,rlogin以便利用.rhosts并避免每次都输入密码。 (我知道 ssh 是安全的,但 rlogin 似乎是这里的标准)。

有没有办法在我登录共享帐户后立即获取我的 aliasrc 文件?

我不坚持使用rlogin.如果你有更好的建议,我会洗耳恭听(……好吧:-/)。

希望我说得足够清楚。

技术环境:Solaris 10,Ksh。

答案1

您想要添加一些内容~appadmin/.profile或另一个登录脚本,该脚本将.aliasrc根据您在切换用户之前的身份进行加载。困难的部分是找出用户名,因为通常的方法不起作用:

$ whoami
appadmin

$ id
uid=1050(appadmin) gid=1050(appadmin)

$ id -ru
1050

我认为最简单的方法是找出您所在的 tty(使用命令tty),并检查哪个用户拥有它 - 这应该是您连接的用户:

$ stat -c %U $(tty)
normaluser

然后你可以确保 ~normaluser/.aliasrc 存在,如果存在,则获取它:

origuser=$(stat -c %U $(tty))
[ -e ~$origuser/.aliasrc ] && . ~$origuser/.aliasrc

答案2

rlogin好吧..我对or不太熟悉ksh,但这适用于bashandssh

  1. 为 appadmin创建touch .ssh/authorized_keys文件并chmod -R og-rwx .ssh
  2. 为每个用户创建公共/私有 ssh 密钥ssh-keygen
  3. 将您的 sshkeys 公共部分(例如id_rsa.pub)附加到 appadminsauthorized_keys
  4. 检查您是否可以不用密码登录(密码不同,您应该使用它)
  5. 如果登录正常,请将其添加到您的授权密钥行中的密钥之前

    command="bash --rcfile /path/to/your/.profile" AAAA… [email protected]
    
  6. 如果一切正常,您现在应该使用您的别名进行会话。此外,维护对 appadmin 的访问相对简单,只要用户使用 ssh 密钥的密码,它就会比 palin 旧的 rlogin 增加更多的保护

如何配置/生成 ssh 密钥

相关内容