Shell 携带通配符执行顺序
原文中文,约3600字,阅读约需9分钟。发表于: 。背景 链接到标题 这周有同事在 Slack 问了一个问题: 发现在v505和v503的集群主机上 sudo的配置有一点点小问题:普通用户使用sudo时 shell中的 wildcard不生效 。 环境状态大概是这样的: 系统存在普通用户 yiran ,并配置了 sudo 权限,同时系统存在 /var/log/libvirt/qemu/ 路径,其中 libvirt 和 qemu 的目录...
本文讨论了v505和v503集群主机上sudo配置中的小问题,普通用户使用sudo时,shell中的通配符不生效。通过使用strace命令进行调试,发现传递给execve的参数中,通配符没有被展开为具体的文件名。根据Bash的官方文档,通配符在参数分词后会被替换为匹配的文件名。解决方法是在sudo中执行一个新的shell来进行模式匹配。