bash – 使用su模拟sudo的行为
发布时间:2020-12-15 21:10:53 所属栏目:安全 来源:网络整理
导读:我正在尝试在su周围写一个包装器使它更像sudo,所以su_wrapper foo bar baz == su -c“foo bar baz”. 但是,我不确定如何解决这个问题.我想出了这个: su_wrapper (){ su -c "$@"} 但是,在上面,只有一个参数可以存在;这失败了多个参数(因为su将它们视为自己的
我正在尝试在su周围写一个包装器使它更像sudo,所以su_wrapper foo bar baz == su -c“foo bar baz”.
但是,我不确定如何解决这个问题.我想出了这个: su_wrapper () { su -c "$@" } 但是,在上面,只有一个参数可以存在;这失败了多个参数(因为su将它们视为自己的参数). 还有另一个问题:由于参数是通过shell传递的,我认为我必须明确指定shell以避免其他问题.也许我想做的事情可以用伪bash(!)表示为su -c’bash -c“$@”’. 那么,我怎么能让它接受多个参数呢? 解决方法
使用printf“%q”来转义参数,以便它们可以用作函数的字符串输入:
su_wrapper() { su -s /bin/bash -c "$(printf "%q " "$@")" } 与$*不同,即使参数包含特殊字符和空格,这也适用. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |