linux - 如何从 bash 脚本中删除 root 拥有的文件?

标签 linux bash

我想从非特权用户拥有的简单脚本中删除 root 用户拥有的文件 (/var/lib/pacman/db.lck):

#!/bin/bash
rm -f /var/lib/pacman/db.lck

但我不想使用 sudo 运行脚本,以避免每次以非特权用户身份执行脚本时都输入密码。为了实现这一点,我设置了 s 位:

-rwsrwsrwx  1 popov  users       41 04.02.2015 10:35 unlock.sh

但是在运行脚本之后我得到了

rm: cannot remove ‘/var/lib/pacman/db.lck’: Permission denied

看来我错误地理解了s位的用途。

所以问题是:如何设置脚本权限(和/或脚本的所有权),让脚本在非特权用户调用时删除 root 拥有的文件?

最佳答案

如果问题是 sudo 询问密码,您可以使用此命令使用“NOPASSWD”选项配置 sudo。类似的东西:

joe ALL=(ALL) NOPASSWD: /full/path/to/command

关于linux - 如何从 bash 脚本中删除 root 拥有的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28319105/

相关文章:

linux - 无法使用 genhtml 合并覆盖率数据

c++ - pthread_getspecific(key) 得到的不是 NULL 结果,但没有调用 pthread_setspecific(key),为什么?

linux - 命令运行时执行循环

linux - NDepend 是否在 Mono/Linux 上运行?

linux - Golang : What is etext?

linux - 在 docker windows 上运行 linux 容器

regex - 为什么 grep 不匹配 "\<\-v\>"

linux - 防止使用 ./(点斜杠)启动 bash 脚本

Linux bash - 输入格式

arrays - 数组上的 Bash 子字符串扩展