Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过SSH以root身份推送时更正Git用户_Ssh_Gitlab_Root - Fatal编程技术网

通过SSH以root身份推送时更正Git用户

通过SSH以root身份推送时更正Git用户,ssh,gitlab,root,Ssh,Gitlab,Root,我们有多个用户通过SSH使用服务器作为根用户。当前的“问题”是在将更改推送到GitLab时看不到正确的用户 除了在提交时使用自己用户的“sudo”之外,还有解决方案吗 我对git命令使用包装器脚本: alias git='gitshellenv=$- ~/gits/gitw.sh' 该脚本将检查该命令是否在非活动会话中调用: if [[ ${gitshellenv} != *i* ]]; then commmand git "$@" exit $? fi

我们有多个用户通过SSH使用服务器作为根用户。当前的“问题”是在将更改推送到GitLab时看不到正确的用户


除了在提交时使用自己用户的“sudo”之外,还有解决方案吗

我对git命令使用包装器脚本:

alias git='gitshellenv=$- ~/gits/gitw.sh'
该脚本将检查该命令是否在非活动会话中调用:

if [[ ${gitshellenv} != *i* ]]; then
    commmand git  "$@"
    exit $?
fi
这意味着在脚本中执行的任何
git
命令仍将像往常一样调用
git
,但在交互式shell中手动执行的任何命令都将继续执行

通过“继续”,我的意思是包装器将检查是否设置了
GIT\u AUTHOR\u NAME

如果没有,它将调用一个小程序,让用户输入他们的姓名/电子邮件,并在调用
GIT
命令之前相应地设置
GIT\u AUTHOR\u name/email

它还将在与当前用户会话相关的
/tmp/file
中记录该名称/电子邮件,以便在当前会话期间不再询问。

它还记录了
SSH\u客户端的IP地址:如果用户总是来自该IP,那么在他们的下一个会话中,可以重用他们的名称。

我对git命令使用包装器脚本:

alias git='gitshellenv=$- ~/gits/gitw.sh'
该脚本将检查该命令是否在非活动会话中调用:

if [[ ${gitshellenv} != *i* ]]; then
    commmand git  "$@"
    exit $?
fi
这意味着在脚本中执行的任何
git
命令仍将像往常一样调用
git
,但在交互式shell中手动执行的任何命令都将继续执行

通过“继续”,我的意思是包装器将检查是否设置了
GIT\u AUTHOR\u NAME

如果没有,它将调用一个小程序,让用户输入他们的姓名/电子邮件,并在调用
GIT
命令之前相应地设置
GIT\u AUTHOR\u name/email

它还将在与当前用户会话相关的
/tmp/file
中记录该名称/电子邮件,以便在当前会话期间不再询问。

它还记录了
SSH\u客户端
IP地址:如果用户总是来自该IP,那么在他们的下一次会话中,他们的名字可以重复使用。

为什么有人要将
root
与Git一起使用?Hi@chepner。这就是我目前工作环境的设置方式。我意识到,以这种方式向多个用户提交不是理想的情况。谢谢你的评论。作为root运行任何东西都应该是有原因的。为什么有人将
root
与Git一起使用?嗨@chepner。这就是我目前工作环境的设置方式。我意识到,以这种方式向多个用户提交不是理想的情况。谢谢你的评论。作为root运行任何东西都应该是有原因的。看起来太棒了!你有没有可能分享包装器脚本?@Jsack7我会让它开源,但现在,它是为我的公司开发的一个围棋程序。我需要清理特定于上述公司的代码。我在学习和试验Bash时找到了一个解决方法。所以,如果你很忙,不要腾出时间让它开源,除非你已经计划好了。感谢您的投入和帮助;非常感谢。@Jsack7没问题。我将于本周发布第一个版本。这可能会对其他人有所帮助。@Jsack7包装器现在是公开的:看起来太棒了!你有没有可能分享包装器脚本?@Jsack7我会让它开源,但现在,它是为我的公司开发的一个围棋程序。我需要清理特定于上述公司的代码。我在学习和试验Bash时找到了一个解决方法。所以,如果你很忙,不要腾出时间让它开源,除非你已经计划好了。感谢您的投入和帮助;非常感谢。@Jsack7没问题。我将于本周发布第一个版本。这可能会帮助其他人。@Jsack7包装器现在是公共的: