shell切换用户

macOS查看切换当前用户和shell 1. 查看和切换用户 查看当前用户 w 切换到用户user2 su - user2 切换到root sudo -i 2. 查看和切换shell 查看当前shell(默认是/bin/bash) echo $SHELL 切换到/bin/zsh(需要重启终端) chsh -s /bin/zsh 切换到/bin/bash(需要重启终端) chsh -s /bin/bash... 阅读详情

背景:升级现网,开发提供的升级指导书命令过多,考虑放到一个脚本中一次执行;需要在/opt或/usr下新建备份目录,业务用户没有权限,考虑用root用户一次执行脚本

问题:root用户执行脚本时有su - xx后退出业务用户,此时exit不起作用

问题原因:su后会打开业务用户子shell,命令都是在子shell中执行了,所以脚本中的exit没有用,参见如下,后面跑的shellx是su后启动的-csh的子进程

root     14194 28625  0 Apr26 pts/1    00:00:00 su - mone
mone     14195 14194  0 Apr26 pts/1    00:00:00 -csh
mone      3797 14195  1 15:19 pts/1    00:00:00 /bin/ksh /home/mone/cluster/shellx
问题解决:

1.使用su - xx -c xxx完成
2.使用EOF并输入交互式内容

方法1在命令较少情况下比较适用 ,如su - mone -c p

方法2解决示例如下:

su - mone << EOF
p
ls
df -m
EOF

“<<EOF“表示后续的输入作为子命令或子shell的输入,直到遇到”EOF“,再次返回到主调shell,实际上在产品的数据库升级脚本执行中也采用了类似方法。

以上代码也可以将EOF换为!!,即

su - mone << !!
p
ls
df -m
!!
如果有多次跳转,比入要切换到oracle然后执行sql呢?也可以,以不同的分隔符表示即可,如EOF1,EOF


linux shell操作- 03 用户切换及shell案例 linux ; su;sudo; shell;sed; 阅读详情

相关推荐

Jsch批量执行多条命令,包含切换用户输入密码

