#!/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文件发送给开发即可

Linux创建系统用户的更多相关文章

  1. linux useradd(adduser)命令参数及用法详解(linux创建新用户命令)

    linux useradd(adduser)命令参数及用法详解(linux创建新用户命令) useradd可用来建立用户帐号.帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号 ...

  2. linux创建ftp用户以及指定目录问题

    linux创建ftp用户以及指定目录问题 创建用户命令:如我的目录是根目录下的 MyWeb 用户名:xdh2571 #useradd -G ftp -d /MyWeb -M xdh2571#passw ...

  3. Linux创建高级用户并删除

    Linux创建高级用户并删除 常见window系统可以创建许多用户,但是linux也可以创建许多用户. 方法比window方便简单. (1)添加一个普通用户 :nangong(名字自己取) usera ...

  4. Linux创建普通用户以及权限的分配

    LINUX系统能创建一个普通用户,给开发人员让他们登录吗? 答案:可以. 怎么做? 答案:一般给开发 创建一个目录账户 他要做什么操作 就给什么权限 useradd命令 useradd可用来建立用户帐 ...

  5. Linux创建新用户以及useradd adduser的区别

    从阿里云那弄了个机子玩玩,系统用的是Ubuntu12.04.刚等上去时候是用root登录的,首先想到的就是创建一个用户. 使用 useradd myname 发现/home目录下没有myname的家目 ...

  6. Linux创建其他用户并为之授权

    转载自:https://www.linuxidc.com/Linux/2016-11/137549.htm:加了一些补充说明 前言 笔记本安装了一个CentOS,想要让别人也可以登录访问,用自己的账号 ...

  7. linux创建新用户以及修改密码

    1. 使用root账户创建新用户 useradd webuser 2. 修改新增的用户的密码 passwd webuser 这时候会提示你输入新的密码: 注意:不要用su webuser进入该账户修改 ...

  8. linux创建新用户,可以使用sudo无密码操作

    useradd -d /home/aiuap -m aiuappasswd aiuapXXXXXXXgroupadd aiuapchown -R aiuap:aiuap /home/aiuap chm ...

  9. linux创建新用户

    服务器只用root账号会有风险,最好是每个人使用一个账号. 1. 添加用户名 adduser linuxidc 2. 给这个用户名设置新密码 passwd linuxidc 3.授权 个人用户的权限只 ...

随机推荐

  1. 微信小程序文本如何换行

    替换<br/>标签 为 \n 使用 css 属性 :white-space:pre-wrap   举个例子: <view style="white-space:pre-wr ...

  2. SpringBoot集成jdbcTemplate/JPA

    1.pom.xml <!-- jdbcTemplate 依赖 --> <dependency> <groupId>org.springframework.boot& ...

  3. Spring学习笔记二:注入方式

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6774608.html  我们说,IOC的实现方式是依赖注入,也就是把被依赖对象赋值到依赖对象的成员属性.怎么做 ...

  4. climbing-stairs-动态规划,爬楼梯的路径数

    You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb ...

  5. Android插件化开发之解决OpenAtlas组件在宿主的注冊问题

    OpenAtlas有一个问题,就是四大组件必须在Manifest文件里进行注冊,那么就必定带来一个问题,插件中的组件都要反复在宿主中注冊.像Service,ContentProvider等组件眼下没有 ...

  6. Java千百问_05面向对象(005)_接口和抽象类有什么差别

    点击进入_很多其它_Java千百问 1.接口和抽象类有什么差别 在Java语言中.抽象类abstract class和接口interface是抽象定义的两种机制. 正是因为这两种机制的存在,才赋予了J ...

  7. python之获取微信access_token

    # -*- coding: cp936 -*- #python 27 #xiaodeng #获取微信access_token #办法一:将该url直接填写到浏览器地址中可以获得access_token ...

  8. VS2010 lib和dll导出路径设置

    创建库文件工程时往往需要设置.lib文件和.dll文件的路径. 假设一个solution对应了多个工程,然而他们共用一些库,就可以在solution文件夹下分别添加两个文件夹lib和bin(其实放在一 ...

  9. 【PHP】Ajax跨域解决方案 、jsonp、cors

    参考文章: 1.https://blog.csdn.net/u014727260/article/details/72793459 (后台java,实际上差不多) 2. 如何解决ajax跨域传输 数据 ...

  10. java读取txt字符串挨个写入int数组

    int []num=new int[1001]; FileReader fr = new FileReader("1.txt"); BufferedReader br = new ...