当前位置:  技术问答>linux和unix

我想在shell中切换用户而不用输入密码,应该怎么做?

    来源: 互联网  发布时间:2016-06-17

    本文导语:  su - 用户名 老是要提示输入密码 | [test1@RHEL4_U5 software]$ /tools/bin/expect su.exp test2 manifold spawn su - test2    (...............标准输出,不用输入的) Password:(................标准输出,不用输入的...

su - 用户名
老是要提示输入密码

|
[test1@RHEL4_U5 software]$ /tools/bin/expect su.exp test2 manifold
spawn su - test2    (...............标准输出,不用输入的)
Password:(................标准输出,不用输入的)
[test1@RHEL4_U5 software]$ cat su.exp
#!/tools/bin/expect

set user [lindex $argv 0]
set passwd [lindex $argv 1]
spawn su - $user
        expect {
                "Password: " {
                        send "$passwdn";
                        exp_continue;
                }
                "su: incorrect password" {
                        send_user "su: bad user password!n"
                        return 1;
                }
                "*]#" { }
                "*]$" { }
        }
        return 0;
}

expect在我的空间有下载,包含了安装方法和说明,你试试看吧,不行的话再找我

|




             
#include  
#include 
#include 
#include 
#include 
#include 
#include 
#include 


void do_passwd( int pty, const char *passwd, const char *yes_no );

int main( int argc, char *argv[] )
{
argv[1]="yes";
argv[2]="momentx";
    int pty, slave;
    char pty_name[PATH_MAX];
    int ret;
    pid_t child;

    if ( argc !=1  ){
        fprintf( stderr, "Usage: %s   n", argv[0] );
        exit( EXIT_FAILURE );
    }

    ret = openpty( &pty, &slave, pty_name, NULL, NULL );
    if ( ret == -1 ){
        perror( "openpty" );
        exit( EXIT_FAILURE );
    }

    child = fork();
    if ( child == -1 ){
        perror( "fork" );
        exit( EXIT_FAILURE );
    }
    else if ( child == 0 ){
        close( pty );
        login_tty( slave );
        execl( "/usr/bin/sshfs", "sshfs","work@IP:/home/work/work ","./temp", NULL );
    }

    close( slave );
    printf( "pty name: %sn", pty_name );

    do_passwd( pty, argv[2], argv[1] );
    exit( EXIT_SUCCESS );
}

void do_passwd( int pty, const char *passwd, const char *yes_no )
{
    char buffer[80];
    int ret;
    fd_set reads;

    int input_passwd = 0;

    while(1){
        FD_ZERO( &reads );
        FD_SET( pty, &reads );
        ret = select( pty+1, &reads, NULL, NULL, NULL );
        if ( ret == -1 ){
            perror( "select" );
            break;
        }

        ret = read( pty, buffer, sizeof(buffer) );
        if ( ret 

    
 
 

您可能感兴趣的文章:

  • 不同类型的shell*(K SHELL , C SHELL) 用命令怎么切换?
  • 如何在shell脚本中切换目录?
  • UNIX SHELL实现su用户切换功能
  • 在shell里切换用户要怎么写呢?
  • 请问如何在SHELL脚本里切换目录?
  • 鼠标不能用的情况下,VMWARE里的redhat9怎么从X切换到shell
  • linux X-Window 切换至 shell??
  • 怎样在shell里用su来切换用户
  • SHELL脚本中su切换用户,执行脚本时如何避免出现密码输入提示??
  • 从root切换到另一个用户执行命令,shell脚本怎么写:
  • 用shell脚本实现自动切换内网和外网实现高可用
  • 如何编程实现(不用shell命令)修改文件的时间
  • shell不用awk实现列求和
  • 如何用shell语句(不用人为判断)kill掉进程列表中所有进程名为aaa的进程?
  • 如果想在任何地方都能直接调用一个shell脚本,而不用输入全路径,除了把PATH中加入该脚本父目录,还有什么做法吗?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 我在Ctrl+Alt+F1进入shell屏幕,输入vi,出来的界面不能显示中文,而在x-window的终端下输入vi后可以看到中
  • Shell输入重定向
  • 在shell文件中,有一个处理是安装一个软件,在安装过程中需要输入一次yes,现在希望能自动输入,怎么做?
  • php iis7站长之家
  • linux的命令包含有版本信息都很长,怎么样才能在Shell下输入的时候,只需要输入一部分,就可以出现整个命令!
  • 急问:怎样用shell编写脚本运行要输入密码的程序???
  • 如何在shell脚本中自动输入密码?
  • 请问各位高手,如何在c shell中从标准输入读参数然后赋给一个变量啊
  • 第一次写shell: 请问如何识别输入的字符,,拜托各位
  • linux 在shell里read num怎样判断输入的是合法的数字。?
  • 请问: 怎么把jsp中用户的输入做为参数传递给shell script?!!!!!!!!
  • shell下要模拟终端输入delete键该怎么写??
  • 求一shell代码:要求能对输入的变量进行判断即可
  • 怎么在SHELL中判断我输入的是数字
  • 请教一个shell的技巧——怎么自动输入密码?
  • shell中模拟输入
  • 在shell下如何支持中文?输入中文?
  • 如何在shell下使用汉字输入和输出?
  • 关于shell中的输入重定向符号
  • 编一个模拟shell实现的程序,怎么实现输入输出重定向?谢谢
  • Centos6下安装Shell下文件上传下载rz,sz命令
  • 我在执行shell时,想在shell里直接向mysql数据库插入数据,我该如何写shell。
  • linux bash shell命令:grep文本搜索工具简介
  • 菜鸟问问题:shell是什么呢?普通的ls、cp、pwd这些命令算不算shell呢?如何把自己写的文件变成shell呢?
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 傻瓜问题,请问shell编程和shell脚本编程的关系
  • linux bash shell命令:文本搜索工具grep中用于egrep和 grep -E的元字符扩展集
  • shell变量和子shell的问题请教
  • linux bash shell命令:文本搜索工具Grep命令选项及实例
  • 请问“当前shell”和“子shell”的区别?
  • linux bash shell命令:文本搜索工具grep正则表达式元字符集(基本集)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3