ruby – 在Capistrano 3中永久切换用户(单独授权和部署)
发布时间:2020-12-16 19:08:05 所属栏目:百科 来源:网络整理
导读:我们在服务器管理中有以下模式 – 所有用户都有自己的用户,但部署完全由特殊部署用户执行,没有直接登录的可能性. 我们在Capistrano 2.x中使用了这种方法: default_run_options[:shell] = "sudo -u deploy bash"$cap stage deploy -s user=thisisme 我知道Ca
我们在服务器管理中有以下模式 – 所有用户都有自己的用户,但部署完全由特殊部署用户执行,没有直接登录的可能性.
我们在Capistrano 2.x中使用了这种方法: default_run_options[:shell] = "sudo -u deploy bash" $cap stage deploy -s user=thisisme 我知道Capistrano 3.x有直接切换用户的方法: task :install do on roles(:all) do as :deploy do execute :whoami end end end 但是此代码将填充所有任务,并且默认任务无论如何都不会继承部署用户.是否可以直接设置登录用户而无需将此代码拖到每个任务中? 解决方法
由于我没有得到正确的答案而且自己没有得到这个想法,所以我决定问作者. Capistrano 3.x使用SSHKit管理远程执行命令,and here’s their answer:
您可以尝试重写命令映射,以便每个命令都以所需的sudo字符串为前缀. https://github.com/capistrano/sshkit/blob/master/README.md#the-command-map SSHKit.config.command_map = Hash.new do |hash,command| hash[command] = "<<sudo stuff goes here>> #{command}" end 文件说“这可能不明智,但有可能”.因人而异 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |