Linux Can';t获取BASH脚本以填写密码

Linux Can';t获取BASH脚本以填写密码,linux,bash,ubuntu,samba,Linux,Bash,Ubuntu,Samba,我有一个Ubuntu12.04服务器虚拟机,通过Hyper-V安装为媒体服务器。我的服务器2012操作系统上有一个共享驱动器,我想在启动时安装在Ubuntu上 现在,我可以通过键入sudosmbmount//host\u ip/media~/media 输入后,系统会提示我输入共享的密码,输入密码后会正确装入驱动器 我已经编写了一个脚本,但无法让它在提示时写入密码 有没有一种方法可以编写一个简单的BASH脚本,并在启动时以root权限运行它 如何让脚本填写密码 如果您安装了expect,这非常

我有一个Ubuntu12.04服务器虚拟机,通过Hyper-V安装为媒体服务器。我的服务器2012操作系统上有一个共享驱动器,我想在启动时安装在Ubuntu上

现在,我可以通过键入
sudosmbmount//host\u ip/media~/media

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

我已经编写了一个脚本,但无法让它在提示时写入密码

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

如果您安装了
expect
,这非常简单

下面是一个使用
expect
的示例。来源-

执行上述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 #

通常在(
/etc/fstab
)中设置永久安装。操作系统引导时,将创建
/etc/fstab
中指定的所有装载。以下是Ubuntu上的一些信息。

正如Daniel所指出的,在启动时装载Samba共享的一个好方法是将共享名放在/etc/fstab文件中

用于在后备箱安装的“一个衬里”是:

//主机名/share/mnt/samba smbfs用户名=用户,密码=密码0


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

您能给我们看一下您的脚本吗(显然隐藏了您的密码/详细信息)?这样,我们可以为您添加建议:)正如我提到的。。。这是一个非常简单的脚本。。。但到目前为止我得到的是:#/bin/bash echo“***装载共享***”echo“sudo smbmount//192.168.1.176/media~/media echo”“expect”密码:“发送”mysecretpassword“echo”
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 #