参考expect4j的交互式操作方式控制输入输出流实现批量执行多条shell命令同时支持切换用户输入密码提权执行命令输入密码等操作 有完整的测试用例,便于理解 模板化执行命令示例 [$]send[su - root] [Password:]password[123456] [#]send[cd /etc] [#]send[] [#]send[] [#]send[exit] [$]send[exit] 具体模板参数意义下载解压缩后查看batch.list中有解释

Shell脚本切换root用户或获取root权限

前言 需求:Shell脚本不能通过root用户执行,只能通过普通用户执行。但是脚本中的某些命令需要时root权限。 想法:在执行需要root权限的命令时切换到root用户 或者 拿到root权限。 切换root用户 1、安装expect yum install -y expect 2、编写脚本 (3条消息) 解决linux下sudo更改文件权限报错xxxis not in the sudoers file. This incident will be reported._心之所向,一如既

大话家的博客 2万+

Shell脚本中实现切换用户并执行命令操作

主要介绍了Shell脚本中实现切换用户并执行命令操作,看了示例代码就秒懂了,原来如此简单,需要的朋友可以参考下

linux shell 切换到ROOT用户

#!/bin/bashexpect -c " set timeout 1000 spawn /bin/su - root expect \":" send \"12360.cn\n\" interact" 转载于:https://www.cnblogs.com/lvdongjie/p/4...

weixin_30825199的博客 3338

京东联盟API实战:5分钟搞定商品返利链接生成(附Python代码)

本文详细介绍了如何利用京东联盟API快速构建自动化商品返利链接生成系统。通过Python代码实战,从API申请、环境配置到核心功能封装,手把手教你实现批量商品信息查询与推广链接生成,帮助内容创作者和开发者大幅提升电商推广效率。

weixin_29216957的博客 673

数字IC后端PPA优化实战:Innovus中Timing一致性策略与Module Region布局技巧

本文深入探讨了数字IC后端设计中PPA优化的核心挑战,重点解析了Innovus与PrimeTime之间Timing不一致的根本原因。通过实战案例,详细介绍了在Innovus中设置Timing Margin、Derate以及RC Scale Factor等关键策略,以校准时序视图。同时,文章分享了利用Module Region进行物理布局规划的技巧,将关键模块约束在最优区域,并结合Group Path等进阶方法,有效提升时序收敛效率与PPA结果的可预测性。

f9g0h的博客 2686

adb的常用命令

adb使用

qq_37776700的博客 2754

Apollo MPC横纵向耦合控制学习笔记

Apollo MPC横纵向控制原理学习笔记

weixin_39199083的博客 1万+

shell脚本切换用户权限到root

这个解决方案是用于将普通用户权限切换到root权限,不是脚本内执行的,脚本内切换权限的没那么麻烦。ddddd换为sudo密码即可。切换root密码权限的语句也可以根据环境的不一样来修改。

网络安全领域优质创作者 4835

k最近邻算法——电影分类及案例详解

如图3-7所示,若将国际象棋棋盘放在二维直角坐标系中,格子的边长定义为1,坐标的x轴及y轴和棋盘方格平行,原点恰落在某一格的中心点,则王从一个位置走到其他位置需要的步数恰为二个位置的切比雪夫距离,因此切比雪夫距离也称为棋盘距离。关于这里的距离度量,这个电影分类的例子有2个特征,也就是2维的,可以使用我们高中学过的两点距离公式(两点距离公式其实就是欧氏距离在二维空间上的公式,也就是欧氏距离n的值为2的情况,欧氏距离也称为欧几里德距离)来计算距离,如图3-3所示。对数据进行归一化,避免量纲对计算距离的影响。

ZhShy 4552

一文速览:大模型语料构建与基础训练全流程实战指南

因为模型只有看到足够丰富、高质量的数据,才能真正学到“真本事”,展现出更强大的泛化能力,也就是能够在全新的场景和任务下,做出准确的推理和判断。我们日常做饭的时候,通常会先把买回来的菜仔细清洗干净,把坏掉的叶子、泥土、杂质等去除掉。同理,训练大模型的数据就像我们的食材,如果不干净,就会影响模型的学习效果,甚至训练出逻辑紊乱的模型。在大模型的世界里,有一句名言:“Garbage in, Garbage out”,翻译过来就是“垃圾输入,垃圾输出”,说白了,就是给模型喂的是什么数据,它学到的就是什么知识。

master_hunter的博客 1667

JSch切换用户运行命令

JSch执行切换用户的命令后,如果关闭连接,再次打开还是使用当前用户运行命令。 所以我们需要直接在切换用户的时候直接运行命令 try{ JSch jsch = new JSch(); // 创建JSch对象 String username="root"; String host="127.0.0.1"; int port=22; String password="*******"; Session session = jsch.getSession...

Mr_xiaohzh的博客 1627

BevFusion (1): 传感器介绍

激光雷达,也称光学雷达(LIght Detection And Ranging)是激光探测与测距系统的简称,它通过测定传感器发射器与目标物体之间的传播距离,分析目标物体表面的反射能量大小、反射波谱的幅度、频率和相位等信息,从而呈现出目标物精确的三维结构信息。激光雷达是自动驾驶车辆的关键传感器,如下图所示,车辆上方旋转的圆柱体对应就是激光雷达传感器。

@bangbang的博客 1474

shell 切换用户

# For SELinux we need to use ‘runuser‘ not ‘su‘ if [ -x "/sbin/runuser" ]; then SU="/sbin/runuser -s /bin/sh" else SU="/bin/su -s /bin/sh" fi 如果想要切换用户并且执行一些组件的shell应该使用以下的命令 /bi...

mn_kw的博客 2116

基于Python实现身份证信息识别

身份证是一种重要的证件,包含了个人的基本信息,如姓名、性别、出生日期、住址等。在实际应用中,有时需要对身份证进行自动化的识别,以提高工作效率和准确性。本文将介绍如何使用Python实现身份证信息的识别,通过图像预处理、OCR技术和解析算法,实现对身份证号码和其他信息的提取和解析。

商务合作 / 项目定制 / 学习交流。个人vx:lovely_wml 1万+

livox雷达斜装修改

指的是,使用外部的陀螺仪的话,雷达到外部陀螺仪的转换,而mid360的陀螺仪是内置在360里面的,且方向和点云方向是一致的,所以不能通过修改此处去改变陀螺仪方向。同时livox_ros_driver2中的MID360_config.json里面的。这里面的外参,只能改变点云相对陀螺仪的位姿,而不能将陀螺仪映射到你期望的倾斜角度。fast_lio中的mid360.yaml中的外参。

z1872385的博客 2707

shell 脚本之切换用户

 用su - 用户 -c 命令格式来执行. 有时候需要切换到root用户做一些操作,如果你的用户没有添加sudo权限,那么在脚本中实现就需要使用expect命令了, 具体实现如下: #!/usr/bin/expect spawn su root expect "Password:" send "rootpassword\n" interact expect eof exit Bash代码 #!/bin/..

u011250186的博客 9533

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

shell 切换用户执行命令

有时候在自动化部署的时候,我们可能需要远程在目标服务器执行一些命令。有可能会涉及到切换用户的操作,可以适用 EOF 来实现 #!/bin/bash sudo su - <<EOF touch /tmp/whotest EOF 远程执行一些命令和切换用户执行命令和脚本: ssh 10.240.34.165 'ls /tmp'; ssh 10.240.34.165 'sudo mv...

cpxsxn的博客 2945

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

shell脚本中切换用户执行相应的命令或者shell脚本的方法

此时执行的test.sh中相关命令要在bin/sh下,换句话说,bin/sh支持的命令才能执行。当然我们可以将结果重定向到其他的文件中,执行后对文件再次进行分析,找到我们自动化执行的所需结果。通常在执行自动化过程中可能需要将root用户切换到其他用户进行执行,如:oralce。但是,执行的命令又要回到root用户下,继续执行root用户下的其他命令。执行:sh test.sh 或 . test.sh 或 ./test.sh。按[Esc]键,输入:wq,回车保存退出。如:vi test.sh输入下面内容后。

wozijisunfly的专栏 1021

shell 脚本切换用户执行当前脚本命令

**问题背景:** > 在使用公司平台执行一个 `informix` 查询的 `shell` 脚本时,平台默认使用 `root` ,但是在具体情况下,使用 `root` 会出现一些特别的权限及路径问题,在没使用平台的情况下,是切换指定用户之后执行的脚本。 **问题需求**: > 在使用平台执行脚本时默认使用 `root` 这里没有办法修改,所以就需要在脚本中切换用户,切换用户之后继续执行余下的脚本内容。就类似于在脚本的开头第一行执行 `su - username` 之后,脚本中余下的所有命令都是在 `us

D的博客 8335

在shell脚本中切换用户之后再执行多个函数以及执行多行命令的方法和遇到的问题

这是因为whoami命令是根据当前进程的有效用户ID来确定当前用户的身份的,而在切换用户后,当前进程的有效用户ID并没有改变,仍然是切换前的用户ID。其中,username为需要切换到的用户,/path/to/script.sh为脚本文件的路径,functionName为需要执行的函数名,parameter1和parameter2为函数需要传递的参数。如果需要执行多个命令,可以使用expect的send命令来发送命令,并使用expect的expect命令来等待命令执行完成。

王轩的博客 8304

如何在shell下切换用户执行命令?

如何在shell下切换用户执行命令? su - dev -c "ls" ? “su -”切换用户,并且当前目录页切换到相应用户的根目录。“dev”是用户名“-c"后面接需要执行的shell comman

1万+

shell su oracle,Linux Shell中切换用户 su与su - 的区别

在Linux Shell中遇到这么一个问题,在Oracle用户下运行一个shell,运行过程中需要切换到另外一个用户(load),删除该用户的一些文件。大致思路如下(shell脚本的一部分):passwd=loadsu - load <$passwdcd ~/backuprm *.txtexit!顺便讲下su 和 su - 的区别‍前者只是切换了身份,但SHELL环境仍然是原用户的SHELL...

weixin_39720003的博客 438

shell 中用户切换

1. 常常用一个用户的脚本切换到另一个用户下执行相应的命令, 例如: 用root 用户执行的时候,sqlplus 等命令会报找不到相应命令 如果你能用root 用户执行,切换用户很简单: s...

clugcpne10995的博客 295

通过python实现linux切换用户_Shell脚本中实现切换用户并执行命令操作

今天公司同事来找到我说要在服务器上用另外一个用户执行python脚本,但设置到crontab里却老是root用户来执行,为了省事我就想了一个偷懒的办法,就是用shell脚本切换到那个用户,然后去执行那个python脚本.好了,这篇文章我只演示怎么用shell脚本切换到其他用户执行命令.系统:centos 5.x脚本内容:cat test.sh复制代码 代码如下:#!/bin/bashsu - te...

weixin_39788969的博客 1391
上一篇: Linux dos2unix命令
下一篇: session机制详解
coder_xia
博客等级 码龄17年 151粉丝 143原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值