Method: SSHKit::Backend::Abstract#as

Defined in:
lib/sshkit/backends/abstract.rb

#as(who, &block) ⇒ Object



95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
# File 'lib/sshkit/backends/abstract.rb', line 95

def as(who, &block)
  if who.is_a? Hash
    @user  = who[:user]  || who["user"]
    @group = who[:group] || who["group"]
  else
    @user  = who
    @group = nil
  end
  execute "    if ! sudo su \#{@user} -c whoami > /dev/null\n      then echo \"You cannot switch to user '\#{@user}' using sudo, please check the sudoers file\" 1>&2\n      false\n    fi\n  EOTEST\n  yield\nensure\n  remove_instance_variable(:@user)\n  remove_instance_variable(:@group)\nend\n", verbosity: Logger::DEBUG