ipmitool批量添加新用户名和密码
Intelligent Platform Management Interface
需求:已知BMC帐号id2为root管理员帐号,添加id5bmc帐号
工具:ipmitool version 1.8.14
系统:CentOS release 6.6 (Final)
1,通过yum安装ipmitool安装源
[root@zxl]# yum install ipmitool
已加载插件:fastestmirror, security
设置安装进程
Loading mirror speeds from cached hostfile
解决依赖关系
--> 执行事务检查
---> Package ipmitool.x86_64 0:1.8.11-20.el6 will be 升级
---> Package ipmitool.x86_64 0:1.8.11-21.el6 will be an update
--> 完成依赖关系计算 依赖关系解决 ==============================================================================================================
软件包 架构 版本 仓库 大小
==============================================================================================================
正在升级:
ipmitool x86_64 1.8.11-21.el6 updates 463 k 事务概要
==============================================================================================================
Upgrade 1 Package(s) 总下载量:463 k
确定吗?[y/N]:y
2,新建ip.csv文件,将BMC的IP(第一列)、ID 2的用户名(第二列)、ID2的密码(第三列)、ID5的用户名(第四列)、ID5的密码(第五列)
bmc_ip,bmc_user1,bmc_pass1,bmc_user2,bmc_pass2
10.27.11.86,admin,admin,bmc,calvin
10.27.11.17,admin,admin,bmc,calvin
10.27.11.68,admin,admin,bmc,calvin
3,新建bmc_adduser_id5_bmc.sh文件
#!/bin/bash
VERSION=0.0.
MODIFY_DATE= #判断当前bmc是否是活的
function judgeActive()
{
res=`ipmitool -I lanplus -H $IP_ADDR -U $USER_NAME -P $PASSWD mc info`
if [ $? -ne ]
then
echo "ip:$IP_ADDR not available"
return
fi
echo "ip:$IP_ADDR is available"
return
} #获取user1用户的userid
function judgeUserID()
{
USER_ID=`ipmitool -H $IP_ADDR -U $USER_NAME -P $PASSWD -I lanplus user list | grep " $USER_NAME " | awk '{print $1}'`
if [ $? -ne ]
then
return
fi
return
} #判断user2是否是活的
function checkNewUser()
{
res=`ipmitool -I lanplus -H $IP_ADDR -U $USER_NAME2 -P $PASSWD2 mc info`
if [ $? -ne ]
then
echo "ip:$IP_ADDR $USER_NAME2 $PASSWD2 not available"
return
fi
echo "ip:$IP_ADDR $USER_NAME2 $PASSWD2 is available"
return
} #输出帮助信息
function printHelp()
{
echo "Usage:./bmc_adduser_id5_bmc_v2_170825.sh -i ipFile
ipFile is bmc machine info file include ip username and password all info output file dump.csv"
} #给id5增加用户
function changeuser()
{
CHANNEL1=
CHANNEL8=
BMCID= #设置id5用户名
ipmitool -I lanplus -H $IP_ADDR -U $USER_NAME -P $PASSWD user set name $BMCID $USER_NAME2
if [ $? -ne ]
then
echo "ip:$IP_ADDR $USER_NAME $PASSWD user set name not available"
return
fi #设置id5密码
ipmitool -I lanplus -H $IP_ADDR -U $USER_NAME -P $PASSWD user set password $BMCID $PASSWD2
if [ $? -ne ]
then
echo "ip:$IP_ADDR $USER_NAME $PASSWD user set password not available"
return
fi #设置id5 channel1权限为administrator
ipmitool -I lanplus -H $IP_ADDR -U $USER_NAME -P $PASSWD user priv $BMCID $CHANNEL1
if [ $? -ne ]
then
echo "ip:$IP_ADDR $USER_NAME $PASSWD user priv $CHANNEL1 not available"
return
fi #设置id5 channel8权限为administrator
ipmitool -I lanplus -H $IP_ADDR -U $USER_NAME -P $PASSWD user priv $BMCID $CHANNEL8
if [ $? -ne ]
then
echo "ip:$IP_ADDR $USER_NAME $PASSWD user priv $CHANNEL8 not available"
return
fi #设置id5 channel1打开callin=on ipmi=true link=on privilege=4权限
ipmitool -I lanplus -H $IP_ADDR -U $USER_NAME -P $PASSWD channel setaccess $CHANNEL1 $BMCID callin=on ipmi=true link=on privilege=
if [ $? -ne ]
then
echo "ip:$IP_ADDR $USER_NAME $PASSWD channel setaccess $CHANNEL1 not available"
return
fi #设置id5 channel8打开callin=on ipmi=true link=on privilege=4权限
ipmitool -I lanplus -H $IP_ADDR -U $USER_NAME -P $PASSWD channel setaccess $CHANNEL8 $BMCID callin=on ipmi=true link=on privilege=
if [ $? -ne ]
then
echo "ip:$IP_ADDR $USER_NAME $PASSWD channel setaccess $CHANNEL8 not available"
return
fi #设置channel1的sol
ipmitool -I lanplus -H $IP_ADDR -U $USER_NAME -P $PASSWD sol payload enable $CHANNEL1 $BMCID
if [ $? -ne ]
then
echo "ip:$IP_ADDR $USER_NAME $PASSWD sol payload enable $CHANNEL1 not available"
return
fi #user2使能
ipmitool -I lanplus -H $IP_ADDR -U $USER_NAME -P $PASSWD user enable $BMCID
if [ $? -ne ]
then
echo "ip:$IP_ADDR $USER_NAME $PASSWD user enable not available"
return
fi return
} case $ in
-h|--help)
printHelp
exit
;;
esac #获取shell脚本参数
while getopts ":i:" opt
do
case $opt in
i)
IP_FILE=$OPTARG
echo "ip file is "$IP_FILE
;;
*)
echo "argument error"
exit ;;
esac
done #判断参数是否合法
if [ ${#IP_FILE} -eq ]
then
echo "please assign ip file. detail info check -h"
exit
fi echo "IP,check_original_user,original_userID,change_user,check_new_user">dump.csv declare -i i= #逐行读取文件
for LINE in `cat $IP_FILE`;
do
{ let i++ if [ $i -eq ]
then
continue
fi #判断文件行的大小,若长度小于10则认为非法
if [ ${#LINE} -lt ]
then
continue;
fi #声明变量并赋值
IP_ADDR=`echo $LINE | awk -F, '{print $1}'`
USER_NAME=`echo $LINE | awk -F, '{print $2}'`
PASSWD=`echo $LINE | awk -F, '{print $3}'` USER_NAME2=`echo $LINE | awk -F, '{print $4}'`
PASSWD2=`echo $LINE | awk -F, '{print $5}' | sed 's/\r//g'` #判断bmc是否是活的
judgeActive
if [ $? -eq ]
then
check_original_user="fail"
echo "$IP_ADDR,$check_original_user,$original_userID,$change_user,$check_new_user">${IP_ADDR}.insdat
continue
else
check_original_user="success"
fi #判断userid
judgeUserID
if [ $? -eq ]
then
original_userID="get error"
echo "$IP_ADDR,$check_original_user,$original_userID,$change_user,$check_new_user">${IP_ADDR}.insdat
continue
fi original_userID="is $USER_ID" #添加用户
changeuser
if [ $? -eq ]
then
change_user="fail"
echo "$IP_ADDR,$check_original_user,$original_userID,$change_user,$check_new_user">${IP_ADDR}.insdat
continue
else
change_user="success"
fi #检查新添加的用户
checkNewUser
if [ $? -eq ]
then
check_new_user="fail"
echo "$IP_ADDR,$check_original_user,$original_userID,$change_user,$check_new_user">${IP_ADDR}.insdat
continue
else
check_new_user="sucess"
fi #输出日志到日志文件
echo "$IP_ADDR,$check_original_user,$original_userID,$change_user,$check_new_user">${IP_ADDR}.insdat echo "$IP_ADDR dump info over"
}
done wait #汇集日志信息
allfile=`ls *.insdat`
for file in $allfile
do
cat $file >> dump.csv
done #删除单个的日志文件
rm -r *.insdat echo "all dump info over"
4,执行./bmc_adduser_id5_bmc.sh -i ip.csv
ip:10.27.11.11 is available
ip:10.27.11.12 is available
ip:10.27.11.13 is available
5,执行完成后查看验证文件cat dump.csv
10.27.11.11,success,,success,fail
10.27.11.12,success,,success,fail
10.27.11.13,success,,success,fail
ipmitool批量添加新用户名和密码的更多相关文章
- linux下批量添加新用户
作为一个系统管理员,可能要经常的为机器添加用户,可能是在一台机器上添加很多用户,也有可能是在很多机器上要添加同一个用户. 基本上,批量添加用户有两种方式,一是用useradd + passwd命令配合 ...
- Ubuntu下添加Samba用户名与密码
参考: ubuntu下的Samba配置:使每个用户可以用自己的用户名和密码登录自己的home目录 增加samba用户提示Failed to add entry for user Ubuntu可以直接在 ...
- Shell 脚本批量添加用户和用户密码
#!/bin/bash#批量添加用户 设置密码for i in `seq 1 10`do if ! id user$i &> /dev/null then useradd user$i ...
- 创建新用户,及用新用户名和密码登录--------------DCL
创建用户基本语法: creat user 用户名@"ip地址" identified by "密码" 登录数据库以后:用show databases; 显 ...
- Apache2 添加登陆用户名和密码
1. 修改httpd.conf, 对要做认证的目录进行设置<Directory "/usr/local/var/www"> Options Indexes Foll ...
- windows Server 2008 R2 添加新用户时密码不满足密码策略的要求
---------------------------本地用户和组---------------------------在计算机 WINSERVER2008R2 上创建用户 lintx 时,出现了以下 ...
- tomcat添加管理后台的用户名和密码(为jenkins连接tomcat用)
vim ./conf/tomcat-users.xml <role rolename="admin"/> <role rolename="admin- ...
- 【转载】干货再次来袭!Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载八)用命令实现批量添加用户
Windows添加用户需要至少5个界面,而Linux一条命令就搞定了,这是不是高效人士办公第一法则呢.本文不给你一堆参数和选项,不让你见识教条主义,只给你最实用的代码. 想每天能听到小妞的语音播报,想 ...
- windowsxp系统下SVN添加新用户
以我部署的文件为例: 我在f盘下新建一个zzz文件夹将其部署为svn共享工程后,新来员工需要添加svn账号以获取工程. 总共三步begin: 1.进入工程文件夹ZZZ在里面有一个conf文件夹如图: ...
随机推荐
- 菜鸟天天不懂,那就天天敲它。。。还不懂。。。JAVA数组比较大小。
package com.aini; import java.util.Scanner; //操...为什么数组的大小比较我硬是搞不懂,比较大小依然放在for循环里... //从键盘输入一组数据,并输出 ...
- 字符串转换为字典的函数eval(字符串)
首先把多行的字符串,变成一个字符串,用'''和'''扩起来: 然后把这个字符串,赋值给b 这个时候,b根本调不出来,也用不起来: 用eval(b),来格式化字符串变成字典: 然后b就变成了一个字典:
- 第11章 Tomcat的系统架构与设计模式
11.1 Tomcat总体设计 11.1.1 Tomcat总体架构 Tomcat和核心有连个组件:Connector和Container,Connector是可以被替换的.一个container可以有 ...
- autoit 简单使用-- 操作windows窗口
autoit 简单使用 autoit中文交流论坛: http://www.autoitx.com/index.php 1 下载 autoit 中文安装包 : https://yunpan.cn/OcP ...
- IT_Qestion
1. Javascript 回调 Promise 2. Angularjs $parent 3. CSS margin padding border 4. Angularjs $filter 5. D ...
- NetBeans配置Xdebug 远程调试PHP
1.配置PHP 说明:xdebug.trace_output_dir和xdebug.profiler_output_dir需要增加权限 #chmod 755 /usr/xdebug-tmp xdebu ...
- PyInstaller打包成exe可执行文件
PyInstaller 安装pyinstaller 对于那些网络比较稳定,能够流畅使用pip源地址的用户,直接下面的命令就可以搞定: pip install pyinstaller 通常我们会下载源码 ...
- VIM基本命令及自用配置
VIM基本命令 光标移动 G 最后一行 nG 移动到第n行 n回车 光标下移n行 gg 第一行 查找和替换 /word n 重复前一个查找操作 N 向上查找 :n1,n2s/word1/word2/g ...
- phpmailer邮件类
<?php/** * 邮件类 * Enter description here ... * @author df * Mail::getMail()->sendMail(); * */cl ...
- 【原创】6. 在MYSQL++中实现SQL语法中的NULL
这次要说明的是在MYSQL++中为了实现SQL中的NULL而做出的一系列的举措.我的感觉是Null<T, B>类型通常出现在SSQLS和template Query中比较多. 1. 什么是 ...