lib/specinfra/command/base/user.rb in specinfra-2.82.13 vs lib/specinfra/command/base/user.rb in specinfra-2.82.14

- old
+ new

@@ -1,17 +1,19 @@ class Specinfra::Command::Base::User < Specinfra::Command::Base class << self def check_exists(user) - "id #{escape(user)}" + "getent passwd #{escape(user)}" end def check_belongs_to_group(user, group) - "id #{escape(user)} | sed 's/ context=.*//g' | cut -f 4 -d '=' | grep -- #{escape(group)}" + "groups #{escape(user)} | grep -- #{escape(group)}" end def check_belongs_to_primary_group(user, group) - "id -gn #{escape(user)}| grep ^#{escape(group)}$" + pgid = "getent passwd #{escape(user)} | cut -f 4 -d ':'" + ggid = "getent group #{escape(group)} | cut -f 3 -d ':'" + %Q|test "#{escape(pgid)}" -eq "#{escape(ggid)}"| end def check_is_system_user(user) exists = "getent passwd #{escape(user)} > /dev/null 2>&1" uid = "getent passwd #{escape(user)} | cut -f 3 -d ':'" @@ -19,12 +21,12 @@ sys_uid_max = "awk 'BEGIN{sys_uid_max=0;uid_min=1000} {if($1~/^SYS_UID_MAX/){sys_uid_max=$2}if($1~/^UID_MIN/){uid_min=$2}} END{if(sys_uid_max!=0){print sys_uid_max}else{print uid_min-1}}' /etc/login.defs" %Q|#{exists} && test "$(#{uid})" -ge "$(#{sys_uid_min})" && test "$(#{uid})" -le "$(#{sys_uid_max})"| end def check_has_uid(user, uid) - regexp = "^uid=#{uid}(" - "id #{escape(user)} | grep -- #{escape(regexp)}" + auid = "getent passwd #{escape(user)} | cut -f 3 -d ':'" + %Q| test "#{escape(uid)}" -eq "#{escape(auid)}"| end def check_has_home_directory(user, path_to_home) "getent passwd #{escape(user)} | cut -f 6 -d ':' | grep -w -- #{escape(path_to_home)}" end @@ -45,14 +47,14 @@ def get_maximum_days_between_password_change(user) "chage -l #{escape(user)} | sed -n 's/^Maximum.*: //p'" end def get_uid(user) - "id -u #{escape(user)}" + "getent passwd #{escape(user)} | cut -f 3 -d ':'" end def get_gid(user) - "id -g #{escape(user)}" + "getent passwd #{escape(user)} | cut -f 4 -d ':'" end def get_home_directory(user) "getent passwd #{escape(user)} | cut -f 6 -d ':'" end