gpt4 book ai didi

linux - Bash - 检查用户是否通过 ssh 登录

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:58:34 24 4
gpt4 key购买 nike

我正在编写一个 bash 脚本,该脚本与给定目标用户 T 的 UID 和 GID 的递归修改有关。它必须在远程机器上以 root 身份运行。

为了正常工作,脚本要求这样的用户 T 不是建立 ssh 连接的用户。否则,作为 usermod 的命令将无法工作,因为由于 T (ssh) 存在事件进程。

换句话说,要在 T 上操作,我必须在连接为 S 后以 root 身份登录。

有什么方法可以确保登录的用户不是脚本的目标?即 S!=T?

最佳答案

如果您可以修改在权限提升之前运行的脚本部分,请记住 ssh 通常会设置 USER 环境变量。您可以将其导出为另一个名称以保留在升级的环境中。

OLD_USER=$USER su -m # the `-m` flag says to keep the current environment

(话又说回来,如果您可以修改在权限提升之前运行的脚本部分,为什么不检查 S=T 呢?)

此外,如果您使用 sudo 成为 root,该命令会为您设置 SUDO_USERSUDO_UID

关于linux - Bash - 检查用户是否通过 ssh 登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23066888/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com