苏-c "sudo -l > some_file 添加换行符

苏-c "sudo -l > some_file 添加换行符

遇到一个非常奇怪的问题,我根本无法理解。我以 root 身份运行一个脚本,以检查用户 X 是否存在许多 sudo 规则。当我运行时:

su $USER -c "sudo -l > $USER_sudo_rules.lst"

它包裹了几行。行应显示为:

(oracle) NOPASSWD: /opt/oracle/oracle_base/product/*/OPatch/opatch lsinventory
(oracle) NOPASSWD: /usr/bin/cat /opt/oracle/*/diag/tnslsnr/*/listener_*/trace/*

但似乎输出为:

(oracle) NOPASSWD: /opt/oracle/oracle_base/product/*/OPatch/opatch
lsinventory
(oracle) NOPASSWD: /usr/bin/cat
/opt/oracle/*/diag/tnslsnr/*/listener_*/trace/*

我不知道为什么。我尝试了各种管道sudo -l到其他各种工具(例如 cat、less、fold)来尝试操纵输出,但似乎没有任何影响。也许我可以做一些后期处理来将它们加入进来,但希望有一些更干净的东西。 SHELL 是 Redhat 上的 ksh。此“$USER_sudo_rules.lst”文件将与预定义的“sudo 规则列表”进行比较,以确保主机上存在正确的规则。

相关内容