class SyncWrap::RunUser
Provision a user to run daemons within a run directory. Utilities for working with the same.
Attributes
run_dir[W]
Root directory for persistent data and logs (default: /var/local/#{run_user})
run_dir_mode[RW]
File mode as integer for the run_dir (default: 0755)
run_group[RW]
A group for running (default: nil -> same as run_user)
run_user[RW]
A user for running deployed daemons, jobs (default: 'runr')
Public Class Methods
new( opts = {} )
click to toggle source
Calls superclass method
SyncWrap::Component.new
# File lib/syncwrap/components/run_user.rb, line 50 def initialize( opts = {} ) @run_user = 'runr' @run_group = nil @run_dir = nil @run_dir_mode = 0755 @run_user_home = nil super end
Public Instance Methods
chown_run_user( *args )
click to toggle source
Chown to user:run_group where args may be flags and files/directories.
# File lib/syncwrap/components/run_user.rb, line 108 def chown_run_user( *args ) flags, paths = args.partition { |a| a =~ /^-/ } sudo( [ 'chown', flags, [ run_user, run_group || run_user ].join(':'), paths ].flatten.compact.join( ' ' ) ) end
create_run_dir()
click to toggle source
create_run_user()
click to toggle source
Create #run_user if not already present
# File lib/syncwrap/components/run_user.rb, line 65 def create_run_user sudo_if( "! id #{run_user} >/dev/null 2>&1" ) do user_opts = "-r -c 'Run User' -s /bin/bash" user_opts += " -d #{run_user_home}" if run_user_home if run_group && run_group != run_user sudo "groupadd -r -f #{run_group}" user_opts += " -g #{run_group}" end sudo "useradd #{user_opts} #{run_user}" end end
create_service_dir( sname, instance = nil )
click to toggle source
Create and set owner/permission of a named service directory under run_dir.
# File lib/syncwrap/components/run_user.rb, line 89 def create_service_dir( sname, instance = nil ) sdir = service_dir( sname, instance ) mkdir_run_user( sdir ) end
install()
click to toggle source
# File lib/syncwrap/components/run_user.rb, line 59 def install create_run_user create_run_dir end
mkdir_run_user( dir, opts = {} )
click to toggle source
Make dir including parents via sudo, chown to #run_user, and chmod
Options¶ ↑
- :mode
-
Integer file mode for directory set via chmod (Default: 0775)
# File lib/syncwrap/components/run_user.rb, line 97 def mkdir_run_user( dir, opts = {} ) mode = opts[:mode] || 0775 sudo "mkdir -p #{dir}" chown_run_user dir sudo( "chmod %o %s" % [ mode, dir ] ) end
Also aliased as: make_dir
run_dir()
click to toggle source
# File lib/syncwrap/components/run_user.rb, line 35 def run_dir @run_dir || "/var/local/#{run_user}" end
run_user_home()
click to toggle source
# File lib/syncwrap/components/run_user.rb, line 46 def run_user_home @run_user_home || run_dir end
service_dir( sname, instance = nil )
click to toggle source
# File lib/syncwrap/components/run_user.rb, line 83 def service_dir( sname, instance = nil ) run_dir + '/' + [ sname, instance ].compact.join( '-' ) end