我在服务器A上有一个Bash脚本,它通过"logname"命令查找已登录的SSH用户,即使以"sudo"权限作为"root"运行也可以。如果我从桌面远程登录到服务器A并运行该脚本,则可以正常工作。
但是,我在SVN服务器S上设置了一个post-commit钩子,它会SSH到A并在那里运行该脚本,这会导致"logname"失败,并出现错误信息:"logname: no login name"。
如果我从桌面SSH到S,然后再从S SSH到A,它就可以正常工作,因此该错误必须是由于SVN钩子最终无法从虚拟终端运行而引起的。
那么,在这种情况下,我可以使用哪种替代"logname"的方法呢?
但是,我在SVN服务器S上设置了一个post-commit钩子,它会SSH到A并在那里运行该脚本,这会导致"logname"失败,并出现错误信息:"logname: no login name"。
如果我从桌面SSH到S,然后再从S SSH到A,它就可以正常工作,因此该错误必须是由于SVN钩子最终无法从虚拟终端运行而引起的。
那么,在这种情况下,我可以使用哪种替代"logname"的方法呢?
logname
命令会检查/var/run/utmp
中的登录名……不确定这是否有帮助。 - vergenzt