2013-12-11 56 views
1

在哈德森,我创造了一份工作,尝试在Ubuntu的哈德森从执行此命令行:如何在Hudson作业中以root身份执行命令行?

sudo mount -t cifs //path/to/network/directory /path/to/local/directory -o username=<Account>,password=<AccountPassword>,domain=<DomaineName> 

,但我得到这个错误

sudo: no tty present and no askpass program specified 

然后,我尝试执行这个命令行在Hudson作业中代替:

mount -t cifs //path/to/network/directory /path/to/local/directory -o username=<Account>,password=<AccountPassword>,domain=<DomaineName> 

然后,我得到这个er ROR

mount: only root can do that 

然后我尝试这个命令行(我试了一下,因为在腻子这个命令工作):

ssh "sudo mount -t cifs //path/to/network/directory /path/to/local/directory -o username=<Account>,password=<AccountPassword>,domain=<DomaineName>" 

但我没这个错误

ssh: Could not resolve hostname ,domain=<DomaineName>: Name or service not known 

在阅读this之后,我尝试通过在Ubuntu终端中执行以下命令行来解决以前的错误:

sudo chmod a+s /sbin/mount.cifs 

但是这并没有解决我的问题。

这并没有工作,要么:

mount.cifs //path/to/network/directory /path/to/local/directory -o username=<Account>,password=<AccountPassword>,domain=<DomaineName> 

我应该得到的根的方法来验证在哈德森工作(密码应在自动方式进行设置)?或者我应该给哈德森用户提供root权限?

我该如何解决这个问题?

非常感谢!

+0

这个问题是不是“通用计算的硬件和软件”,也是它不是政府。我是一个开发者,而现在我正在使用shell编写脚本,更具体地说,我所做的脚本是在Hudson版本中注入的。所以,也许我的命令行有错误。感谢您审核我的问题并重新打开它。 – Farah

回答

0

要做的最好的事情可能是将挂载添加到/ etc/fstab并指定“user”选项,因此您不必为root来执行挂载。

添加到/ etc/fstab中应该是这样的一行:

//path/to/network/directory /path/to/local/directory cifs noauto,user,username=<account>,password=<password>,domain=<domain> 0 0 
+0

感谢您的建议,但我不是在fstab文件中添加密码的权利。它必须填写哈德森工作水平。谢谢 – Farah

+0

也许它会工作,如果你把除密码之外的所有东西都放到fstab中,并在命令行上输入密码。但是你必须尝试一下,我不能在那里我是atm。 –

相关问题