shell登陆问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell登陆问题相关的知识,希望对你有一定的参考价值。

怎么用脚本自动登录呢
比如我有aa,bb用户,密码分别对应aa,bb
我在aa用户上想切换登录到bb
命令是 su - bb,然后提示要输入密码bb
现在我想用一个脚本直接执行就能登陆到bb不需要交换输入密码,应该怎么做?
希望能从原理上讲述。。。。谢谢,
#!/bin/bash
su - bb<bb.txt
bb.txt里面输入的是bb
执行后报错standard in must be a tty

根据报错信息,该登录用户要求一个tty设备。基于安全策略,这是默认设置。


所以,可以在/etc/sudoers文件中加上下面这句试试:

Defaults:bb !requiretty

 

或者,不修改任何东西,直接用Expect脚本。Expect是交互式脚本的首选。

#!/usr/bin/expect
spawn su - bb
expect "assword: " #前面的p小写大写都无所谓
send "bb\\r"
expect eof
exit

参考技术A 下面有如此正确的回答楼主也不采纳,
楼主做人要厚道啊.

Bash shell的配置文件

    Bash 的配置文件:  
                 两类: 
                             Profile 类:为交互式登陆的 shell进程提供配置 
                             Bashrc 类:为非交互式登陆的 shell进程提供配置 
                    登陆类型: 
                          交互式登陆 shell进程: 
                            直接通过某终端输入账号和密码后登陆打开的 shell进程: 
                         使用 su命令:su – centos ,或者使用 su -l centos 执行的登陆切换; 
                    非交互式登陆 shell进程: 
                            Su centos 执行的登陆切换; 
                            图形界面下打开的终端; 
                            运行脚本 
                 Profile 类: 
                                 全局:对所有用户都生效; 
                                /etc/profile   /etc/profild.d/*.sh 

                                用户个人:仅对当前用户有效; 
                                ~/.bashrc 

                功用: 
                                1. 定义本地变量; 
                                2. 定义命令别名; 
                                注意:仅管理员可修改全局配置文件; 

                            交互式登陆 shell进程: 
                            /etc/profile-->/etc/profile.d/*-->~/.bash_profile-->/.bashrc-->/etc/bashrc 

                            非交互式登陆 shell进程: 
                             ~/.bashrc-->/etc/bashrc-->/etc/profile.d/* 
                            命令行定义的特性,例如变量和别名作用域为当前 shell进程的生命周期; 
                            配置文件定义的特性,只对随后新启动的 shell 进程有效; 

                        让通过配置文件定义的特性立即生效; 
                                    (1) 通过命令行重复定义一次; 
                                    (2) 让 shell进程重读配置文件; 

以上是关于shell登陆问题的主要内容,如果未能解决你的问题,请参考以下文章

linux远程登陆的shell脚本for循环无结果

Shell脚本:使用SSH登陆并更改密码

Bash shell的配置文件

Shell登陆

shell脚本ssh自动登陆服务器

如何在shell下免密码快速登陆MySQL数据库?