SHELL脚本切换用户需输入密码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SHELL脚本切换用户需输入密码相关的知识,希望对你有一定的参考价值。
SHELL脚本切换用户需输入密码,普通用户间切换需要输入密码,怎么实现
先确认一下su -c 能否解决问题,语法 su - <user name> -c <cmd> 以指定用户执行命令[root@fw98 /]# whoami
root
[root@fw98 /]# su - mao -c whoami
mao
不能满足需求的话,可以用expect,我的环境上没有expect,不能帮你试了,大致是下面的感觉,详细你百度查一下
#!/usr/bin/expect
su - mao #你要执行的命令
expect "Password:" #执行后终端回显的交互信息
send "admin_123\r" #当终端出现上面的交互详细后,模拟键盘输入的内容
#此例,执行su - mao 切换mao用户,终端提示输入密码后,模拟键盘输入mao用户的密码 参考技术A 正常情况下,使用su - username的方式,普通用户切换都需要输入密码的,只有root su的时候才不需要追问
脚本能否实现自动输入密码
参考技术B 可以用expect追问能具体些吗,谢谢
追答#!/bin/shexpect -c "
spawn su - root
expect \\"Password:\\"
send \\"111111\\r\\"
interact
"
111111是密码 root是用户 可以用变量代替。这个是bash里调用的expect,我没直接写expect脚本
shell-ftp命令
补充 Linux用户之间的切换:
su是在用户间切换,可以是从普通用户切换到root用户,也可以是从root用户切换到普通用户。如果当前是root用户,那么切换成普通用户test用以下命令:
su - test
如果要切换回root用户,那么用以下命令:
su或su -
用户名root可以省略不写。
切换回root用户时要输入root密码。一般直接输入exit命令来切换回root用户,这样就不用输入密码。
1、为什么Linux里使用FTP提示没有找到命令
没有安装ftp客户端就会提示没有该命令。
[[email protected] etc]# rpm -qa |grep ftp ---检查是否安装了ftp
2、vsftpd是提供ftp服务的相当于是服务端,但是它不提供ftp命令
两者集合 yum -y install vsftpd ftp (安装)
3. 连接ftp服务器 在命令上中先输入ftp
然后空格跟上 FTP 服务器的域名 ‘domain.com‘ 或者 IP 地址
格式:ftp [hostname| ip-address]
a)在linux命令行下输入:ftp 10.18.34.115
b)服务器询问你用户名和口令,分别输入yint和相应密码,待认证通过即可。
或者用下面的格式
ftp -i -n IP_ADDRESS
之后输入
user USERNAME PASSWORD
比如:
ftp -i -n 172.17.17.17
user PUB 123456
之后,终端会返回如下的信息:
230Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
表示登录成功。
如果时间过长未操作,会断开连接,则需要启动ftp会话
open命令用于打开一个与远程主机的会话。该命令的一般格式是:open 主机名/IP
4、目录操作FTP 命令可以列出、移动和创建文件夹,如同我们在本地使用我们的电脑一样。ls
可以打印目录列表,cd
可以改变目录,mkdir
可以创建文件夹。
使用安全设置列出目录
ftp>ls
服务器将返回:
200 PORT command successful.Considerusing PASV.
150Here comes the directory listing.
directory list
....
....
226Directory send OK.
5、改变目录可以输入:
ftp>cd directory
服务器将会返回:
250Directory succesfully changed.
6、
pwd:显示目前远端所在目录(lpwd 显示本地目录)。
7、使用 FTP 下载文件
在下载一个文件之前,我们首先需要使用lcd
命令设定本地接受目录位置。
lcd /home/user/yourdirectoryname
如果你不指定下载目录,文件将会下载到你登录 FTP 时候的工作目录。
现在,我们可以使用命令 get 来下载文件,比如:
get filename
文件会保存在使用lcd命令设置的目录位置。
服务器返回消息:
local:file remote:file
200 PORT command successful.Considerusing PASV.
150Opening BINARY mode data connection forfile(xxx bytes).
226File send OK.
XXX bytes received in x.xx secs (x.xxx MB/s).
8、下载多个文件可以使用通配符及 mget
命令。例如
mget *.sh
9、 使用 FTP 上传文件
完成 FTP 连接后,FTP 同样可以上传文件
使用 put
命令上传文件:
put file
当文件不再当前本地目录下的时候,可以使用绝对路径:
put /path/file
同样,可以上传多个文件:
mput *.xls
10、关闭 FTP 连接
完成FTP工作后,为了安全起见需要关闭连接。有三个命令可以关闭连接:
bye
exit
quit
任意一个命令可以断开FTP服务器连接并返回:
221Goodbye
以上是关于SHELL脚本切换用户需输入密码的主要内容,如果未能解决你的问题,请参考以下文章