Method: Beaker::HostPrebuiltSteps#enable_root_login
- Defined in:
- lib/beaker/host_prebuilt_steps.rb
#enable_root_login(host, opts) ⇒ Object
Update sshd_config on debian, ubuntu, centos, el, redhat, cumulus, and fedora boxes to allow for root login
Does nothing on other platfoms.
399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 |
# File 'lib/beaker/host_prebuilt_steps.rb', line 399 def enable_root_login host, opts logger = opts[:logger] block_on host do |host| logger.debug "Update /etc/ssh/sshd_config to allow root login" if host['platform'] =~ /osx/ host.exec(Command.new("sudo sed -i '' 's/#PermitRootLogin no/PermitRootLogin Yes/g' /etc/sshd_config")) host.exec(Command.new("sudo sed -i '' 's/#PermitRootLogin yes/PermitRootLogin Yes/g' /etc/sshd_config")) elsif host['platform'] =~ /freebsd/ host.exec(Command.new("sudo sed -i -e 's/#PermitRootLogin no/PermitRootLogin yes/g' /etc/ssh/sshd_config"), {:pty => true} ) elsif host['platform'] =~ /openbsd/ host.exec(Command.new("sudo perl -pi -e 's/^PermitRootLogin no/PermitRootLogin yes/' /etc/ssh/sshd_config"), {:pty => true} ) elsif host['platform'] =~ /solaris-10/ host.exec(Command.new("sudo gsed -i -e 's/#PermitRootLogin no/PermitRootLogin yes/g' /etc/ssh/sshd_config"), {:pty => true} ) elsif host['platform'] =~ /solaris-11/ host.exec(Command.new("sudo rolemod -K type=normal root"), {:pty => true} ) host.exec(Command.new("sudo gsed -i -e 's/PermitRootLogin no/PermitRootLogin yes/g' /etc/ssh/sshd_config"), {:pty => true} ) elsif not host.is_powershell? host.exec(Command.new("sudo su -c \"sed -ri 's/^#?PermitRootLogin no|^#?PermitRootLogin yes/PermitRootLogin yes/' /etc/ssh/sshd_config\""), {:pty => true}) else logger.warn("Attempting to enable root login non-supported platform: #{host.name}: #{host['platform']}") end #restart sshd if host['platform'] =~ /debian|ubuntu|cumulus/ host.exec(Command.new("sudo su -c \"service ssh restart\""), {:pty => true}) elsif host['platform'] =~ /centos-7|el-7|redhat-7/ host.exec(Command.new("sudo -E systemctl restart sshd.service"), {:pty => true}) elsif host['platform'] =~ /centos|el-|redhat|fedora|eos/ host.exec(Command.new("sudo -E /sbin/service sshd reload"), {:pty => true}) elsif host['platform'] =~ /(free|open)bsd/ host.exec(Command.new("sudo /etc/rc.d/sshd restart")) elsif host['platform'] =~ /solaris/ host.exec(Command.new("sudo -E svcadm restart network/ssh"), {:pty => true} ) else logger.warn("Attempting to update ssh on non-supported platform: #{host.name}: #{host['platform']}") end end end |