shell脚本中如何全自动创建目录或文件

在我们写shell脚本,每当想创建目录或文件时,经常会遇见权限不足的问题,用sudo命令每次又要输入密码.那我们该怎么办呢?

方法一:给用户权限,既然你权限不足那我就给你权限. 优点:简单直接 

# 用管理员权限编辑 /etc/sudoers 文件
vim /etc/sudoers
#在文件中添加如下内容
用户名称    ALL=(ALL)    NOPASSWD: /bin/mkdir  #表示用户拥有所有sudo创建目录的权限且不用输入密码
用户名称    ALL=(ALL)    NOPASSWD: /bin/touch  #表示用户拥有所有sudo创建文件的权限且不用输入密码

方法二:使用expect,优点:所以用户都可以用 缺点:因为他会把密码写在脚本中,所以不安全,可以把该脚本设置部分人能查看权限

#!/usr/bin/expect -f

# 设置超时时间(秒)
set timeout 30

# 启动 sudo 命令
spawn sudo mkdir -p /path/to/new_directory

# 期望 "password" 提示并发送密码
expect {
    "*?assword:*" { send "你的密码\r" }
    # 如果没有密码提示,则认为命令成功执行
    timeout { puts "No password prompt, command executed successfully." }
}

# 等待命令完成
expect eof

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值