给公司搭建大数据环境之用户管理

        今天给公司的几台服务器配置了用户,并给予相应的权限。

        在说之前,还是要说下用户管理等基础知识。

        用户分为系统管理员用户和普通用户,一般0—500的uid给系统预留,其中0-99给系统,其他给别的服务。

        当我们创建一个用户之后,该用户就是一个普通用户。但有时呢,我们还想安装一些软件啊,或者访问根目录下的一些文件啊,这时需要管理员权限。这时我们会用sudo commond。此时会蹦出这样的错误:

is not in the sudoers file.  This incident will be reported.

跳出这个原因是因为在/etc/sudoers中没有相应的权限。你这时想用sudo必然出错。

也就是说,这个/etc/sudoers是非常关键的。一般我们通过visudo去编辑它。

我们主要是要分管理员和普通用户,只有管理员才能执行相应的操作。我设置了一个管理员组:administrator,凡是属于这个用户组下的用户,都会有管理员的权限,否则则没有。

那这个组的权限该怎么配置呢?其实就是编辑/etc/sudoers即可,visudo打开:

#属于这个组的成员可以执行任意命令
%administrator ALL=(ALL:ALL) ALL

或者配置:

#属于这个组的成员可以获得root权限。
%administrator ALL=(ALL) ALL

 好了,我现在已经创建好一个管理员组了,我们后续的创建用户不用单个往sudoer中添加了。

由于我们Hadoop集群是3—5台服务器,且我们需要创建3个管理员权限用户,那我就写了一个脚本:

#!/bin/bash

function deluser() {

    for user in $*
        do
            u=$(grep $user /etc/passwd|xargs echo)
            if [ -n "$u" ];then
              userdel -r $user
            fi
        done
}


function add_admin_user() {

    for user in $*
        do
            echo -e "start creating account:$user\n";

            useradd -m $user
            gpasswd -a $user administrator
  
            echo "whether or not to set password for $user.if set you should input password diractly ,or else input n ?"
            read -p 'input n or password:' res

             if [[ "$res" != "n" ]];then
                 echo "$user:$res"|chpasswd                 
             else 
                 echo "$user:admin$user"|chpasswd
             fi
             echo -e " user:$user is created successfully!\n\n\n"
         done

    }


deluser  $* 

add_admin_user $*

 

密码可以根据程序提示手动输入,也可以使用默认设置。

 

目前可能还要分成几个用户组,后续再说吧。

 

--------EOF---------
微信分享/微信扫码阅读