无法获取BASH脚本来填写密码

时间:2014-03-09 03:07:56

标签: linux bash ubuntu samba

我有一台通过Hyper-V的Ubuntu 12.04服务器虚拟机,它被设置为媒体服务器。我的Server 2012操作系统上有一个共享驱动器,我想在启动时在Ubuntu中安装。

现在,我可以通过输入sudo smbmount //host_ip/media ~/media

来安装它

输入后,系统会提示我输入共享密码,输入时会正确安装驱动器。

我编写了一个脚本,但在提示时无法写入密码。

  • 有没有办法可以编写一个简单的BASH脚本并让它在启动时以root权限运行?
  • 如何让脚本填写密码?

3 个答案:

答案 0 :(得分:0)

如果你安装了expect,这很容易。

以下是使用expect的示例。来源 - GeekStuff

#!/usr/bin/expect

set timeout 20
set ip [lindex $argv 0]
set user [lindex $argv 1]
set password [lindex $argv 2]

spawn ssh "$user\@$ip"

expect "Password:"

send "$password\r";

interact

执行上述expect程序,如下所示。

guest@host1 $ ./ssh.exp 192.168.1.2 root password
spawn ssh root@192.168.1.2
Password:
Last login: Sat Oct  9 04:11:35 2010 from host1.geetkstuff.com
root@host2 #

答案 1 :(得分:0)

通常会在filesystems table file/etc/fstab)中设置永久挂载。操作系统引导时,将创建/etc/fstab中指定的所有装入。以下是来自how to permanently mount Windows shares的Ubuntu的一些信息。

答案 2 :(得分:0)

正如Daniel指出的那样,在启动时安装Samba共享的好方法是将共享名称放在/ etc / fstab文件中。

将它安装在启动时的“单线程”将是:

// hostname / share / mnt / samba smbfs username = user,password = password 0 0

最后两个参数应为零。它们仅用于本地文件系统,与dump命令的使用和应该执行fsck的顺序有关。