精华内容
参与话题
问答
  • #Script Description: Host login shell #清屏 clear #输入用户名 echo -n -e "Login: " read #输入密码 echo -n -e "Password: " read ================================================...

    #!/bin/bash

    #Author: SHI

    #Created Time: 2020/05/09

    #Script Description: Host login shell

     

     

     

    #清屏

    clear

     

    #输入用户名

    echo -n -e "Login: "

    read

    #输入密码

    echo -n -e "Password: "

    read

     

     

     

     

    ====================================================================

    read命令

    默认接受键盘的输入,回车符代表输入结束

    read 命令选项

    -p打印信息

     

    -t限定时间

     

    -s不回显

     

    -n输入字符个数

    展开全文
  • 1、以登录shell切换用户 su - username 登录式shell读取配置文件及其顺序: 1 /etc/profile 2 /etc/profile.d/*.sh 3 ~/.bash_profile 4 ~/.bashrc 5 /etc/bashrc 2、以非登陆式shell切换用户 ...

    1、以登录式shell切换用户

    su - username

    登录式shell读取配置文件及其顺序:

    1 /etc/profile
    2 /etc/profile.d/*.sh
    3 ~/.bash_profile
    4 ~/.bashrc
    5 /etc/bashrc

     

    2、以非登陆式shell切换用户

    su username

    非登陆式shell读取配置文件及其顺序:

    1 ~/.bashrc
    2 /etc/bashrc
    3 /etc/profile.d/*.sh

     

    附:bash配置文件

    1、全局配置文件

    /etc/profile
    /etc/profile.d/*.sh
    /etc/bashrc

    2、用户个人配置文件

    ~/.bash_profile
    ~/.bashrc

    其中:

    profile类配置:设置环境变量,执行登陆后自动运行的命令或脚本

    bashrc类配置:设定本地变量,设定别名

     

    转载于:https://www.cnblogs.com/imzye/p/5130199.html

    展开全文
  • 入门学习Linux常用必会60个命令实例详解doc/txt

    千次下载 热门讨论 2011-06-09 00:08:45
    在系统关机前使用 shutdown命令,系统管理员会通知所有登录的用户系统将要关闭,并且login指令会被冻结,即新的用户不能再登录。 halt 1.作用 halt命令的作用是关闭系统,它的使用权限是超级用户。 2.格式 halt...
  • SHELL类型切换

    千次阅读 2013-12-16 11:16:22
    通过chsh -s /bin/sh 更改当前用户的SHELL类型时,只有在重新登录该用户之后才会有效。 从bash切换到sh后,所有bash内置的环境变量和特效都会消失,如Tab补全、source命令、SHELL版本信息(usrname@hostname)和↑...

    通过chsh -s /bin/sh 更改当前用户的SHELL类型时,只有在重新登录该用户之后才会有效。

    从bash切换到sh后,所有bash内置的环境变量和特效都会消失,如Tab补全、source命令、SHELL版本信息(usrname@hostname)和↑、↓、←、→键等。

    展开全文
  • 1、通过expect批量shell实现交互登录普通用户,切换root用户,并执行shell语句。 2、python实现 三、shell实现 ps:感觉白写了,交互速度大概5秒一台。建议用python实现 [root@jumpserver s...

    一、环境介绍

    对300台服务器进行登录,增加jumpserver管理里用户。由于所有服务器root禁止登录,导致需要多层交互。

    二、思路

    1、通过expect批量shell实现交互登录普通用户,切换root用户,并执行shell语句。
    2、python实现

    三、shell实现

    ps:感觉白写了,交互速度大概5秒一台。服务器数量大于50,建议用python实现。

    1.功能脚本

    [root@jumpserver shell_sctipt]# cat shell_rebound.exp
    #!/usr/bin/expect
    
    set sentence1 [lindex $argv 0]
    set sentence2 [lindex $argv 1]
    set sentence3 [lindex $argv 2]
    spawn ssh saas@$sentence1
    
    expect  "password:"
    if { $sentence1==$sentence1 } {
    send "$sentence2\r"
    }
    
    expect "$" 
    if { $sentence1==$sentence1 } {
    send "su root\r"
    }
    
    expect  "password:"
    if { $sentence1==$sentence1 } {
    send "$sentence3\r"
    }
    
    expect "#" 
    if { $sentence1==$sentence1 } {
    send "useradd olym_jumpserver
    su olym_jumpserver
    cd ~/
    mkdir .ssh
    chmod 700 .ssh
    cd .ssh/
    (cat << EOF
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDhzIuxp6WPSZJ02ImwUFl/TqMjerbKIZIaEd6FB4ETRpspyLYCPA/1oJ4N2HDMe+RFYPsp4u8geni2VxvMx2LkABUfUrRnDgStCsFdQjHduE1wVSvEoYD0EmaqInbh4wkUYLdU+3iizrV+vr2wH6chAhRf+iDSq35x58QV5pxtfS6UrqhWabQUjFcJfLNAgLUr5xSRJwie2V4VVkSFrFbJgPMUob1CO7ISpXWvseq5H8cRPu08tNXjC21HCK5vIFtoFPcTzIxfHCIhcfa/ey1EpEVr0yKwACzKyub4DmwonFxcpO/ErsqhO/AVDp9HzMuc4/x3eiuti4OH8DuqbgHr olym_jumpserver@izwz98ft7tasnlfweupijmz
    EOF
    ) > /home/olym_jumpserver/.ssh/authorized_keys
    chmod 600 /home/olym_jumpserver/.ssh/authorized_keys
    exit
    chmod 700 /etc/sudoers
    echo 'olym_jumpserver ALL=(ALL)       NOPASSWD: ALL' >> /etc/sudoers
    chmod 400 /etc/sudoers\r"
    }
    
    expect eof
    

    可以直接测试执行,或者再写一层调用方脚本

    expect shell_rebound.exp 10.29.185.159 Kxvhanabcd f9e_dnoabcd

    2.调用脚本

    #!/bin/bash
    ##create by xingcheng
    ##20180608
    
    #setup1:
    #变量
    num=0 #用于计算读取saas和root密码的索引
    ip_list0=(10.160.33.139 10.160.35.135 10.160.34.114 10.173.225.80) #xxx
    ip_list1=(10.171.194.133 10.168.142.10) #xxx
    ip_list2=(10.117.198.171 10.117.190.163 10.168.111.133 10.168.111.53 10.117.203.57 10.117.186.10 10.168.217.51 10.117.28.183) #xxx
    ip_list3=(10.117.14.254 10.117.216.72 10.117.199.196) #xxx
    ip_list4=(10.168.166.201) #xxx
    ip_list5=(10.25.67.203 10.51.18.254 10.51.24.30 10.51.19.199 10.161.141.119 10.117.215.34 10.175.202.149 10.51.0.162 10.251.236.43 10.162.72.86 10.162.60.92 10.168.115.68 10.168.114.246 10.117.21.209 10.168.220.150 10.168.25.117 10.168.64.114 10.168.14.218 10.252.127.189 10.132.70.114 10.122.68.241 10.251.249.135 10.161.231.223 10.162.57.104 10.132.11.130)  #xxx
    ip_list6=(10.168.19.142 10.162.96.34) #xxx
    ip_list7=(10.165.101.149 10.160.4.181 10.161.218.92 10.161.179.88) #xxx
    ip_list8=(10.162.103.18 10.51.0.124 10.252.164.128 10.251.255.128)  #xxx
    saas_pass=('Kxxxxxj2' 'uxxxxxZ' 'bxxxxxi' 'qxxxxx(' 'Qxxxxxx#' 'nxxxxxd' 'FxxxxxS' 'wxxxxxxd' 'txxxxxq')  #如果含有特殊字符,要结合集体情况决定使用单引号还是双引号。这里非常容易导致脚本报错,或登录异常。
    root_pass=('Lxxxxxh' "_B4xxxxxL" LxxxxxxS
     'qu4&lB<b{R&(' 'QrxxxxxC#' 'qxxxxr#' 'Yxxxxk' 'txxxxx9' 'hyxxxxxe') #如果含有特殊字符,要结合集体情况决定使用单引号还是双引号。这里非常容易导致脚本报错,或登录异常。
    #例如:root_pass=("L.f9e_h" "_B45N8\A=/&+S>C'z9J34eHL" 'LgC#sdfd!GoS' "I6E2deebSjPau" "v3qsdAH#xxj" 'qa34er#$YJT90' "YNwwewSXyLTgDKWk")
    
    #setup2:
    IP_LIST=()
    for I in $(seq 0 8)
    do
      IP_LIST[$I]=ip_list$I
    done
    echo ${IP_LIST[@]}
    
    #函数
    next(){
    for N in $(seq 0 $(eval echo $(echo '${#'$ip_list'[@]}'))) #计算数组元素个数并进行遍历
    do
    #   echo $(eval echo '${'$ip_list'[$N]}') saas ${saas_pass[$num]} ${root_pass[$num]}
       expect shell_rebound.exp  $(eval echo '${'$ip_list'[$N]}')  ${saas_pass[$num]} ${root_pass[$num]}
    done
    let num+=1
    if [ $num -eq 9 ];then
      exit
    fi
    
    }
    
    first(){
    num1=0  #用于表示所有数组,便于复制数组
    for K in $(echo ${IP_LIST[@]})
    do
      ip_list=( ${IP_LIST[$num1]} )  #数组复制
      eval echo  '${'$ip_list'[@]}' #这里是数组名引用变量得用法
      let num1+=1
      next
    done
    }
    
    #setup3:
    first
    
    
    

    四、决定换python实现

    [root@jumpserver python_script]# cat !$
    cat python_rebound.py
    #!/usr/bin/env python
    
    import time, paramiko, sys 
    
    def verification_ssh(host,username,password,port,root_pwd): 
        cmd='''useradd olym_jumpserver
    su olym_jumpserver
    cd ~/
    mkdir .ssh
    chmod 700 .ssh
    cd .ssh/
    (cat << EOF
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDhzIuxp6WPSZJ02ImwUFl/TqMjerbKIZIaEd6FB4ETRpspyLYCPA/1oJ4N2HDMe+RFYPsp4u8geni2VxvMx2LkABUfUrRnDgStCsFdQjHduE1wVSvEoYD0EmaqInbh4wkUYLdU+3iizrV+vr2wH6chAhRf+iDSq35x58QV5pxtfS6UrqhWabQUjFcJfLNAgLUr5xSRJwie2V4VVkSFrFbJgPMUob1CO7ISpXWvseq5H8cRPu08tNXjC21HCK5vIFtoFPcTzIxfHCIhcfa/ey1EpEVr0yKwACzKyub4DmwonFxcpO/ErsqhO/AVDp9HzMuc4/x3eiuti4OH8DuqbgHr olym_jumpserver@izwz98ft7tasnlfweupijmz
    EOF
    ) > /home/olym_jumpserver/.ssh/authorized_keys
    chmod 600 /home/olym_jumpserver/.ssh/authorized_keys
    exit
    chmod 700 /etc/sudoers
    echo 'olym_jumpserver ALL=(ALL)       NOPASSWD: ALL' >> /etc/sudoers
    chmod 400 /etc/sudoers
    '''
        s=paramiko.SSHClient()  
        s.load_system_host_keys()  
        s.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
        s.connect(hostname = host,port=int(port),username=username, password=password) 
        if username != 'root': 
                ssh = s.invoke_shell() 
                time.sleep(0.1) 
                ssh.send('su - \n') 
                buff = '' 
                while not buff.endswith('Password: '): 
                    resp = ssh.recv(9999) 
                    buff +=resp 
                ssh.send(root_pwd) 
                ssh.send('\n') 
                buff = '' 
                while not buff.endswith('# '): 
                    resp = ssh.recv(9999) 
                    buff +=resp 
                ssh.send(cmd) 
                ssh.send('\n') 
                buff = '' 
                while not buff.endswith('# '): 
                    resp = ssh.recv(9999) 
                    buff +=resp
                s.close() 
                result = buff
        else:
            stdin, stdout, stderr = s.exec_command(cmd)
            str=''.join(stdout.read())
            print str
            result = stdout.read() 
            s.close()
        return result
    
    def main():
        host = sys.argv[1]
        username = sys.argv[2]
        password = sys.argv[3]
        root_pwd = sys.argv[4]
        verification_ssh(host,username,password,22,root_pwd)
    
    
    
    if __name__ == "__main__": 
       main()
    

    可以参照这个
    https://www.linuxidc.com/Linux/2016-08/134607.htm

    展开全文
  • CMD命令:开始->运行->键入cmd或command(在命令行里可以看到系统版本、文件系统版本) 命令大全 1. gpedit.msc-----组策略 2. sndrec32-------录音机 3. Nslookup-------IP地址侦测器 ,是一个 监测网络中 DNS...
  • 数字证书:从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录 一个Java+ajax写的...
  • linux切换shell

    2017-04-10 22:19:00
    1. $SHELL这一环境变量用于保存当前用户使用的shell,所以我们可以输出...3. 使用chsh可以切换当前用户使用的登录shell,比如我当前使用的是bash,我想改为sh: 4. 你以为这就完了吗?不!我们再输出一次$SHELL...
  • 如题,怎么在脚本里面从root切换到普通用户,执行ssh远程登录命令操作其他主机,因为我的主程序必须在root下跑,而root是不允许ssh远程登录别的主机的
  • #!/bin/bash expect -c " spawn su - expect \":\" send \"yourpassword\r\" interact " 当然安全性会降低,root用户的密码是明文的容易暴漏。
  • 登录shell:用户登录linux主机后(取得了登录shell)由于需要启动执行的shell,如:用su切换用户后取得的shell;在登录shell中。 这两者在配置文件的执行顺序有着很大区别:  1、 登录shell配置文件执行...
  • 登录shell:通过终端登录su - USERNAME非登录shell:su USERNAME(用su切换用户,不带参数)GUI下打开命令窗口自动执行的shell脚本(使用at, crontab, anacron等)bash的配置文件:全局配置:/etc/profile,/et...
  • 问题描述:在Linux系统中,使用useradd命令新建用户后,登录该用户时shell开头为$,不显示用户名和路径只显示$ 解决方法: 切换到root用户: su 现在给刚刚新建的用户添加bin/bash 如果你的用户名为 haha则 ...
  • │ 75-用户管理-06-usermod指定用户登录shell │ 76-用户管理-07-which查看命令所在位置 │ 77-用户管理-08-su切换用户 │ 78-用户管理-09-权限命令介绍和chown/chgrp演练 │ 79-用户管理-10-chmod的数字表示法介绍...
  • chsh命令 用户和工作组管理 《Linux就该这么学》是一本基于最新Linux系统编写的入门必读...chsh命令用来更换登录系统时使用的shell。若不指定任何参数与用户名称,则chsh会以应答的方式进行设置。 语法 chsh...
  • 作为与内核交互的工具shell,主要有 bsh , bash(BourneAgain Shell) , ksh(Korn Shell) , C Shell以及之后的许多变种 ...切换后,需要重新登录 才能生效。通过echo $SHELL可以查看当前使用的shell类型。
  • 对于开发人员来说大多数时候都需要登录linux服务器,每次需要输入密码很是麻烦,shell脚本可以将每次输入验证步骤简化,只需要切换到脚本所在目录,输入“ ./ ssh_login.sh”即可实现自动登录
  • JAVA上百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
     当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。  QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...
  • 使用expect实现自动登录的脚本,网上有很多,可是都没有一个明白的说明,初学者一般都是照抄、收藏。可是为什么要这么写却不知其然。本文用一个最短的例子说明脚本的原理。 脚本代码如下: ########################...
  • 关于用户的切换,大家应该都不会觉得陌生,在实际的操作中,经常会切换到不同的用户环境中进行操作,为什莫会有这样的要求呢?因为在入行的时候,可能都会有一些老师傅在提醒我们:平时千万不要使用root用户登录啊,...
  • # .bash_history,.bash_logout,.bash_profile,.bashrc/etc/profile 全局.bash_history 记录当前登录用户历史操作的命令.bash_logout 当前用户登出时执行的命令.bash...举例:root用户切换到oracle用户# 1.交互式登录...
  • shell 登录 .bash_profile

    2018-04-16 17:01:00
    shell登录两种方式 交互式登录: 1,直接通过终端输入账号密码登录 2,使用 "su - UserName" 切换的用户 执行顺序:/etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~...
  • linux用户创建

    2013-11-25 12:00:14
     此命令新建了一个用户gem,该用户的登录Shell是/bin/sh,它属于group用户组,同时又属于adm和root用户组,其中group用户组是其主组。  增加用户账号就是在/etc/passwd文件中为新用户增加一条记录,同时更新其他...
  • 切换用户,每次输入密码,比较麻烦,可以使用脚本交互式登录实现,每次只要输入./su_ 并tab,执行此脚本,即可切换至root用户,比较简单。如下: hao@hao-ubuntu:~$ cat su_root.sh #!/usr/bin/expect set timeout 3...

空空如也

1 2 3 4 5 ... 20
收藏数 681
精华内容 272
关键字:

登录shell切换