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

Igo*_*pov 0 linux bash

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

#!/bin/bash
rm -f /var/lib/pacman/db.lck
Run Code Online (Sandbox Code Playgroud)

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

-rwsrwsrwx  1 popov  users       41 04.02.2015 10:35 unlock.sh
Run Code Online (Sandbox Code Playgroud)

但是在运行脚本后我得到

rm: cannot remove ‘/var/lib/pacman/db.lck’: Permission denied
Run Code Online (Sandbox Code Playgroud)

似乎我错误地理解了s位的目的。

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

tel*_*aco 5

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

joe ALL=(ALL) NOPASSWD: /full/path/to/command
Run Code Online (Sandbox Code Playgroud)