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/sh
expect -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

之后,终端会返回如下的信息:

  1. 230Login successful.
  2. Remote system type is UNIX.
  3. Using binary mode to transfer files.
  4. ftp>

表示登录成功。

如果时间过长未操作,会断开连接,则需要启动ftp会话
open命令用于打开一个与远程主机的会话。该命令的一般格式是:open 主机名/IP

4、目录操作FTP 命令可以列出、移动和创建文件夹,如同我们在本地使用我们的电脑一样。ls可以打印目录列表,cd可以改变目录,mkdir可以创建文件夹。

 使用安全设置列出目录

  1. ftp>ls

服务器将返回:

  1. 200 PORT command successful.Considerusing PASV.
  2. 150Here comes the directory listing.
  3. directory list
  4. ....
  5. ....
  6. 226Directory send OK.

5、改变目录可以输入:

  1. ftp>cd directory

服务器将会返回:

  1. 250Directory succesfully changed.

6、pwd:显示目前远端所在目录(lpwd 显示本地目录)。

 

7、使用 FTP 下载文件

 

在下载一个文件之前,我们首先需要使用lcd命令设定本地接受目录位置。

 

  1. lcd /home/user/yourdirectoryname

 

如果你不指定下载目录,文件将会下载到你登录 FTP 时候的工作目录。

 

现在,我们可以使用命令 get 来下载文件,比如:

 

  1. get filename

 

文件会保存在使用lcd命令设置的目录位置。

 

服务器返回消息:

 

  1. local:file remote:file
  2. 200 PORT command successful.Considerusing PASV.
  3. 150Opening BINARY mode data connection forfile(xxx bytes).
  4. 226File send OK.
  5. XXX bytes received in x.xx secs (x.xxx MB/s).

8、下载多个文件可以使用通配符及 mget 命令。例如

  1. mget *.sh

9、 使用 FTP 上传文件

完成 FTP 连接后,FTP 同样可以上传文件

使用 put命令上传文件:

  1. put file

当文件不再当前本地目录下的时候,可以使用绝对路径:

  1. put /path/file

同样,可以上传多个文件:

  1. mput *.xls

 

10、关闭 FTP 连接

完成FTP工作后,为了安全起见需要关闭连接。有三个命令可以关闭连接:

  1. bye
  2. exit
  3. quit

任意一个命令可以断开FTP服务器连接并返回:

  1. 221Goodbye

 







以上是关于SHELL脚本切换用户需输入密码的主要内容,如果未能解决你的问题,请参考以下文章

Linux 通过 shell 脚本修改密码

Linux下的shell脚本实战之用户创建

shell 通过EOF在脚本中输入需要的用户名或密码

用shell脚本写ftp时,怎么自动填写用户名和密码,而不用执行shell脚本后手动输入用户名和密码?

shell登陆问题

shell脚本的应用——用户登录验证程序