IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Shell脚本切换root用户或获取root权限 -> 正文阅读

[系统运维]Shell脚本切换root用户或获取root权限

前言

需求:Shell脚本不能通过root用户执行,只能通过普通用户执行。但是脚本中的某些命令需要时root权限。

想法:在执行需要root权限的命令时切换到root用户 或者 拿到root权限。

一、切换root用户的脚本

1、安装expect

yum install -y expect

expect 的用法参考这篇文章:

?Linux expect 介绍和用法 - 梦徒 - 博客园 (cnblogs.com)https://www.cnblogs.com/saneri/p/10819348.html

2、编写脚本

## switchRoot.sh 脚本内容

#!/usr/bin/expect
## 只有先进入expect环境后才可执行spawn

## 不论是在此脚本内自动输入密码还是在脚本外手工输入密码,至少要等待1秒
set timeout 1

## 切换root用户
spawn su root

## 判断上述进程(su kevin)的输出结果中是否有“Password”的字符串(不区分大小写)。
## 若有则立即返回,否则就等待一段时间后返回,等待时长就是开头设置的1秒
expect "Password:"

## 向上面的进程(su kevin)发送字符串中的密码, 并且自动敲Enter健(\r)
send "root123456\r"

interact

3、效果

?4、问题

当你在执行一个Shell脚本时,为了获取root权限而切换root用户时,会导致脚本中止。这显然不是我们想要的,因此我们可以选择使用 sudo 命令来临时获取root 权限。

二、获取root权限(sudo)的脚本

## sudoUser.sh 脚本内容

#!/usr/bin/expect
set timeout 1
## sudo命令会返回的提示信息的一部分
expect "password for"
## 当前用户的密码
send "dhj123456\r"
interact

注意:并非所有用户都能使用sudo命令。?

具体参考这篇文章:(4条消息) 解决linux下sudo更改文件权限报错xxxis not in the sudoers file. This incident will be reported._心之所向,一如既往-CSDN博客https://blog.csdn.net/sinat_36118270/article/details/62899093

三、测试效果

新建test.sh脚本,内容如下:

#!/bin/bash

echo "-------------- start."
## 打印root用户home目录的abc.txt文件
## 这个文件只有root能查看和修改,其他用户需要通过sudo来暂时获取root权限
sudo cat /root/abc.txt
## 调用暂时获取root权限的脚本
./sudoUser.sh
echo "------------ end."
exit

效果

参考文章:

(4条消息) 如何在linux shell脚本中自动输入密码._Tony_仔仔 的博客-CSDN博客_linux shell 输入密码https://blog.csdn.net/qq_31598113/article/details/80326973

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-03-11 22:36:33  更:2022-03-11 22:37:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 2:36:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码