给公司搭建大数据环境之用户管理
今天给公司的几台服务器配置了用户,并给予相应的权限。
在说之前,还是要说下用户管理等基础知识。
用户分为系统管理员用户和普通用户,一般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---------
微信分享/微信扫码阅读
微信分享/微信扫码阅读