git-shell是一个沙盒环境,在git-shell下,只允许执行沙盒内包含的命令。 第二种方法不仅在git服务器上使用,很多Linux发行版也会用到。...\"",实际上还是使用了git-shell。...git-shell 沙盒绕过漏洞(CVE-2017-8386) git-shell是一个可以限制用户执行命令的shell,如果我们在git用户家目录下创建一个新目录,叫git-shell-commands...id还是在git-shell下执行,git-shell中没有id命令,所以依旧执行不成功。 但读取文件是一定可以的,因为读取文件不是通过命令读取的,所以不受git-shell沙盒的影响。...,执行git-shell。
install git 确认安装成功 git --version 创建git用户 为刚搭建好的Git创建一个账号 useradd -m git 然后为这个账号设置密码 passwd git 配置git用户使用git-shell...首先确认一下系统shell里是不是已经有了git-shell cat /etc/shells 如果没有,我们可以查询一下git-shell的安装路径: which git-shell 然后我们把git-shell...加进到系统shell里面 which git-shell >> /etc/shells 最后,使用 chsh -s 命令修改git用户使用git-shell sudo chsh git -s $(which...git-shell) 初始化Git仓库 创建/repos目录,用于存放 Git 仓库 mkdir /repos 为/repos配置用户权限 sudo chown -R git:git /repos sudo
若要使用 git-shell,需要用它替换掉 bash 或 csh,使其成为系统用户的登录 shell。...为进行上述操作,首先你必须确保 git-shell 已存在于 /etc/shells 文件中: $ cat /etc/shells # see if `git-shell` is already in...If not... $ which git-shell # make sure git-shell is installed on your system. $ sudo vim /etc/shells...chsh git # and enter the path to git-shell, usually: /usr/bin/git-shell 这样,用户 git 就只能利用 SSH 连接对 Git...正如输出信息所提示的,你也可以在 git 用户的家目录下建立一个目录,来对 git-shell 命令进行一定程度的自定义。
给 git 仓库目录设置用户和用户组并设置权限 chown -R gituser:gituser /data/repositories chmod 755 /data/repositories 查找 git-shell...所在目录(如果按照刚才的步骤执行, 这个位置应该是 /usr/local/git/bin/git-shell, 否则请通过 which git-shell 命令查看位置) , 编辑 /etc/passwd... 文件,将最后一行关于 gituser 的登录 shell 配置改为 git-shell 的目录(安全目的, 限制 git 账号的 ssh 连接只能是登录 git-shell)如下: vim /etc/...passwd gituser:x:500:500::/home/gituser:/usr/local/git/bin/git-shell 使用搭建好的 Git 服务 克隆 test repo 到本地 cd
如果将 git-shell 设置为用户 git 的登录 shell(login shell), 那么该用户便不能获得此服务器的普通 shell 访问权限。...若要使用 git-shell,需要用它替换掉 bash 或 csh,使其成为该用户的登录 shell。...为进行上述操作,首先你必须确保 git-shell 的完整路径名已存在于 /etc/shells 文件中。.../bin/git-shell [root@python ~]# echo /bin/git-shell >> /etc/shells [root@python ~]# cat /etc/shells...git -s $(which git-shell) Changing shell for git.
仓库目录设置用户和用户组并设置权限 chown -R gituser:gituser /data/repositories chmod 755 /data/repositories 修改 gituser 的登录 shell 查找 git-shell...所在目录(如果按照刚才的步骤执行, 这个位置应该是 /usr/local/git/bin/git-shell, 否则请通过 which git-shell 命令查看位置) , 编辑 /etc/passwd...文件,将最后一行关于 gituser 的登录 shell 配置改为 git-shell 的目录 gituser:x:500:500::/home/gituser:/usr/local/git/bin/...git-shell 修改 gituser 的登录 shell 5、使用搭建好的 Git 服务 git clone gituser@10.211.55.3:/data/repositories/test.git
给 git 仓库目录设置用户和用户组并设置权限 chown -R gituser:gituser /data/repositories chmod 755 /data/repositories 查找 git-shell...所在目录], 编辑 /etc/passwd 文件,将最后一行关于 gituser 的登录 shell 配置改为 git-shell 的目录如下 示例代码:/etc/passwd gituser:x:500...:500::/home/gituser:/usr/local/git/bin/git-shell 如果按照刚才的步骤执行, 这个位置应该是 /usr/local/git/bin/git-shell, 否则请通过...which git-shell 命令查看位置 安全目的, 限制 git 账号的 ssh 连接只能是登录 git-shell 使用搭建好的 Git 服务 克隆 test repo 到本地 cd ~ &&
你可以限制用户只能通过git-shell来进行操作。如果你这样设置git用户的登陆设置,那么git用户就无法登陆到机器上了。为了做到这种效果,使用git-shell替换bash和其他登陆shell。...所以如果你的/etc/shells中没有git-shell,那么你需要先添加上去: ? 现在你可以为一个用户修改他的shell了 ?...就像输出中显示的,你也可以在git用户目录下创建一个文件夹来定制git-shell的一些行为。例如,你可以限制git服务器接受的命令范围,或者更改尝试登陆的错误提示。...对于定制git-shell的行为,你可以通过命令git help shell 查看相关的帮助信息。
作为一个额外的防范措施,你可以用 Git 自带的 git-shell 简单工具来把 git 用户的活动限制在仅与 Git 相关。...为了实现这一点,需要指明用户的登入shell 是 git-shell ,而不是 bash 或者 csh。...$ sudo vim /etc/passwd 在文件末尾,你应该能找到类似这样的行: git:x:1000:1000::/home/git:/bin/sh 把 bin/sh 改为 /usr/bin/git-shell...(或者用 which git-shell 查看它的位置)。...该行修改后的样子如下: git:x:1000:1000::/home/git:/usr/bin/git-shell 现在 git 用户只能用 SSH 连接来推送和获取 Git 仓库,而不能直接使用主机
back with_items: - git - git-cvsserver - gitk - git-receive-pack - git-shell...}} with_items: - git - git-cvsserver - gitk - git-receive-pack - git-shell
我们还将安装和配置git-shell以额外保护您的生产服务器免受未经授权的访问。最后,我们将配置您的本地开发机器以使用并将更改推送到远程存储库。...在将站点推送到存储库之前,我们还将通过配置git-shell来保护我们的生产服务器,git-shell是一个交互式shell,可以在用户通过SSH连接时为用户提供各种Git命令。...我们将配置git-shell为非交互式shell,因此您无法使用git用户启动交互式Bash会话。 请确保您以git用户身份登录。...我们需要确保文件是可执行的,因此可以使用git-shell执行它: $ chmod +x ~/git-shell-commands/no-interactive-login 返回到您的使用sudo命令的非...如果使用上一个su命令,则可以使用以下命令关闭会话: $ exit 最后,我们需要将git用户的shell更改为git-shell: $ sudo usermod -s $(which git-shell
对该用户设置一下密码: sudo passwd git 禁用登陆git 由于用户git主要作为仓库使用,一般人员不可以也不应该登陆和进入git,所以使用工具git-shell禁止用户git登陆shell...先在/etc/shells中加入/usr/bin/git-shell作为可用shell; sudo vim /etc/shells 然后改变用户git的默认shell。...sudo chsh git -s git-shell 创建仓库 由于用户git已经禁止登陆了,我们直接使用root权限在/home/git目录上创建所有远程仓库的目录srv/ sudo mkdir /home
root ALL=(ALL:ALL) ALL git ALL=(ALL:ALL) ALL #添加此行内容 4.关闭git用户shell权限 将最后一行的/bin/bash修改为usr/bin/git-shell...# vim /etc/passwd #git:x:1001:1001:,,,:/home/git:/bin/bash git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
ssh git@server_ip // 测试能否登录为了安全起见禁用 git 用户的 shell 登录权限,从而只能用 git clone,git pushcat /etc/shells // 查看 git-shell...是否在登录方式里面which git-shell // 查看是否安装vi /etc/shells添加上2步显示出来的路劲,通常在 /usr/bin/git-shell修改/etc/passwd中的权限...// 将原来的git:x:1000:1000::/home/git:/bin/bash// 修改为git:x:1000:1000:,,,:/home/git:/usr/bin/git-shell搭建 nginx
2、禁止新创建的用户ssh登陆linux服务器 which git-shell //查看git-shell所在路径 (我的是:/usr/bin/git-shell) vim /etc/passwd...//将用户名称:x:1000:1000::/home/用户名称:/bin/bash 将/bin/bash替换为git-shell所在路径 ?
git01:x:1001:1001:,,,:/home/git01:/bin/bash 1最后一个冒号后改为: git01:x:1001:1001:,,,:/home/git01:/usr/bin/git-shell...这样,git01用户可以正常通过ssh使用git,但无法登录shell,因为我们为git01用户指定的git-shell每次一登录就自动退出。
从而只能用 git clone,git push 等登录 在服务器端输入以下命令: // 如果不是root用户请切换至root用户 su root // 查看 git-shell 是否在登录方式里面 cat.../etc/shells // 查看是否安装 which git-shell vi /etc/shells // 添加上2步显示出来的路劲,通常在 /usr/bin/git-shell ?...vi /etc/passwd// 将原来的 git:x:1000:1000::/home/git:/bin/bash // 修改为 git:x:1000:1000::/home/git:/bin/git-shell
ssh-copy-id -i git@114.215.66.43 修改git用户的登录权限 因为git用户是专门用来上传代码的,所以禁用git用户的登录权限,将git用户的登录shell改为/usr/bin/git-shell...sudo vi /etc/passwd # change shell of git to /usr/bin/git-shell 创建裸仓库 因为git仓库不需要再服务器上更新,而是通过远程push
passwd 2、修改刚才新建用户记录 将 git:x:1001:1002::/home/git:/bin/bash 修改为: git:x:1001:1002::/home/git:/usr/bin/git-shell...即禁用shell登录 请检查/usr/bin/git-shell是否存在(即是否安装成功) 七、验证是否成功 git clone git@xyser.com:dingdayu/sample.git
git:x:1001:1001:,,,:/home/git:/bin/bash #改为 git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell #或者采用命令进行指定...$usermod -s /usr/bin/git-shell git $grep "git" /etc/passwd git:x:1003:1003::/home/git:/usr/bin/git-shell...这样git用户可以正常通过ssh使用git但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。
领取专属 10元无门槛券
手把手带您无忧上云