我在mailq上运行一个shell脚本来创建一个要删除的文件列表,但是由于权限,我不能用shell脚本删除它们(当我使用root权限时,脚本可以工作,但我不能总是为root权限提供root密码用户)。我想将文件的输出列表发送到 perl 以删除它们,并且 Perl 程序具有 root 权限。
外壳脚本是:
#!/usr/bin/ksh
WORKFILE="/tmp/check.mq"
MAILLIST="yagyavalkbhatt@yahoo.com"
mailq|grep -B1 -i temporarily |grep -iv deferred |egrep -i 'jan|feb|mar|apr|may|june|jul|aug|sept|oct|nov|dec' |awk -F" " '{print $1}' |awk '{print substr($0,10,14)}'|tee $WORKFILE |awk '{print "*" $1}'|tee mail.mq
mailq|grep -B1 -i unknown |egrep -i 'jan|feb|mar|apr|may|june|jul|aug|sept|oct|nov|dec' |awk -F" " '{print $1}' |awk '{print substr($0,10,14)}'|tee $WORKFILE |awk '{print "*" $1}'|tee mail.mq
mailq|grep -B1 -i lookup |grep -iv deferred |egrep -i 'jan|feb|mar|apr|may|june|jul|aug|sept|oct|nov|dec' |awk -F" " '{print $1}' |awk '{print substr($0,10,14)}'|tee $WORKFILE |awk '{print "*" $1}'|tee mail.mq
cat mail.mq | while read file; do rm /var/spool/mqueue/$file;done
find . -type f -name "mail.mq" |rm -rf mail.mq
这会产生如下输出:
*##### where ##### is a unique 5 numbers to identify files in the mailq.
我想知道如何从任何用户那里删除这些具有 root 权限的文件。