Perl6:以其他用户身份运行命令

时间:2019-05-19 16:34:43

标签: io root perl6

Perl6如何以其他用户身份运行命令?

上下文zef module manager是作为普通用户安装的,有些命令需要以root用户身份运行。

临时解决方案:以下功能允许以其他用户身份运行Shell命令:

unit module Repo::Utils::RunAsUser; 
sub RunAsUser( Str $user, Str $command, --> Proc ) is export {
  return shell "su -c \'$command\' $user";
}

问题:

  • 是否存在用于从Perl6脚本中以root用户身份运行命令的替代语法?
  • 用户能否以root用户身份运行某些IO :: Path方法和子例程(例如unlink或mkdir)?

谢谢!

1 个答案:

答案 0 :(得分:0)

也许不是100%Perl6解决方案,但您可以使用以Perl6编写的Sparrow6在用户下运行命令。

示例:

https://github.com/melezhik/Sparrow6/blob/master/documentation/dsl.md#zef-modules

https://github.com/melezhik/Sparrow6/blob/master/documentation/dsl.md#bash-commands