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文件夹如图: ...
随机推荐
- ExcelHandle
using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; using Syste ...
- 【转】 Pro Android学习笔记(九四):AsyncTask(3):ProgressDialog
文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ Progress Dialog小例子 我们 ...
- Annotation之一:Java Annotation基本功能介绍
一.元数据的作用 如果要对于元数据的作用进行分类,目前还没有明确的定义,不过我们可以根据它所起的作用,大致可分为三类: 编写文档:通过代码里标识的元数据生成文档.这是最常见的,也是java 最早提供的 ...
- 几种经典的hash算法
计算理论中,没有Hash函数的说法,只有单向函数的说法.所谓的单向函数,是一个复杂的定义,大家可以去看计算理论或者密码学方面的数据.用“人 类”的语言描述单向函数就是:如果某个函数在给定输入的时候,很 ...
- thinkphp实现多个子查询语句
sql语句博大精深 理解好sql语句,就能用好thinkphp等框架中的数据库操作 原sql SELECT a.*,b.* from (SELECT a.id as opener_id,a.name, ...
- mybatis generator 用法
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration ...
- yield-from示例
#!/usr/bin/python3# -*- coding: utf-8 -*-# @Time : 2018/6/20 9:13# @File : yield_from11.py fro ...
- Py修行路 python基础(六)前期基础整理
计算机中,有且仅有CPU具有执行权限,能够执行指令的只有CPU! 人在应用程序上输入的文字或文本,叫做明文! 在屏幕上输入或是输出的是字符,计算机保存的是 有字符编码的 二进制数. 变量赋值规则:例如 ...
- win7系统程序未响应怎么办
问题描述:出现“程序未响应...”而后系统程序就没有反应了. 解决方案:1.运行→输入“regedit”→hkey_current_usser/control panel/desktop/window ...
- smack 监听不同packet机制
之前做即时通讯,扒了smack源码来参考.说下其中解包后进行通知的机制. Filter类:accept(Packet packet)函数,传入packet在此函数中进行对比判断,返回true 则通过此 ...