在 centOS 上创建 Git 用户 git 禁止 shell 登录
在远程服务器端中,用户种类:
- root:系统超级用户,属于 root 组。禁止 ssh 登录远程服务器 shell。
- admin:自定义管理员用户,属于 wheel 组。允许 ssh 登录远程服务器 shell。
- developer:自定义普通用户,属于 develop 组。允许 ssh 登录远程服务器 shell。对项目程序代码文件,是所有者。scp、sftp 下载上传文件。
- git:自定义普通用户,属于 develop 组。禁止 ssh 登录远程服务器 shell。对共享的 Git 仓库是所有者。Git 上传下载 Git 远程仓库。
在本机客户端中,用户种类:
- root:系统超级用户,属于 root 组。进入本机 ceonOS 时,默认使用的用户。为了个人方面,经常使用。
在远程服务器端,创建 git 用户
useradd git -g develop
上面的命令,会创建/home/git目录,此目录的子目录下,用来放置公钥。
在 centOS 系统下,useradd
与adduser
是没有区别的,默认两者都会在 home 下自动创建目录,默认都没有密码。以后需要的时候,可以使用passwd
命令来设置密码。adduser
是一个 perl 脚本,在使用的时候会出现类似人机交互的界面,系统将会提示输入创建用户所需的各种信息,只要跟着系统的提示就能完成用户的创建,这个命令比起useradd
来说比较简单。
# 设置密码passwd git # 显示对话框如下: New password: 输入新密码 Retype new password: 再次重复输入上面的新密码 passwd: all authentication tokens updated successfully.
下面是一些相关的常用命令:
# 删除 git 用户组:groupdel git # 删除 git 用户以及 git 用户组:userdel git
# 用户组列表文件:cat /etc/group # 查看用户列表文件:cat /etc/passwd # 查看系统中有哪些用户:cat /etc/passwd | cut -d : -f 1 # 查看可以登录系统的用户:cat /etc/passwd | grep -v /sbin/nologin | cut -d : -f 1 # 查看用户所在的组groups git
在远程服务器端,禁止 git 用户 shell 登录
vim /etc/passwd # 把 git:x:1001:1001::/home/git:/bin/sh 改为: git:x:1001:1001::/home/git:/usr/bin/git-shell
如此设置,git 用户可以正常通过 SSH 使用 git,但无法登录 Linux shell,因为我们为 git 用户指定的git-shell,那么使用 git 用户,登录 shell,就会被拒绝而自动退出。