• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 在 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 系统下,useraddadduser是没有区别的,默认两者都会在 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,就会被拒绝而自动退出。