Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix 通过批处理文件执行plink登录sudo(思维博客)_Unix_Batch File_Dos_Putty - Fatal编程技术网

Unix 通过批处理文件执行plink登录sudo(思维博客)

Unix 通过批处理文件执行plink登录sudo(思维博客),unix,batch-file,dos,putty,Unix,Batch File,Dos,Putty,这是我想做的。。。从plink连接到远程unix服务器,该服务器在批处理文件中执行,以运行其他用户名的脚本(作为sudo user)。我试过这个 @echo off set /p id="Enter Unix Login ID: " %=% set /p pwd="Enter Password: " %=% cls del jobInfo_error.txt plink -l %id% -pw %pwd% Server0 "sudo su - user222" 2>>JobInf

这是我想做的。。。从plink连接到远程unix服务器,该服务器在批处理文件中执行,以运行其他用户名的脚本(作为sudo user)。我试过这个

@echo off
set /p id="Enter Unix Login ID: " %=% 
set /p pwd="Enter Password: " %=% 
cls
del jobInfo_error.txt
plink -l %id% -pw %pwd% Server0 "sudo su - user222" 2>>JobInfo_error.txt
plink -l %id% -pw %pwd% Server0 "/export/home/user222/user222_unix_works.ksh" 2>>JobInfo_error.txt
start notepad JobInfo_error.txt
在上面的代码中,我以
user000
的身份登录,然后我想以
user222
的身份登录sudo,并运行脚本
user222\u unix\u works.ksh
。执行和写入权限仅授予
user222
,我不想更改它

这就是为什么我认为我没有得到我想要的结果,第一个plink命令
plink-l%id%-pw%pwd%Server0“sudo su-user222”2>>JobInfo_error.txt
被执行,但会话被终止,当第二个命令运行时,我以
user000
的身份登录,无法执行

有没有办法做到这一点? 以下是JobInfo_error.txt中的错误

  bash: /export/home/user222/user222_unix_works.ksh: Permission denied
还有两件事我不能直接以
user222

我可以执行
user000
有权限的任何文件。i、 如果我只是简单的跑步

plink -l %id% -pw %pwd% Server0 "/export/home/user000/user000.ksh"

它可以工作。

这两个ssh连接是完全独立的。为什么您认为在第一次会话期间更改用户帐户会对第二次连接产生任何影响?最简单的方法可能是使用一种完全不同的方法:只需建立一个连接并使用它来启动位于该目标系统上的本机shell脚本。在这个脚本中,你可以更改有效的用户id,然后做你想做的任何事情。好的,但是在这个方法中,我必须将密码硬编码到我不想要的脚本中。不,这不是必需的。sudo实用程序可以更高级地使用:您可以将对非常特定的命令的访问权限授予单个用户帐户,该帐户可以在不指定密码的情况下执行。因为密码的存储和传输总是一个安全问题,你应该考虑一下。HMM不是根,我没有特权。怎么样
plink-l%id%-pw%pwd%Server0“/export/home/user000/user000.ksh”
where
user000.ksh
has
sudo su-user222 nopasswd/export/home/user222/user222\u unix\u works.ksh
啊,好吧,那确实是另外一回事。您需要根权限来设置sudo实用程序一次,以授予命令执行。