为什么在运行替换命令时,执行顺序被破坏,如下例所示。首先chmod
执行命令,echo 1
然后echo 2
?
echo $(echo 1; echo 2; chmod 444 nonexistent_file)
结果:
chmod: Cannot access 'nonexistent_file': No such file or directory
1 2
为什么在运行替换命令时,执行顺序被破坏,如下例所示。首先chmod
执行命令,echo 1
然后echo 2
?
echo $(echo 1; echo 2; chmod 444 nonexistent_file)
结果:
chmod: Cannot access 'nonexistent_file': No such file or directory
1 2
由于 sudoers 不支持正则表达式,是否有人像我在下面的示例中那样做,或者那很糟糕?
user ALL = (root) NOPASSWD: /bin/program [0-9],\
/bin/program [0-9][0-9],\
/bin/program [0-9][0-9][0-9],\
/bin/program [0-9][0-9][0-9][0-9]
有一个脚本(在破折号上)在系统启动时运行(作为守护程序)。该脚本在根目录下运行。
在用户下,我创建了一个具有正确参数的文件,脚本每秒检查一次文件是否存在并读取参数。
也就是说,我通过文件将参数传递给脚本(以root身份运行)。你能给我一个更好的方法吗?
需要什么:通过用户命令(操作)以root权限执行脚本。在不提升用户权限的情况下。从文件夹(if-pre-up.d/...)运行脚本时,也许有一个选项可以提升网络接口。我正在查看 udev 并插入闪存卡,但这并不方便。
@Marcus Müller 例如,有一个文件应该在短时间内对用户可读(root:user 440)。之后权限应该变回(root:user 400)
@Marcus Müller OS Gnu/Linux (Debian)。'这听起来就像你本质上是在用户和根守护进程之间传递消息。' - 是的
@Frédéric Loyer 我喜欢管道的解决方案。@Marcus Müller 看到的错误管道行为确实发生了,但我需要每 5-30 分钟传递一个参数,所以应该不会混淆(b 之前的 a)。即我在 root 下运行的脚本将如下所示:
#!/usr/bin/dash
mkfifo fifo
while read line <fifo; do
if [ $line -eq 'arg1' ] ; then
echo 'Starting...'
fi
done
正确的?在安全方面,使用这种管道是否会恶化任何事情?