想用管道为samba smbpasswdd自动输入密码,各位大侠有招吗

Ubuntu下安装配置ctdb Samba ,遇到ctdb的各个节点显示UNHEALTHY是不健康的
& & &3台服务器安装Ubuntu-server 14.04,先搭建ceph集群,然后搭建Samba和ctdb服务,ceph集群与Samba显示都是健康的,遇到ctdb的各个节点显示UNHEALTHY是不健康的,如下所示:
root@node77:~# ctdb status
Number of nodes:3
pnn:0 172.22.112.79 & &UNHEALTHY
pnn:1 172.22.112.78 & &UNHEALTHY
pnn:2 172.22.112.77 & &UNHEALTHY (THIS NODE)
Generation:
hash:0 lmaster:0
hash:1 lmaster:1
hash:2 lmaster:2
Recovery mode:NORMAL (0)
Recovery master:0root@node79:~# ctdb ping -n all
response from 0 time=0.000162 sec &(2 clients)
response from 1 time=0.000483 sec &(1 clients)
response from 2 time=0.000545 sec &(1 clients)
root@node79:~# ctdb ip
Public IPs on node 0
172.22.112.80 -1
172.22.112.81 -1
172.22.112.82 -1
Samba和ctdb的配置如下:
root@node79:~# vi /etc/samba/smb.conf
& & & & workgroup = MYGROUP
& & & & netbios name = MYSERVER
& & & & server string = Samba Server Version %v
& & & & log file = /var/log/samba/log.%m
& & & & max log size = 0
& & & & clustering = Yes
& & & & idmap backend = tdb2
& & & & private dir = /smbcluster/ctdb
& & & & fileid:mapping = fsname
& & & & use mmap = no
& & & & nt acl support = yes
& & & & ea support = Yes
& & & & security = user
& & & & passdb backend = tdbsam
& & & & comment = public share
& & & & path = /smbcluster/public
& & & & read only = No
& & & & public = Yes
root@node79:~# vi /etc/default/ctdb &
CTDB_RECOVERY_LOCK="/smbcluster/ctdb/lock"
CTDB_PUBLIC_INTERFACE=em1
CTDB_PUBLIC_ADDRESSES=/etc/ctdb/public_addresses
CTDB_MANAGES_SAMBA=yes
CTDB_MANAGES_NFS=no
CTDB_MANAGES_WINBIND=yes
CTDB_NODES=/etc/ctdb/nodes
CTDB_LOGFILE=/var/log/ctdb.log
CTDB_DEBUGLEVEL=2
CTDB_PUBLIC_NETWORK="172.22.112.0/24"
CTDB_PUBLIC_GATEWAY="172.22.112.1"
root@node79:~# vi /etc/ctdb/events.d/11.route&
. /etc/ctdb/functions
loadconfig ctdb
case $cmd in
/sbin/ip route add $CTDB_PUBLIC_NETWORK via $CTDB_PUBLIC_GATEWAY dev $1 2& /dev/null
root@node79:~# vi /etc/ctdb/public_addresses&
172.22.112.80/24&
172.22.112.81/24&
172.22.112.82/24&
root@node79:~# vi /etc/ctdb/nodes & & & & & &
172.22.112.79
172.22.112.78
172.22.112.77
求大神指点。。。。。。。。。。。。。。。。。。
你是怎么启动的samba?不要手动启动samba,最好让ctdb 把samba启动。
--- 共有 7 条评论 ---
: 如果这样不重启smbd的话,Samba也不对了。是要在配置里面设置吗
: 先service smbd stop,然后service ctdb restart。对吧,可是看ctdb的状态还是不健康的
: 启动ctdb后,samba会自动启动的。
: 求指导,使用gluster也是同样的提示
: 那是怎么回事?在Ubuntu下怎么让ctdb 把samba启动
是在Ubuntu下ctdb不能启动Samba的原因,需要修改/etc/ctdb/events.d/50.samba文件内容,把 service_name="samba"改为 service_name="smbd"ldap管理samba账号
在samba配置文件smb.conf中配置通过ldap管理账号之后,该如何新增账号呢?是否只能用smbpasswd -a username的命令进行添加?ldap中之前已存在的账号能否用来认证samba?
哪位大神对这个比较了解的,恳求指点一下?
在线等待中...
以下是问题补充:
:还有一个很纠结的问题,创建用户时,必须要存在本地账号才能创建成功samba账号,ldap里才能出现相应的记录,访问才能成功。听说使用ldap可以不用创建本地系统账号,这个是怎么回事?
:路过的都来说两句吧。
去国外网站吧,国内论坛应该还没有这么深入……
我记得应该有个配置文件将ldap的用户与系统用户挂钩的。 上google搜搜吧。 不太记得了。 用户由ldap统一管理。 策略在本地搞就行了。后使用快捷导航没有帐号?
只需一步,快速开始
只需一步,快速开始
在线发帖幸运送福利,奖品一波接一波 恭喜:&&
原来在一家小的设计院做了四年化工仪表设计,索引表,规格书,位置图,桥架布置图,供
道理大家都懂,年轻就是资本。
现在新人入厂,老人们总是担心自己的位置不保,有些
查看: 4192|回复: 14
导热油管道带油补漏技术
阅读权限65
积分帖子主题
注册海川与360万海川共分享
才可以下载或查看,没有帐号?
各位海友:
& & 我公司沥青加热用导热油管道升温至260度时发现管道焊接处有个小小的沙眼渗油,但是现在正常开车不想把导热油系统停下来补漏,请各位专家有没有高招补漏,给指导一下,非常感谢
已有&0&人打赏作者
阅读权限60
积分帖子主题
我们这里也出现了这种情况,没什么好办法处理
阅读权限65
积分帖子主题
除了停车处理外,还有没有其他好的办法呀,若停车的话,损失太大了
阅读权限30
积分帖子主题
我倒是遇到过类似情况,有一家公司替我们厂补过。不过一般维持三四个月,过了这段时间,还是要停车检修。不过能维持到大修,对生产来说已经不错了。我可以给你个电话问问,但价格你要好好砍一砍,最好签一个质量保证协议。
帮助他人解决问题
阅读权限65
谢谢4楼的朋友
阅读权限55
积分帖子主题
关于导热油泄露
可以用带压堵漏技术进行堵漏
阅读权限30
带好灭火器
阅读权限65
积分帖子主题
楼上的朋友能不能说得具体一些
阅读权限60
积分帖子主题
温度太高,常规的堵漏办法肯定不行,如果压力不高可以考虑铆堵或者卡箍之类。很奇怪,没有做压力试验吗。
阅读权限65
积分帖子主题
谢谢各位朋友。
&&压力试验也做了,管道也吹扫了,当时在阀门的背面并且在高空漏点实在是不明显没发现,若发现了就不会这样了。
&&现在想想是焊接时可能是焊条没有烘干到位,里面产生了气泡,慢慢的就渗漏了,大约10分钟一滴。
猜猜这是什么神器安全漫画(7.15)不同的效果这个藏头诗我笑了一天【海川美食猜猜看】哪个地方的特色美食,据工具是好工具,就是动作太粗暴了一些
新工人入厂三级教育指的是什么?
**** 本内容被作者隐藏 ****
海川提示 /1
论坛老QQ登录入口,将于月底关闭,需要使用QQ绑定登录的会员,请及时更换绑定入口。谢谢
广告投放&事务
事务联系邮箱:&&
日访客10万 欢迎您的参与 化工技术交流第一社区,共同学习 共同提高!
版权所有 海川云天-海川化工论坛 -2004您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
Linux服务器配置与管理实验指导.doc47页
本文档一共被下载:
次 ,您可免费全文在线阅读后下载本文档
文档加载中...广告还剩秒
需要金币:100 &&
你可能关注的文档:
··········
··········
《》。以培养学生的独立思考能力与动手能力为主导原则,课堂讲授的内容实一实内容
1.Vmware Workstation 6.0下创建Red Hat Linux虚拟机,要求虚拟机的内存为256MB或更大,硬盘为8GB或更大。
2.使用RHEL 5.3的DVD光盘或ISO文件安装Linux系统。
(2)Linux如何表示分区
在Windows系统中使用盘符来标识不同的分区,而在linux下使用分区的设备名来标识不同的分区,设备名存放在/dev目录中。
磁盘设备名称如下:
系统的第1块IDE接口的硬盘称为/dev/hda
系统的第2块IDE接口的硬盘称为/dev/hdb
系统的第1块SCSI接口的硬盘称为/dev/sda
系统的第2块SCSI接口的硬盘称为/dev/sdb
分区使用数字编号表示:
系统的第1块IDE接口硬盘的第1个分区称为/dev/hda1
系统的第1块IDE接口硬盘的第5个分区称为/dev/hda5
系统的第2块SCSI接口硬盘的第1个分区称为/dev/sdb1
系统的第2块SCSI接口硬盘的第5个分区称为/dev/sdb5
注意:数字编号1-4留给主分区或扩展分区使用,逻辑分区编号从5开始。
(3)Linux文件系统文件系统的组织方式------挂载点
Linux系统只有一个根目录,即只有一个目录树。不同磁盘的不同分区只是这个目录树的一部分,在linux中创建文件系统后(类似format ,用户不能直接使用它,要挂载文件系统后才能使用。挂载文件系统首先要选择一个挂载点。
2.利用VMware?Workstation?6.0?创建一台新的虚拟机VMware?Workstation的File菜单下的New-Virtual Machine命令,出现以下对话框,单击下一步;
(2)选择要创建一台典型虚拟机按下一步继续选择客户操作系统为虚拟机选择一个虚拟机名称和目录设置虚拟机网络访问可用的选择为使用桥接网络通过你的计算机中的一块以太网适配器卡直接连接到一个本地以太网。 使用网络地址翻译 NAT 允许客户操作
正在加载中,请稍后...8121人阅读
Linux的脚本中自动登陆远程主机方法汇总
为了方便,我写了个脚本自动ssh登录远端机器,如下,这个脚本需要安装expect包
================================
#!/usr/bin/expectset timeout 30spawn ssh -l root 192.168.1.117expect "password:"send "nopasswd/r"interact
================================
set timeout 30设置超时时间的,计时单位:秒
spawn ssh -l root 192.168.1.117spawn是进入expect环境后才可以执行的expect内部命令,如果没有装expect或者直接在默认的SHELL下执行是找不到spawn命令的。所以不要用 &which spawn&之类的命令去找spawn命令。好比windows里的dir就是一个内部命令,这个命令由shell自带,你无法找到一个 或 dir.exe 的可执行文件。它主要的功能是给ssh运行进程加个壳,用来传递交互指令。
expect "password:"这里的expect也是expect的一个内部命令,expect的shell命令和内部命令是一样的,但不是一个功能。这个命令的意思是判断上次输出结果里是否包含&password:&的字符串,如果有则立即返回,否则就等待一段时间后返回,这里等待时长就是前面设置的30秒
send "nopasswd/r"这里就是执行交互动作,与手工输入密码的动作等效。温馨提示: 命令字符串结尾别忘记加上 &/r&,如果出现异常等待的状态可以核查一下。
interact执行完成后保持交互状态,把控制权交给控制台,这个时候就可以手工操作了。如果没有这一句登录完成后会退出,而不是留在远程终端上。如果你只是登录过去执行一段命令就退出,可改为〔expect eof〕
注意:在crontab里执行expect脚本,那么最后一句就不能是interact,应该是expect eof
参考:定期备份数据库/
如下为网上转载的其他的shell自动交互的方法
--------------------------------------------------------------------------------shell脚本中如何进行自动的交互
在编写shell脚本的批处理代码时,一般只要求用户在调用shell时,输入有限的几个参数,然后由shell进行批处理作业,在批处理作业完成之前,中途不会
有任何打断。但是linux有些命令本身是要求进行人机交互的,命令基本上是以一问一答形式在终端上跟用户交互,如passwd、smbpasswd,在设置某个用户
的密码时,传入username参数,回车后系统要求输入密码,而smbpasswd还要求再次输入确认密码,这样就需要人工干预2次,这个命令才能执行完毕。
&&&&& 最近写一个小工具,恰巧碰到这个问题,用户要求提供一个shell,输入username和端口号后,自动完成linux 用户的创建、密码设置、网上邻居的开
通、代码的检出、apache配置、启动等一系列操作,所有帐号中username跟passwd一致。用户输入shell命令敲击回车后,便不再与系统交互,由系统自动完
成之后的所有操作。
&&& 但由于passwd和smbpasswd两个命令都需要用户干预才能完成,有没有什么办法不用用户干预,由系统模拟用户完成输入操作呢?答案是肯定的,就是利
用linux的管道技术,通过&echo&命令进行标准输出,然后通过管道符&|&转换为passwd和smbpasswd的标准输入,由此模拟人机交互,具体实现:
假设用户调用shell脚本为:
[root@myhost]# ./myshell.sh username
则在脚本里实现为:
#!/bin/sh#Usage: myshell.sh usernameuserName=$1;password=$1;
#add user and set default password useradd $userN#通过设定&stdin参数,指明接受标准输入;echo $password | passwd - -stdin $userN
#add samba user and set default password #通过设置-s参数,指明使用安静模式设置密码( echo $ echo $password& ) | smbpasswd -s -a $userN&&
& 这样的话,通过linux 的管道技术,将标准输出通过管道转换为某些命令的标准输入,实现了人工输入的模拟,从而屏蔽了人机交互,实现了完全的自动
例子:&#!/usr/bin/expect -f
set password 密码
spawn scp 用户名@目标IP:拷贝文件的路径 存放本地文件的路径
set timeout 300(s)
expect "用户名@目标ip`s password:"
set timeout 300
send"$password/r"
set timeout 300
send"exit/r"
expect eof--------------------------------------------------------------------------------
src:/art/898.htm
你了解Linux系统么?你是Linux系统的应用者么?如果你要学习linux,你可能会遇到Linux Shell自动交互问题,这里将介绍Linux Shell自动交互的解决方法,在这里拿出来和大家分享一下。
shell脚本在处理自动循环或大的任务方面可节省大量的时间,通过创建一个处理任务的命令清单,使用变量、条件、算术和循环等方法快速创建脚本以完成相应工作,这比在命令行下一个个敲入命令要省时省力得多。
但是有时候我们可能会需要实现和交互程序如ftp,telnet服务器等进行交互的功能,这时候我们需要用到shell的自动交互功能,本文收集了较常用的三种自动交互方法,并进行了比较和总结。
需求1:从一台Linux机器ftp登陆到另一台Linux机器,进行系列操作后关闭,懒得每次都手动输入密码。
需求2:改变登录用户密码,懒得每次都输入新旧密码。
需求3:希望su自动登录到root账户,懒得每次都输入root密码。
三、调试环境
终端:SecureCRT
系统:WinXP, CentOS 4.4(VmWare)
Shell:bash
注:shell有很多种,B类SHELL(sh, bash, ksh)之间行为相近;C类SHELL(csh, tcsh)之间行为相近,还有zsh和rc等shell,本文的调试环境是bash。
四、自动交互方法一
自动交互最关键的就是交互信息的自动输入,首先联想到文件重定向,在shell编程中有这样一种用法(参考Linux与UNIX SHELL编程指南 chapt 5.7):"command && delimiter& 从标准输入中读入,直至遇到delimiter分界符。"
重定向操作符command && delimiter是一种非常有用的命令,shell将分界符delimiter之后直至下一个同样的分界符之前的所有内容都作为输入,遇到下一个分界符, shell就知道输入结束了。最常见的delimiter分界符是EOF,当然完全可以自定为其他字符。
对于需求1 要求的自动登陆ftp,并作系列操作,则可以用这种方法进行自动交互。代码如下:
&& 1. #!/bin/bash& && 2. ftp -i -n 192.168.167.187 && EOF && 3. user hzc 123456& && 4. pwd& && 5. cd test& && 6. pwd& && 7. close& && 8. bye& && 9. EOF
测试可以发现,如上代码使用帐号名hzc,密码123456成功登陆了ftp服务器,并进入目录,打印出了pwd。
五、自动交互方法二
需求2中要求采用非交互的方式改变登录用户密码,尝试用方法1,无法实现。
这时候联想到交互信息的另一个自动输入方法,管道,通过echo + sleep + | 可以实现这个需求。
&& 1. #!/bin/bash& && 2. (echo "curpassword"& && 3. sleep 1& && 4. echo "newpassword"&& && 5. sleep 1& && 6. echo "newpassword")|passwd
测试通过,运行这个脚本,直接把当前用户的curpassword改成newpassword。
六、自动交互方法三
需求3中要求自动登录root账号,尝试方法1和方法2,都出现错误提示standard in must be a tty。
这时候尝试寻找外部帮助,一个shell工具expect可以实现这个功能,其实expect就是一个专门用来实现自动交互功能的工具,expect的语法可以参考相关资料,代码如下:
&& 1. #!/usr/bin/expect& && 2. spawn su root& && 3. expect "password: "& && 4. send "123456/r"& && 5. expect eof& && 6. exit
测试通过,运行这个脚本,直接从当前用户登录到root用户。
七、方法总结
方法一(重定向)简单直观,也经常有实际应用,但是在自动交互领域功能有限。
方法二(管道)也很简单直观,有时甚至不用sleep配合就能展现强大的自动交互实力,但是在某些时候也束手无策。
方法三(expect)在功能上是最为强大的,expect本来就是为实现自动交互功能而生,但是缺点是需要安装expect包,在嵌入式等环境下难以安装。
三个方法各有优劣,应用的好,都可以完成Linux Shell自动交互。
********************************************
但是有时候我们可能会需要实现和交互程序如ftp,telnet服务器等进行交互的功能,这时候我们需要用到shell的自动交互功能.
  最简单的例子就是创建用户,我创建100个用户,初始密码为123,那么要是挨着passwd& username& ,交互性输入密码,那不得疯掉,但是脚本里应该
怎么写呢?将密码123,输入到passwd命令?
  本文收集了较常用交互方法,并进行了比较和总结。
  自动交互方法一:利用命令的自带参数,将标准输入作为手动输入的内容
  自动交互最关键的就是交互信息的自动输入,首先联想到文件重定向,在shell编程中有这样一种用法(参考Linux与UNIX SHELL编程指南 chapt
5.7):"command && delimiter& 从标准输入中读入,直至遇到delimiter分界符。"
  重定向操作符command && delimiter是一种非常有用的命令,shell将分界符delimiter之后直至下一个同样的分界符之前的所有内容都作为输入,遇到
下一个分界符, shell就知道输入结束了。最常见的delimiter分界符是EOF,当然完全可以自定为其他字符。
  对于需求1 要求的自动登陆ftp,并作系列操作,则可以用这种方法进行自动交互。代码如下:
  [yjwan@test ~]$ ftp -i -n 192.168.21.46 &&EOF
  user dbftp dbftp101
  下面是得到的结果:
  Connected to 192.168.21.46.
  220 developerjail FTP server (Version 6.00LS) ready.
  331 Password required for dbftp.
  230 User dbftp logged in.
  Remote system type is UNIX.
  Using binary mode to transfer files.
  229 Entering Extended Passive Mode (|||54281|)
  150 Opening ASCII mode data connection for '/bin/ls'.
  total 8847424
  -rw-r--r--& 1 dbftp& www&
Aug 28 14:28 ewiz90.sql_
  226 Transfer complete.
  221 Goodbye.
  测试可以发现,如上代码使用帐号名dbftp,密码dbftp101成功登陆了ftp服务器,并进入目录,ls出当前目录的文件。
  注意事项:
  1& 这里一定要加-i ,否则必定失败!!
  这里ftp用的-I 参数 结束了交互式输入,因此可以用文本的方式自动地输入用户密码以及操作方式
  如果不用-I 参数,那么必定要求你手动输入密码的!!那么就达不到自动登陆的要求了
  你可以man ftp找到这个参数
  -i 关闭多文件传送中的交互式提示。请参考 prompt、mget、mput 和 mdelete 子命令,以取得多文件传送中的提示的描述。
  -n 防止在起始连接中的自动登录。否则, ftp 命令会搜索 $HOME/.netrc 登录项,该登录项描述了远程主机的登录和初始化过程。请参考 user 子命
  2&&& 举一反三:只要是要求输入密码的命令,一般都带有一个参数,允许你从标准输入,输入用户密码,以及操作。
  其他常用的自动登陆命令的参数
  1)& Passwd命令
  Linux下 Passwd有参数
  --stdin
  This option is used to indicate that passwd should read the new password from standard input, which can be a pipe.
  所以linux下自动改变用户密码的办法就是
  Echo 密码 |passwd &stdin 用户名
  Freebsd没有以上参数 注意
  他的方法是echo passwd |pw mod user username -h 0
  2)smbpasswd
  This option causes smbpasswd to be silent (i.e. not issue prompts)
  and to read its old and new passwords from standard input, rather
  than from /dev/tty (like the passwd(1) program does). This option
  is to aid people writing scripts to drive smbpasswd
  3)sudo
  在shell脚本中需要用root用的来执行指令:
  sudo 自动输入密码
  echo "password" | sudo -S netstat -tlnp
  The -S (stdin) option causes sudo to read the password from the standard input instead of the terminal device.
  3& 标准输入还可以用以下两种写法:
  可以将下面的内容写入到一个文本
  然后ftp& -I &n ip &文本
  或者echo& &..&& |ftp &I &n ip
  都是可以的!
  因为他们都满足&有一个标准的输入&这个条件
  4 ssh的自动登陆没有这样的自动输入密码的参数
  一般都是使用公钥/私钥的方式自动登录
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:702788次
积分:7992
积分:7992
排名:第2439名
原创:55篇
转载:612篇
评论:51条
(27)(29)(5)(21)(3)(1)(2)(16)(11)(31)(3)(5)(1)(13)(92)(45)(1)(24)(9)(48)(1)(35)(1)(10)(6)(3)(1)(2)(34)(10)(3)(2)(2)(9)(2)(21)(13)(6)(15)(25)(13)(17)(10)(10)(20)(3)(3)(5)(9)

我要回帖

更多关于 smbpasswd 的文章

 

随机推荐