diff --git a/ublinux/default b/ublinux/default index 6b789c0..311497f 100644 --- a/ublinux/default +++ b/ublinux/default @@ -149,6 +149,8 @@ KEYTABLE=ru4 DEFAULTPASSWD='$6$E7stRhRS8fCKk7UU$Qoqw62AUaUa5uLIc2KC7WV3MUThhrR8kjXtCODmnKCzKe2zHu1/wmsiWBHZEIk/IQnk/aELQYbUK93OUtrwg60' DEFAULTROOTPASSWD='$6$E7stRhRS8fCKk7UU$Qoqw62AUaUa5uLIc2KC7WV3MUThhrR8kjXtCODmnKCzKe2zHu1/wmsiWBHZEIk/IQnk/aELQYbUK93OUtrwg60' DEFAULTUSER=superadmin +# Для параметра NEEDEDUSERS: если указана основная группа 'x', то основная будет DEFAULTGROUP +# Для параметра ADDUSER: группа DEFAULTGROUP будет добавлена к USERGROUPS DEFAULTGROUP=users USERGROUPS=nobody,scanner,power,audio,lp,optical,storage,video,sambashare,vboxusers,libvirt NOSECUREROOTPASSWD="${DEFAULTROOTPASSWD}" diff --git a/ublinux/functions b/ublinux/functions index fbb9c6c..7372227 100755 --- a/ublinux/functions +++ b/ublinux/functions @@ -831,10 +831,11 @@ get_conf_useradd_from_system(){ local FILE_PASSWD="${ROOTFS}/etc/passwd" local FILE_SHADOW="${ROOTFS}/etc/shadow" local FILE_LOGINDEFS="${ROOTFS}/etc/login.defs" - local DATA_FILE_PASSWD=$(< ${FILE_PASSWD}) - local DATA_FILE_SHADOW=$(< ${FILE_SHADOW}) + [[ -r ${FILE_PASSWD} ]] && local DATA_FILE_PASSWD=$(< ${FILE_PASSWD}) + [[ -r ${FILE_SHADOW} ]] && local DATA_FILE_SHADOW=$(< ${FILE_SHADOW}) local DEFAULT_HOME="/home" local DEFAULT_SHELL="/bin/bash" + show_user(){ local SELECT_USER="$1" local SELECT_PLAINPASSWORD SELECT_UID SELECT_GROUP SELECT_GECOS SELECT_HOME SELECT_SHELL @@ -853,22 +854,23 @@ get_conf_useradd_from_system(){ [[ ${SELECT_PASSWORD} == "!*" && ${SELECT_PLAINPASSWORD} != "x" ]] && SELECT_PASSWORD="${SELECT_PLAINPASSWORD}" # Все дополнительные группы по умолчанию для всех пользователей ${USERGROUPS} ${DEFAULTGROUP} - SYSTEM_EXTRAGROUPS=$(printf "%s\n" ${USERGROUPS//,/ } ${DEFAULTGROUP//,/ } | sort -u) + #SYSTEM_EXTRAGROUPS="${USERGROUPS//,/$'\n'}"$'\n'"${DEFAULTGROUP//,/$'\n'}" # Все дополнительные группы полученные из системы на пользователя ${SELECT_USER} - USER_EXTRAGROUPS=$(printf "%s\n" $(${CHROOT} id -nrG ${SELECT_USER}) | sort -u) - #SELECT_EXTRAGROUPS=$(comm --nocheck-order -13 <(printf "${SYSTEM_EXTRAGROUPS}") <(printf "${USER_EXTRAGROUPS}") | xargs | tr " " ",") + # У id -nrG первая група в выводе является основной, её убираем + USER_EXTRAGROUPS=$(${CHROOT} id -nrG ${SELECT_USER} | tr " " '\n' | tail +2 | sort -u) + # Нет основной группы пользовтеля - это хорошо но медленнее чем id + #local FILE_GROUP="${ROOTFS}/etc/group" + #[[ -r ${FILE_GROUP} ]] && local DATA_FILE_GROUP=$(< ${FILE_GROUP}) +# USER_EXTRAGROUPS=$(${CHROOT} sed -Enr "s/^([^:]+):([^:]+):([^:]+):.*${SELECT_USER}.*/\1/p" <<< ${DATA_FILE_GROUP} | sort -u) #" + #SELECT_EXTRAGROUPS=$(comm --nocheck-order -13 <(printf "%s\n" ${USERGROUPS//,/ } ${DEFAULTGROUP//,/ } | sort -u) <(printf "%s\n" $(${CHROOT} id -nrG ${SELECT_USER}) | sort -u) | xargs | tr " " ",") #' # Общие группы из по умолчанию и системные + только уникальные системные исключающие "по умолчанию" - SELECT_EXTRAGROUPS=$(echo -e "$(comm --nocheck-order -12 <(printf "${SYSTEM_EXTRAGROUPS}") <(printf "${USER_EXTRAGROUPS}"))\n$(comm --nocheck-order -13 <(printf "${SYSTEM_EXTRAGROUPS}") <(printf "${USER_EXTRAGROUPS}"))" | sort -u | xargs | tr " " ",") #" + #SELECT_EXTRAGROUPS=$(sort -u <<< "$(comm --nocheck-order -12 <(printf "${SYSTEM_EXTRAGROUPS}") <(printf "${USER_EXTRAGROUPS}"))"$'\n'"$(comm --nocheck-order -13 <(printf "${SYSTEM_EXTRAGROUPS}") <(printf "${USER_EXTRAGROUPS}"))" | xargs | tr " " ",") #" + + SELECT_EXTRAGROUPS="${USER_EXTRAGROUPS//$'\n'/,}" [[ -n ${SELECT_HOME} && ${SELECT_HOME} != "${DEFAULT_HOME}/${SELECT_USER}" ]] && SELECT_OPTIONAL+=" --home-dir ${SELECT_HOME}" [[ -n ${SELECT_SHELL} && ${SELECT_SHELL} != ${DEFAULT_SHELL} ]] && SELECT_OPTIONAL+=" --shell ${SELECT_SHELL}" - if [[ -z ${NOT_ONLY_CHANGES} && ${SELECT_PASSWORD} == @("!*"|"!") ]]; then - # Загрузить файлы которые совпадают в каталогах /usr/lib/sysusers.d/ и /usr/share/ublinux-sysusers/. И загрузить которые уникальные в /usr/lib/sysusers.d/ - local DATA_SYSUSERS=$(cat \ - $(comm --nocheck-order -12 <(cd /usr/lib/sysusers.d/ && ls -v1 *.conf | sed "s/\.conf//g") <(cd /usr/share/ublinux-sysusers/ && ls -v1 *.sysusers | sed "s/\.sysusers//g") | sed 's|^|/usr/share/ublinux-sysusers/|;s|$|.sysusers|') \ - <(echo) \ - $(comm --nocheck-order -23 <(cd /usr/lib/sysusers.d/ && ls -v1 *.conf | sed "s/\.conf//g") <(cd /usr/share/ublinux-sysusers/ && ls -v1 *.sysusers | sed "s/\.sysusers//g") | sed 's|^|/usr/lib/sysusers.d/|;s|$|.conf|') \ - ) + if [[ -z ${NOT_ONLY_CHANGES} && ${SELECT_PASSWORD} == @("!*"|"!"|"*") ]]; then local DATA_SYSUSERS_GROUP DATA_SYSUSERS_GECOS DATA_SYSUSERS_HOME DATA_SYSUSERS_SHELL # Выриант1: u vault 319 "Vault daemon" /var/lib/vault # Выриант2: u varnishlog 318:varnish "Varnish Cache Proxy" @@ -884,12 +886,7 @@ get_conf_useradd_from_system(){ [[ ${DATA_SYSUSERS_GROUP} != "" ]] && FIND_GROUP=${DATA_SYSUSERS_GROUP} || FIND_GROUP=${SELECT_USER} [[ ${DATA_SYSUSERS} =~ ($'\n'|^)+'g'[[:blank:]]+${FIND_GROUP}[[:blank:]]+${SELECT_GROUP}[[:blank:]]*([^$'\n' ]*)[[:blank:]]*([^$'\n' ]*)($'\n'|$)+ ]] \ && DATA_SYSUSERS_GROUP=${SELECT_GROUP} || DATA_SYSUSERS_GROUP=${SELECT_UID} - # - DATA_SYSUSERS_EXTRAGROUPS=$(sed -Enr "s/^m ${SELECT_USER} (.*)/\1/p" <<< ${DATA_SYSUSERS}) #" - #[[ -n ${DATA_SYSUSERS_EXTRAGROUPS} ]] && DATA_SYSUSERS_EXTRAGROUPS="${SELECT_USER},${DATA_SYSUSERS_EXTRAGROUPS//$'\n'/,}" || DATA_SYSUSERS_EXTRAGROUPS="${SELECT_USER}" - [[ -n ${DATA_SYSUSERS_EXTRAGROUPS} ]] && DATA_SYSUSERS_EXTRAGROUPS=$(printf "%s\n" ${SELECT_USER} ${DATA_SYSUSERS_EXTRAGROUPS} | sort -u | xargs | tr " " ",") \ - || DATA_SYSUSERS_EXTRAGROUPS="${FIND_GROUP}" - # + DATA_SYSUSERS_EXTRAGROUPS=$(sed -Enr "s/^m ${SELECT_USER} (.*)/\1/p" <<< ${DATA_SYSUSERS} | sort -u | xargs | tr " " ",") #" [[ ${SELECT_GROUP} == ${DATA_SYSUSERS_GROUP} && ${SELECT_EXTRAGROUPS} == ${DATA_SYSUSERS_EXTRAGROUPS} && ${SELECT_GECOS} == ${DATA_SYSUSERS_GECOS} && ${SELECT_HOME} == ${DATA_SYSUSERS_HOME} && ${SELECT_SHELL} == ${DATA_SYSUSERS_SHELL} ]] \ && return 0 fi @@ -904,6 +901,15 @@ get_conf_useradd_from_system(){ [[ ${1} == "--not-only-changes" ]] && local NOT_ONLY_CHANGES=yes && shift local PARAM_ALL="$@" [[ -n ${PARAM_ALL} ]] || PARAM_ALL="@users @systems" + # Загрузить файлы которые совпадают в каталогах /usr/lib/sysusers.d/ и /usr/share/ublinux-sysusers/. И загрузить которые уникальные в /usr/lib/sysusers.d/ + #[[ -z ${NOT_ONLY_CHANGES} ]] && local DATA_SYSUSERS=$(cat \ + # $(comm --nocheck-order -12 <(cd /usr/lib/sysusers.d/ && ls -v1 *.conf | sed "s/\.conf//g") <(cd /usr/share/ublinux-sysusers/ && ls -v1 *.sysusers | sed "s/\.sysusers//g") | sed 's|^|/usr/share/ublinux-sysusers/|;s|$|.sysusers|') \ + # <(echo) \ + # $(comm --nocheck-order -23 <(cd /usr/lib/sysusers.d/ && ls -v1 *.conf | sed "s/\.conf//g") <(cd /usr/share/ublinux-sysusers/ && ls -v1 *.sysusers | sed "s/\.sysusers//g") | sed 's|^|/usr/lib/sysusers.d/|;s|$|.conf|') \ + #) + # Загрузить данные из /usr/share/ublinux-sysusers/*.sysusers /usr/lib/sysusers.d/*.conf. Вжно что-бы имена файлов не содержали : + [[ -z ${NOT_ONLY_CHANGES} ]] && local DATA_SYSUSERS=$(grep -rEv '^\s*#|^\s*$' /usr/share/ublinux-sysusers/*.sysusers /usr/lib/sysusers.d/*.conf | sed -Enr "s/^[^:]+:(.*)/\1/p") #" + while IFS= read -r SELECT_PARAM; do if [[ ${SELECT_PARAM} == "@users" ]]; then # Все пользователи кроме системных @@ -953,7 +959,7 @@ get_conf_usershadow_from_system(){ local FILE_PASSWD="${ROOTFS}/etc/passwd" local FILE_SHADOW="${ROOTFS}/etc/shadow" local FILE_LOGINDEFS="${ROOTFS}/etc/login.defs" - local DATA_FILE_SHADOW=$(< ${FILE_SHADOW}) + [[ -r ${FILE_SHADOW} ]] && local DATA_FILE_SHADOW=$(< ${FILE_SHADOW}) show_user(){ local SELECT_USER="$1" [[ ${DATA_FILE_SHADOW} =~ ($'\n'|^)+${SELECT_USER}:([^$'\n']*):([^$'\n']*):([^$'\n']*):([^$'\n']*):([^$'\n']*):([^$'\n']*):([^$'\n']*):([^$'\n']*)($'\n'|$)+ ]] \ @@ -1031,8 +1037,8 @@ get_conf_groupadd_from_system(){ local FILE_GROUP="${ROOTFS}/etc/group" local FILE_GSHADOW="${ROOTFS}/etc/gshadow" local FILE_LOGINDEFS="${ROOTFS}/etc/login.defs" - local DATA_FILE_GROUP=$(< ${FILE_GROUP}) - local DATA_FILE_GSHADOW=$(< ${FILE_GSHADOW}) + [[ -r ${FILE_GROUP} ]] && local DATA_FILE_GROUP=$(< ${FILE_GROUP}) + [[ -r ${FILE_GSHADOW} ]] && local DATA_FILE_GSHADOW=$(< ${FILE_GSHADOW}) show_group(){ local SELECT_GROUP="$1" local SELECT_PLAINPASSWORD SELECT_GID SELECT_MEMBERS @@ -1047,33 +1053,22 @@ get_conf_groupadd_from_system(){ && SELECT_GMEMBERS=${BASH_REMATCH[4]} [[ ${SELECT_PASSWORD} == "!*" && ${SELECT_PLAINPASSWORD} != "x" ]] && SELECT_PASSWORD="${SELECT_PLAINPASSWORD}" local SELECT_OPTIONAL - if [[ -z ${NOT_ONLY_CHANGES} && ${SELECT_PASSWORD} == "!*" && ${SELECT_MEMBERS} == ${SELECT_GMEMBERS} && -z ${SELECT_ADMINISTRATORS} ]]; then - # Загрузить файлы которые совпадают в каталогах /usr/lib/sysusers.d/ и /usr/share/ublinux-sysusers/. И загрузить которые уникальные в /usr/lib/sysusers.d/ - local DATA_SYSUSERS=$(cat \ - $(comm --nocheck-order -12 <(cd /usr/lib/sysusers.d/ && ls -v1 *.conf | sed "s/\.conf//g") <(cd /usr/share/ublinux-sysusers/ && ls -v1 *.sysusers | sed "s/\.sysusers//g") | sed 's|^|/usr/share/ublinux-sysusers/|;s|$|.sysusers|') \ - <(echo) \ - $(comm --nocheck-order -23 <(cd /usr/lib/sysusers.d/ && ls -v1 *.conf | sed "s/\.conf//g") <(cd /usr/share/ublinux-sysusers/ && ls -v1 *.sysusers | sed "s/\.sysusers//g") | sed 's|^|/usr/lib/sysusers.d/|;s|$|.conf|') \ - ) + if [[ -z ${NOT_ONLY_CHANGES} && ${SELECT_PASSWORD} == @("!*"|"!") && ${SELECT_MEMBERS} == ${SELECT_GMEMBERS} && -z ${SELECT_ADMINISTRATORS} ]]; then # Выбираем пользователей которые входят в выбранную группу из systemd sysusers - local DATA_SYSUSERS_MEMBERS=$(sed -Enr "s/^m[[:blank:]]+(.*)[[:blank:]]+${SELECT_GROUP}/\1/p" <<< ${DATA_SYSUSERS}) #" + local DATA_SYSUSERS_MEMBERS=$(sed -Enr "s/^m[[:blank:]]+(.*)[[:blank:]]+${SELECT_GROUP}/\1/p" <<< ${DATA_SYSUSERS} | sort -u | xargs | tr " " ",") #" local RETURN_DATA_SYSUSERS_MEMBERS - if [[ -n ${DATA_SYSUSERS_MEMBERS} ]]; then - DATA_SYSUSERS_MEMBERS=$(printf "%s\n" ${DATA_SYSUSERS_MEMBERS} | sort -u | xargs | tr " " ",") - SELECT_MEMBERS=$(tr "," $'\n' <<< ${SELECT_MEMBERS} | sort -u | xargs | tr " " ",") - fi + [[ -n ${DATA_SYSUSERS_MEMBERS} ]] && SELECT_MEMBERS=$(sort -u <<< ${SELECT_MEMBERS//,/$'\n'} | xargs | tr " " ",") [[ ${SELECT_MEMBERS} == ${DATA_SYSUSERS_MEMBERS} ]] && RETURN_DATA_SYSUSERS_MEMBERS=yes || RETURN_DATA_SYSUSERS_MEMBERS=no # Выбираем GID группы из systemd sysusers. По явному наличию 'g x2godesktopsharing 500' - local DATA_SYSUSERS_GID=$(sed -Enr "s/^g[[:blank:]]+${SELECT_GROUP}[[:blank:]]+([[:digit:]]+).*/\1/p" <<< ${DATA_SYSUSERS}) #" + local DATA_SYSUSERS_GID=$(sed -Enr "s/^g[[:blank:]]+${SELECT_GROUP}[[:blank:]]+([[:digit:]]+).*/\1/p" <<< ${DATA_SYSUSERS} | head -1) #" # Выбираем GID группы из systemd sysusers. Если нет явного, то GID по UID пользователя - [[ -n ${DATA_SYSUSERS_GID} ]] || DATA_SYSUSERS_GID=$(sed -Enr "s/^u[[:blank:]]+${SELECT_GROUP}[[:blank:]]+([[:digit:]]+).*/\1/p" <<< ${DATA_SYSUSERS}) #" + [[ -n ${DATA_SYSUSERS_GID} ]] || DATA_SYSUSERS_GID=$(sed -Enr "s/^u[[:blank:]]+${SELECT_GROUP}[[:blank:]]+([[:digit:]]+).*/\1/p" <<< ${DATA_SYSUSERS} | head -1) #" local RETURN_DATA_SYSUSERS_GID - if [[ -n ${DATA_SYSUSERS_GID} ]]; then - [[ ${SELECT_GID} == ${DATA_SYSUSERS_GID} ]] && RETURN_DATA_SYSUSERS_GID=yes || RETURN_DATA_SYSUSERS_GID=no - fi + [[ -n ${DATA_SYSUSERS_GID} ]] && [[ ${SELECT_GID} == ${DATA_SYSUSERS_GID} ]] && RETURN_DATA_SYSUSERS_GID=yes || RETURN_DATA_SYSUSERS_GID=no # Если в systemd sysusers MEMBERS и GID совпадают с системными, то выход [[ ${RETURN_DATA_SYSUSERS_MEMBERS} == "yes" && ${RETURN_DATA_SYSUSERS_GID} == "yes" ]] && return 0 # Если в systemd sysusers MEMBERS совпадает с системным, а GID не указан (динамический), то выход - # Если не показывать такие группы, то пожно ложно не вывести, если вдруг намеренно пользоваель указал GID у динамической группы + # Если не показывать такие группы, то можно ложно не вывести, если вдруг намеренно пользоваель указал GID у динамической группы # Из за возможной ошибки, отключаю #[[ ${RETURN_DATA_SYSUSERS_MEMBERS} == "yes" && -z ${RETURN_DATA_SYSUSERS_GID} ]] && return 0 fi @@ -1082,6 +1077,14 @@ get_conf_groupadd_from_system(){ [[ ${1} == "--not-only-changes" ]] && local NOT_ONLY_CHANGES=yes && shift local PARAM_ALL="$@" [[ -n ${PARAM_ALL} ]] || PARAM_ALL="@groups @systems" + # Загрузить файлы которые совпадают в каталогах /usr/lib/sysusers.d/ и /usr/share/ublinux-sysusers/. И загрузить которые уникальные в /usr/lib/sysusers.d/ + #[[ -z ${NOT_ONLY_CHANGES} ]] && local DATA_SYSUSERS=$(cat \ + # $(comm --nocheck-order -12 <(cd /usr/lib/sysusers.d/ && ls -v1 *.conf | sed "s/\.conf//g") <(cd /usr/share/ublinux-sysusers/ && ls -v1 *.sysusers | sed "s/\.sysusers//g") | sed 's|^|/usr/share/ublinux-sysusers/|;s|$|.sysusers|') \ + # <(echo) \ + # $(comm --nocheck-order -23 <(cd /usr/lib/sysusers.d/ && ls -v1 *.conf | sed "s/\.conf//g") <(cd /usr/share/ublinux-sysusers/ && ls -v1 *.sysusers | sed "s/\.sysusers//g") | sed 's|^|/usr/lib/sysusers.d/|;s|$|.conf|') \ + #) + # Загрузить данные из /run/sysusers.d/*.sysusers /usr/lib/sysusers.d/*.conf. Вжно что-бы имена файлов не содержали : + [[ -z ${NOT_ONLY_CHANGES} ]] && local DATA_SYSUSERS=$(grep -rEv '^\s*#|^\s*$' /run/sysusers.d/*.conf /usr/lib/sysusers.d/*.conf | sed -Enr "s/^[^:]+:(.*)/\1/p") #" while IFS= read -r SELECT_PARAM_ALL; do if [[ ${SELECT_PARAM_ALL} == "@groups" ]]; then # Все группы кроме системных @@ -1467,29 +1470,29 @@ ubconfig_exec_system(){ "[${SYSCONF}/config]"|"[config]") case "${NAME_VAR}" in # --> OLD config - HOSTNAME) ${ROOTFS}/usr/lib/ublinux/rc.preinit.d/30-network-hostname ;; - SERVICESSTART|SERVICESNOSTART|SERVICESMASK|SERVICESUNMASK|\ - SERVICES_ENABLE|SERVICES_DISABLE|SERVICES_MASK|SERVICES_UNMASK) + HOSTNAME) ${ROOTFS}/usr/lib/ublinux/rc.preinit.d/30-network-hostname ;; + SERVICESSTART|SERVICESNOSTART|SERVICESMASK|SERVICESUNMASK|\ + SERVICES_ENABLE|SERVICES_DISABLE|SERVICES_MASK|SERVICES_UNMASK) ${ROOTFS}/usr/lib/ublinux/rc.preinit.d/20-services exec_services_enabledisable "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ${ROOTFS}/usr/lib/ublinux/rc.preinit.d/20-services exec_services_startstop_live "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" # <-- OLD config ;; DM_HINT_PASSWORD) ${ROOTFS}/usr/lib/ublinux/rc.preinit/10-accounts exec_99_dm_hint_password "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; - *) NO_FIND_EXCUTE=1 ;; + *) NO_FIND_EXCUTE=1 ;; esac ;; "[${SYSCONF}/system]"|"[system]") case "${NAME_VAR}" in - ENVIRONMENT) ${ROOTFS}/usr/lib/ublinux/rc.preinit.d/10-system exec_environment ;; - HOSTNAME) ${ROOTFS}/usr/lib/ublinux/rc.preinit.d/30-network-hostname ;; - SERVICESSTART|SERVICESNOSTART|SERVICESMASK|SERVICESUNMASK|\ - SERVICES_ENABLE|SERVICES_DISABLE|SERVICES_MASK|SERVICES_UNMASK) + ENVIRONMENT) ${ROOTFS}/usr/lib/ublinux/rc.preinit.d/10-system exec_environment ;; + HOSTNAME) ${ROOTFS}/usr/lib/ublinux/rc.preinit.d/30-network-hostname ;; + SERVICESSTART|SERVICESNOSTART|SERVICESMASK|SERVICESUNMASK|\ + SERVICES_ENABLE|SERVICES_DISABLE|SERVICES_MASK|SERVICES_UNMASK) ${ROOTFS}/usr/lib/ublinux/rc.preinit.d/20-services exec_services_enabledisable "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ${ROOTFS}/usr/lib/ublinux/rc.preinit.d/20-services exec_services_startstop_live "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; AUTHPAM) ${ROOTFS}/usr/lib/ublinux/rc.preinit.d/40-authpam "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; AUTHPAM\[*\]) ${ROOTFS}/usr/lib/ublinux/rc.preinit.d/40-authpam "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; - *) NO_FIND_EXCUTE=1 ;; + *) NO_FIND_EXCUTE=1 ;; esac ;; "[${SYSCONF}/users]"|"[users]") @@ -1500,14 +1503,14 @@ ubconfig_exec_system(){ ADMGROUPS) ${ROOTFS}/usr/lib/ublinux/rc.preinit/10-accounts exec_03_add_groups "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; USERGROUPS) ${ROOTFS}/usr/lib/ublinux/rc.preinit/10-accounts exec_03_add_groups "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; NEEDEDUSERS) ${ROOTFS}/usr/lib/ublinux/rc.preinit/10-accounts exec_05_neededusers "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; - USERADD\[*\]) ${ROOTFS}/usr/lib/ublinux/rc.preinit/10-accounts exec_06_useradd "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; - USERSHADOW\[*\]) ${ROOTFS}/usr/lib/ublinux/rc.preinit/10-accounts exec_07_usershadow "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; - GROUPADD\[*\]) ${ROOTFS}/usr/lib/ublinux/rc.preinit/10-accounts exec_04_groupadd "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; - USERADD_SYNC) ${ROOTFS}/usr/lib/ublinux/rc.halt.pre/25-accounts-sync exec_useradd_sync "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; - USERADD_SYNC\[*\]) ${ROOTFS}/usr/lib/ublinux/rc.halt.pre/25-accounts-sync exec_useradd_sync "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; - GROUPADD_SYNC) ${ROOTFS}/usr/lib/ublinux/rc.halt.pre/25-accounts-sync exec_groupadd_sync "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; - GROUPADD_SYNC\[*\]) ${ROOTFS}/usr/lib/ublinux/rc.halt.pre/25-accounts-sync exec_groupadd_sync "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; - *) NO_FIND_EXCUTE=1 ;; + USERADD\[*\]) ${ROOTFS}/usr/lib/ublinux/rc.preinit/10-accounts exec_06_useradd "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; + USERSHADOW\[*\]) ${ROOTFS}/usr/lib/ublinux/rc.preinit/10-accounts exec_07_usershadow "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; + GROUPADD\[*\]) ${ROOTFS}/usr/lib/ublinux/rc.preinit/10-accounts exec_04_groupadd "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; + USERADD_SYNC) ${ROOTFS}/usr/lib/ublinux/rc.halt.pre/25-accounts-sync exec_useradd_sync "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; + USERADD_SYNC\[*\]) ${ROOTFS}/usr/lib/ublinux/rc.halt.pre/25-accounts-sync exec_useradd_sync "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; + GROUPADD_SYNC) ${ROOTFS}/usr/lib/ublinux/rc.halt.pre/25-accounts-sync exec_groupadd_sync "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; + GROUPADD_SYNC\[*\]) ${ROOTFS}/usr/lib/ublinux/rc.halt.pre/25-accounts-sync exec_groupadd_sync "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; + *) NO_FIND_EXCUTE=1 ;; esac ;; "[${SYSCONF}/update]"|"[update]") @@ -1520,7 +1523,7 @@ ubconfig_exec_system(){ REPOPUBLIC_CACHE\[*\]) ${ROOTFS}/usr/lib/ublinux/rc.local.d/43-repository exec_04_repopublic_cache "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; AUTOUPDATE) ${ROOTFS}/usr/lib/ublinux/rc.local.d/43-repository exec_autoupdate "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; AUTOUPDATE\[*\]) ${ROOTFS}/usr/lib/ublinux/rc.local.d/43-repository exec_autoupdate "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; - *) NO_FIND_EXCUTE=1 ;; + *) NO_FIND_EXCUTE=1 ;; esac ;; "[${SYSCONF}/boot]"|"[boot]") @@ -1544,13 +1547,13 @@ ubconfig_exec_system(){ "[${SYSCONF}/logging]"|"[logging]") case "${NAME_VAR}" in AUDITD\[*\]) ${ROOTFS}/usr/lib/ublinux/rc.preinit.d/24-logging exec_auditd "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" - setsid ${ROOTFS}/usr/lib/ublinux/rc.preinit.d/24-logging exec_auditd_live & ;; - JOURNALD\[*\]) ${ROOTFS}/usr/lib/ublinux/rc.preinit.d/24-logging exec_journald "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" - setsid ${ROOTFS}/usr/lib/ublinux/rc.preinit.d/24-logging exec_journald_live & ;; - LOGROTATE\[*\]) ${ROOTFS}/usr/lib/ublinux/rc.preinit.d/24-logging exec_logrotate "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" - setsid ${ROOTFS}/usr/lib/ublinux/rc.preinit.d/24-logging exec_logrotate_live "${NAME_VAR}" & ;; - SYSTEMD_COREDUMP\[*\]) ${ROOTFS}/usr/lib/ublinux/rc.preinit.d/24-logging exec_systemd_coredump "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; - *) NO_FIND_EXCUTE=1 ;; + setsid ${ROOTFS}/usr/lib/ublinux/rc.preinit.d/24-logging exec_auditd_live & ;; + JOURNALD\[*\]) ${ROOTFS}/usr/lib/ublinux/rc.preinit.d/24-logging exec_journald "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" + setsid ${ROOTFS}/usr/lib/ublinux/rc.preinit.d/24-logging exec_journald_live & ;; + LOGROTATE\[*\]) ${ROOTFS}/usr/lib/ublinux/rc.preinit.d/24-logging exec_logrotate "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" + setsid ${ROOTFS}/usr/lib/ublinux/rc.preinit.d/24-logging exec_logrotate_live "${NAME_VAR}" & ;; + SYSTEMD_COREDUMP\[*\]) ${ROOTFS}/usr/lib/ublinux/rc.preinit.d/24-logging exec_systemd_coredump "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; + *) NO_FIND_EXCUTE=1 ;; esac ;; "[${SYSCONF}/clock]"|"[clock]") @@ -1565,36 +1568,36 @@ ubconfig_exec_system(){ ;; "[${SYSCONF}/server]"|"[server]") case "${NAME_VAR}" in - STORAGE_CONTAINERS_PATH) ${ROOTFS}/usr/lib/ublinux/rc.preinit.d/80-server-storage exec_storage_containers_path ;; - STORAGE_DOCKER_PATH) ${ROOTFS}/usr/lib/ublinux/rc.preinit.d/80-server-storage exec_storage_docker_path ;; - STORAGE_LIBVIRT_PATH) ${ROOTFS}/usr/lib/ublinux/rc.preinit.d/80-server-storage exec_storage_libvirt_pat ;; - UBPILE_DB) ${ROOTFS}/usr/lib/ublinux/rc.local.d/98-ubpile exec_01_ubpile_db "${COMMAND_MODE_VAR}" ;; # Специально без параметров - UBPILE_DB\[*\]) ${ROOTFS}/usr/lib/ublinux/rc.local.d/98-ubpile exec_01_ubpile_db "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; - UBPILE) ${ROOTFS}/usr/lib/ublinux/rc.local.d/98-ubpile exec_02_ubpile "${COMMAND_MODE_VAR}" ;; # Специально без параметров, что-бы читались дефолтные параметры при =admin и =worker - UBPILE\[*\]) ${ROOTFS}/usr/lib/ublinux/rc.local.d/98-ubpile exec_02_ubpile "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; - UBPILE_REVERSE_PROXY) ${ROOTFS}/usr/lib/ublinux/rc.local.d/98-ubpile exec_03_ubpile_reverse_proxy "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; - *) NO_FIND_EXCUTE=1 ;; + STORAGE_CONTAINERS_PATH) ${ROOTFS}/usr/lib/ublinux/rc.preinit.d/80-server-storage exec_storage_containers_path ;; + STORAGE_DOCKER_PATH) ${ROOTFS}/usr/lib/ublinux/rc.preinit.d/80-server-storage exec_storage_docker_path ;; + STORAGE_LIBVIRT_PATH) ${ROOTFS}/usr/lib/ublinux/rc.preinit.d/80-server-storage exec_storage_libvirt_pat ;; + UBPILE_DB) ${ROOTFS}/usr/lib/ublinux/rc.local.d/98-ubpile exec_01_ubpile_db "${COMMAND_MODE_VAR}" ;; # Специально без параметров + UBPILE_DB\[*\]) ${ROOTFS}/usr/lib/ublinux/rc.local.d/98-ubpile exec_01_ubpile_db "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; + UBPILE) ${ROOTFS}/usr/lib/ublinux/rc.local.d/98-ubpile exec_02_ubpile "${COMMAND_MODE_VAR}" ;; # Специально без параметров, что-бы читались дефолтные параметры при =admin и =worker + UBPILE\[*\]) ${ROOTFS}/usr/lib/ublinux/rc.local.d/98-ubpile exec_02_ubpile "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; + UBPILE_REVERSE_PROXY) ${ROOTFS}/usr/lib/ublinux/rc.local.d/98-ubpile exec_03_ubpile_reverse_proxy "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; + *) NO_FIND_EXCUTE=1 ;; esac ;; "[${SYSCONF}/desktop]"|"[desktop]") case "${NAME_VAR}" in - MULTISEAT_SIMPLE\[*\]) ${ROOTFS}/usr/lib/ublinux/rc.preinit.d/55-multiseat ;; - AUTOEXEC) ${ROOTFS}/usr/lib/ublinux/rc.desktop/all/autoexec "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; - AUTOEXEC\[*\]) ${ROOTFS}/usr/lib/ublinux/rc.desktop/all/autoexec "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; - LIGHTDM_XDMCP) ${ROOTFS}/usr/lib/ublinux/rc.preinit.d/60-lightdm-settings exec_lightdm_xdmcp "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; - LIGHTDM_XDMCP\[*\]) ${ROOTFS}/usr/lib/ublinux/rc.preinit.d/60-lightdm-settings exec_lightdm_xdmcp "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; - LIGHTDM_GREETER\[*\]) ${ROOTFS}/usr/lib/ublinux/rc.preinit.d/60-lightdm-settings exec_lightdm_greeter "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; - X11VNC\[*\]) ${ROOTFS}/usr/lib/ublinux/rc.local.d/41-x11vnc ;; - *) NO_FIND_EXCUTE=1 ;; + MULTISEAT_SIMPLE\[*\]) ${ROOTFS}/usr/lib/ublinux/rc.preinit.d/55-multiseat ;; + AUTOEXEC) ${ROOTFS}/usr/lib/ublinux/rc.desktop/all/autoexec "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; + AUTOEXEC\[*\]) ${ROOTFS}/usr/lib/ublinux/rc.desktop/all/autoexec "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; + LIGHTDM_XDMCP) ${ROOTFS}/usr/lib/ublinux/rc.preinit.d/60-lightdm-settings exec_lightdm_xdmcp "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; + LIGHTDM_XDMCP\[*\]) ${ROOTFS}/usr/lib/ublinux/rc.preinit.d/60-lightdm-settings exec_lightdm_xdmcp "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; + LIGHTDM_GREETER\[*\]) ${ROOTFS}/usr/lib/ublinux/rc.preinit.d/60-lightdm-settings exec_lightdm_greeter "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; + X11VNC\[*\]) ${ROOTFS}/usr/lib/ublinux/rc.local.d/41-x11vnc ;; + *) NO_FIND_EXCUTE=1 ;; esac ;; "[${SYSCONF}/save]"|"[save]") case "${NAME_VAR}" in SAVE_ALL_CACHE) ${ROOTFS}/usr/lib/ublinux/rc.halt.pre/85-save-cache ;; - SAVE_ROOTCOPY_CHANGES) ${ROOTFS}/usr/lib/ublinux/rc.halt.pre/86-save-rootcopy ;; - SAVE_ROOTCOPY_INCLUDE) ${ROOTFS}/usr/lib/ublinux/rc.halt.pre/86-save-rootcopy ;; - SAVE_ROOTCOPY_EXCLUDE) ${ROOTFS}/usr/lib/ublinux/rc.halt.pre/86-save-rootcopy ;; - *) NO_FIND_EXCUTE=1 ;; + SAVE_ROOTCOPY_CHANGES) ${ROOTFS}/usr/lib/ublinux/rc.halt.pre/86-save-rootcopy ;; + SAVE_ROOTCOPY_INCLUDE) ${ROOTFS}/usr/lib/ublinux/rc.halt.pre/86-save-rootcopy ;; + SAVE_ROOTCOPY_EXCLUDE) ${ROOTFS}/usr/lib/ublinux/rc.halt.pre/86-save-rootcopy ;; + *) NO_FIND_EXCUTE=1 ;; esac ;; "[${SYSCONF}/network]"|"[network]") diff --git a/ublinux/rc.preinit/10-accounts b/ublinux/rc.preinit/10-accounts index 7234ee6..4dad3d1 100755 --- a/ublinux/rc.preinit/10-accounts +++ b/ublinux/rc.preinit/10-accounts @@ -399,7 +399,7 @@ exec_05_neededusers(){ ## uid # UID пользователя, если необходимо автоматически рассчитывать, то оставить пустым или 'x' ## user_group # Основная группа пользователя, номер или имя, если выбрано пусто или 'x', то 'user_group=user_name' ## extra_groups # Дополнительные группы пользователя. Дополнительные к USERGROUPS -## # Если группа отсутствует или 'x', то 'extra_groups=users'. Если группа не существует, то будет создана. Перечисление через запятую. +## # Если группа отсутствует или 'x', то 'extra_groups=users'. Если группа не существует, то будет создана. Перечисление через запятую. ## optional # Дополнительные параметры, например: '--shell /usr/bin/bash --create-home --no-create-home --no-user-group --non-unique' ## --home-dir <ДОМ_КАТ> # Домашний каталог новой учётной записи ## -s, --shell /usr/bin/bash # Регистрационная оболочка новой учётной записи @@ -407,11 +407,11 @@ exec_05_neededusers(){ ## -M, --no-create-home # Не создавать домашний каталог пользователя ## -N, --no-user-group # Не создавать группу с тем же именем что и у пользователя ## -o, --non-unique # Разрешить создание пользователей с повторяющимися (не уникальными) UID, использовать только совместно с параметром -## --badnames # Не проверять имя на несоответствие правилам использования символов -## password|x # Хеш пароля пользователя, если пусто или 'x', то 'password=${DEFAULTPASSWD}', +## --badnames # Не проверять имя на несоответствие правилам использования символов +## password|x # Хеш пароля пользователя, если пусто или 'x', то 'password=${DEFAULTPASSWD}', ## # Если первые символы (%%), то пароль хранится в нешифрованном виде ## # Если первые символы (!*), то аутентификация запрещена -## # Если первый символ (*) или (!), то аутентификация по паролю заблокирована. Но другие методы входа, +## # Если первый символ (*) или (!), то аутентификация по паролю заблокирована. Но другие методы входа, ## # такие как аутентификация на основе ключей или переключение на пользователя, по-прежнему разрешены ## USERADD[superadmin]='Администратор:1000:x:x:x:$6$E7stRhRS8fCKk7UU$Qoqw62AUaUa5uLIc2KC7WV3MUThhrR8kjXtCODmnKCzKe2zHu1/wmsiWBHZEIk/IQnk/aELQYbUK93OUtrwg60' ## USERADD[user-1]=x diff --git a/ublinux/templates/ublinux-data.ini b/ublinux/templates/ublinux-data.ini index 62b4188..6407171 100644 --- a/ublinux/templates/ublinux-data.ini +++ b/ublinux/templates/ublinux-data.ini @@ -325,7 +325,7 @@ VERSION= ## UPDATEHOME=*no|n|disable|yes|y|enable| ## UPDATEHOME=yes -## Добавить пользователя с ID 1000 в группу Администраторов 'whell' +## Добавить пользователя с ID 1000 в группу Администраторов 'wheel' ## ADDADM=*yes|no ## *yes # Добавить пользователя ID 1000 в группу 'wheel' ## no # Не выполнять действие