• Linux创建系统用户


    #!/bin/bash
    
    users_home_front_dir="/data/users/"
    ssh_user=$1
    user_group=$2
    server_user_path=$users_home_front_dir/$user_group
    
    if [ $# -ne 2 ];then
    	echo "usage: ./$0 <ssh-user> <user_group>"
            echo "Example: ./$0  test_user  wwwad"
            exit 1
    fi
    
    if [ ! -d "$users_home_front_dir" ] ; then
    	echo "users_home_front_dir directory="$users_home_front_dir not exists, exit now!
    	exit 1
    fi
    
    function doing() {
     useradd "$user_group" -d "$server_user_path"
     if [ ! -f "$ssh_user"*.pub ] ; then
     ssh-keygen -t rsa -b 2048 -C "$ssh_user" -f "$ssh_user".pem
     fi
     mkdir -p "$server_user_path"/.ssh
     cat ./"$ssh_user".pem.pub >> "$server_user_path"/.ssh/authorized_keys
     chown -R "$user_group"."$user_group" "$server_user_path"/.ssh/
     chmod 600 "$server_user_path"/.ssh/authorized_keys
    }
    
    function checking() {
     check_server_user=`cat /etc/passwd|grep $user_group|grep $server_user_path`
     echo "check_server_user="$check_server_user
     echo "server-user="$user_group
     if [[ "$check_server_user" =~ "$user_group" ]] ; then
     echo "server-user:$user_group" created successfully or already created !
     else 
     echo "server-user:$user_group" created failed !
     exit 1
     fi
    
     check_ssh_user=`cat "$server_user_path"/.ssh/authorized_keys |grep $ssh_user`
     echo "check_ssh_user="$check_ssh_user
     echo "ssh-user="$ssh_user
     if [[ "$check_ssh_user" =~ "$ssh_user" ]] ; then
     echo "ssh-user:$ssh_user created successfully !"
     else
     echo "ssh-user:$ssh_user created failed !"
     exit 1
     fi
    
    }
    
    doing
    checking
    
    sudo chown -R sa.sa  "$ssh_user".pem*
    
    
    名词解释
    ssh_user  	需要创建的系统用户
    user_group  用户所属组,多个系统用户属于一个组。比如sa组具有sudo权限。wwwad组sudo的话是需要输入密码的。	
    			具体的权限控制的sudoer文件里
    这里默认的公钥私钥都是在/home/$ssh_user/.ssh 下面。这里为了安全,我们创建系统用户的时候重新制定其家目录
    server_user_path=$users_home_front_dir/$user_group
    
    加入现在有test1,test2用户都属于一个wwwad的组的话,这里我们可以再客户端设置登录的时候。
    我们以test1,test2,wwwad 的任何一个用户登录都可以
    到时候我们把用户的pem文件发送给开发即可
    
  • 相关阅读:
    Remove Nth Node From End of List从尾部开始删除第N个节点
    给乱序的链表排序 · Sort List, 链表重排reorder list LoLn...
    Partition List双色问题链表版
    翻转链表reverse linked list:全部,m~n
    删除链表中的重复元素:不留&留一个&删除一个
    基于快速排序的数组划分:2组 3组 K组(sort color)大小写排序 &#183; Partition Array
    字体 | font (Fonts) – CSS 中文开发手册
    HTML tfoot charoff 属性
    Bootstrap 网格系统
    struct (String) – Python 中文开发手册
  • 原文地址:https://www.cnblogs.com/smail-bao/p/8006677.html
Copyright © 2020-2023  润新知