Fix '25-accounts-sync' and rename to ENVIRONMENT

master v2.105
Dmitry Razumov 9 months ago
parent 6e314c3a60
commit 815f15fb3a
Signed by: asmeron
GPG Key ID: 50BC1DB583B79706

@ -852,17 +852,21 @@ get_conf_useradd_from_system(){
&& SELECT_PASSWORD=${BASH_REMATCH[2]}
[[ ${SELECT_PASSWORD} == "!*" && ${SELECT_PLAINPASSWORD} != "x" ]] && SELECT_PASSWORD="${SELECT_PLAINPASSWORD}"
#SELECT_EXTRAGROUPS=$(printf "%s\n" $(${CHROOT} id -nrG ${SELECT_USER}) | sort -u | xargs | tr " " ",")
#SELECT_EXTRAGROUPS=${SELECT_EXTRAGROUPS//,nobody/}; SELECT_EXTRAGROUPS=${SELECT_EXTRAGROUPS//nobody/}
# У id убираем первую группу, это основная группа
SELECT_EXTRAGROUPS=$(comm --nocheck-order -13 <(printf "%s\n" ${USERGROUPS//,/ } ${DEFAULTGROUP//,/ } | sort -u) <(printf "%s\n" $(${CHROOT} id -nrG ${SELECT_USER} | sed -E 's/([^ ]*) (.*)/\2/') | sort -u) | xargs | tr " " ",") #'
# Все дополнительные группы по умолчанию для всех пользователей ${USERGROUPS} ${DEFAULTGROUP}
SYSTEM_EXTRAGROUPS=$(printf "%s\n" ${USERGROUPS//,/ } ${DEFAULTGROUP//,/ } | sort -u)
# Все дополнительные группы полученные из системы на пользователя ${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 " " ",")
#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 " " ",") #"
[[ -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|') \
)
local DATA_SYSUSERS_GROUP DATA_SYSUSERS_GECOS DATA_SYSUSERS_HOME DATA_SYSUSERS_SHELL
@ -1047,6 +1051,7 @@ get_conf_groupadd_from_system(){
# Загрузить файлы которые совпадают в каталогах /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|') \
)
# Выбираем пользователей которые входят в выбранную группу из systemd sysusers
@ -1069,7 +1074,7 @@ get_conf_groupadd_from_system(){
[[ ${RETURN_DATA_SYSUSERS_MEMBERS} == "yes" && ${RETURN_DATA_SYSUSERS_GID} == "yes" ]] && return 0
# Если в systemd sysusers MEMBERS совпадает с системным, а GID не указан (динамический), то выход
# Если не показывать такие группы, то пожно ложно не вывести, если вдруг намеренно пользоваель указал GID у динамической группы
# Из за вохможной ошибки, отключаю
# Из за возможной ошибки, отключаю
#[[ ${RETURN_DATA_SYSUSERS_MEMBERS} == "yes" && -z ${RETURN_DATA_SYSUSERS_GID} ]] && return 0
fi
echo "GROUPADD[${SELECT_GROUP}]='${SELECT_MEMBERS}:${SELECT_GID}:${SELECT_OPTIONAL}:${SELECT_ADMINISTRATORS}:${SELECT_PASSWORD}'"
@ -1475,6 +1480,7 @@ ubconfig_exec_system(){
;;
"[${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)

@ -36,18 +36,64 @@ SOURCE=${SYSCONF}/users; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null
## shutdown # При завершении работы системы синхронизировать указанного пользователя в системе с глобальной конфигурацией
## USERADD_SYNC[superadmin]=boot,shutdown
exec_useradd_sync(){
remove_ubconfig(){
# Удалить пользователей из глобальной конфигурации
local PARAM="$1"
local FILE_LOGINDEFS="${ROOTFS}/etc/login.defs"
if [[ ${PARAM} == '@all' ]]; then
# Удалить всех пользователей из глобальной конфигурации
${ROOTFS}/usr/bin/ubconfig --quiet --target global remove [users] USERADD[*] USERSHADOW[*]
elif [[ ${PARAM} == '@users' ]]; then
# Удалить пользователей 1000<=UID<=6000 из глобальной конфигурации
# Все пользователи кроме системных
local UID_MIN=$([[ $(< "${FILE_LOGINDEFS}") =~ [^#[^:blank:]]*UID_MIN[[:blank:]]+([[:digit:]]+) ]]; echo -n "${BASH_REMATCH[1]}")
local UID_MAX=$([[ $(< "${FILE_LOGINDEFS}") =~ [^#[^:blank:]]*UID_MAX[[:blank:]]+([[:digit:]]+) ]]; echo -n "${BASH_REMATCH[1]}")
[[ -n ${!USERADD[@]} ]] && while IFS= read -u3 SELECT_USER; do
IFS=':' read -u4 SELECT_GECOS SELECT_UID NULL 4<<< ${USERADD[${SELECT_USER}]}
if [[ ${SELECT_UID} == @(""|"x"|"X") ]] || [[ ${SELECT_UID} -ge ${UID_MIN} && ${SELECT_UID} -le ${UID_MAX} ]]; then
${ROOTFS}/usr/bin/ubconfig --quiet --target global remove [users] USERADD[${SELECT_USER}] USERSHADOW[${SELECT_USER}]
fi
done 3< <(printf "%s\n" "${!USERADD[@]}")
elif [[ ${PARAM} == '@systems' ]]; then
# Удалить пользователей 500<=UID<=999 из глобальной конфигурации
# Пользователи системные
local UID_MIN_SYS=$([[ $(< "${FILE_LOGINDEFS}") =~ [^#[^:blank:]]*SYS_UID_MIN[[:blank:]]+([[:digit:]]+) ]]; echo -n "${BASH_REMATCH[1]}")
local UID_MAX_SYS=$([[ $(< "${FILE_LOGINDEFS}") =~ [^#[^:blank:]]*SYS_UID_MAX[[:blank:]]+([[:digit:]]+) ]]; echo -n "${BASH_REMATCH[1]}")
[[ -n ${!USERADD[@]} ]] && while IFS= read -u3 SELECT_USER; do
IFS=':' read -u4 SELECT_GECOS SELECT_UID NULL 4<<< ${USERADD[${SELECT_USER}]}
if [[ ${SELECT_UID} != @(""|"x"|"X") && ${SELECT_UID} -ge ${UID_MIN_SYS} && ${SELECT_UID} -le ${UID_MAX_SYS} ]]; then
${ROOTFS}/usr/bin/ubconfig --quiet --target global remove [users] USERADD[${SELECT_USER}] USERSHADOW[${SELECT_USER}]
fi
done 3< <(printf "%s\n" "${!USERADD[@]}")
elif [[ ${PARAM} =~ ^([[:digit:]]+)'-'*([[:digit:]]*)$ ]]; then
# Удалить пользователей X<=UID<=Y из глобальной конфигурации
local UID_MIN=${BASH_REMATCH[1]}
local UID_MAX=${BASH_REMATCH[2]}
[[ -n ${UID_MAX} ]] || UID_MAX=${UID_MIN}
[[ -n ${!USERADD[@]} ]] && while IFS= read -u3 SELECT_USER; do
IFS=':' read -u4 SELECT_GECOS SELECT_UID NULL 4<<< ${USERADD[${SELECT_USER}]}
if [[ ${SELECT_UID} != @(""|"x"|"X") && ${SELECT_UID} -ge ${UID_MIN} && ${SELECT_UID} -le ${UID_MAX} ]]; then
${ROOTFS}/usr/bin/ubconfig --quiet --target global remove [users] USERADD[${SELECT_USER}] USERSHADOW[${SELECT_USER}]
fi
done 3< <(printf "%s\n" "${!USERADD[@]}")
else
# Входящий параметр - имя пользователя
${ROOTFS}/usr/bin/ubconfig --quiet --target global remove [users] USERADD[${PARAM}] USERSHADOW[${PARAM}]
fi
}
set_ubconfig(){
local PARAM=$1
local GET_USERADD=$(get_conf_useradd_from_system ${PARAM})
if [[ -n ${GET_USERADD} ]]; then
eval ${ROOTFS}/usr/bin/ubconfig --quiet --target global remove [users] ${GET_USERADD}
local PARAM="$1"
local GET_USERADD=$(get_conf_useradd_from_system "${PARAM}")
if [[ ${GET_USERADD} != "" ]]; then
eval ${ROOTFS}/usr/bin/ubconfig --quiet --target global set [users] ${GET_USERADD}
fi
local GET_USERSHADOW=$(get_conf_usershadow_from_system ${PARAM})
if [[ -n ${GET_USERSHADOW} ]]; then
eval ${ROOTFS}/usr/bin/ubconfig --quiet --target global remove [users] ${GET_USERSHADOW}
# TODO: Если задан диапазон пользователей, пример 0-999, то GET_USERSHADOW будет содержать всех пользователей в этом диапазоте
# А нужно выбрать только пользователей которые содержатся в GET_USERADD
if [[ ${GET_USERSHADOW} != "" ]]; then
eval ${ROOTFS}/usr/bin/ubconfig --quiet --target global set [users] ${GET_USERSHADOW}
fi
fi
}
[[ $1 == @("set="|"set+="|"set++="|"set-="|"set--="|"remove") ]] && COMMAND=$1 && shift
[[ -n ${COMMAND} ]] || COMMAND="set="
@ -57,28 +103,31 @@ exec_useradd_sync(){
declare -A USERADD_SYNC
[[ ${PARAM%%=*} =~ [!\$%\&()*+,./:\;\<\=\>?\@\^\{|\}~-] ]] || eval "${PARAM%%=*}=\${PARAM#*=}"
fi
# Если синхронизируем пользователей по шаблону, то удалим всех пользователей из глобальной конфигурации
if [[ ${USERADD_SYNC} =~ 'shutdown' ]]; then
${ROOTFS}/usr/bin/ubconfig --quiet --target global remove [users] USERADD[*]
${ROOTFS}/usr/bin/ubconfig --quiet --target global remove [users] USERSHADOW[*]
fi
while IFS= read -u3 SELECT_USERADD_SYNC; do
if [[ ${SELECT_USERADD_SYNC} == 'shutdown@all' ]]; then
remove_ubconfig "@all"
set_ubconfig "@all"
elif [[ ${SELECT_USERADD_SYNC} == 'shutdown@users' ]]; then
remove_ubconfig "@users"
set_ubconfig "@users"
elif [[ ${SELECT_USERADD_SYNC} == 'shutdown@systems' ]]; then
remove_ubconfig "@systems"
set_ubconfig "@systems"
elif [[ ${SELECT_USERADD_SYNC} =~ ^'shutdown@'(([[:digit:]]+)'-'*([[:digit:]]*))$ ]]; then
set_ubconfig "${BASH_REMATCH[1]}"
elif [[ ${SELECT_USERADD_SYNC} == 'shutdown' ]]; then
remove_ubconfig "@users"
remove_ubconfig "@systems"
set_ubconfig
elif [[ ${SELECT_USERADD_SYNC} =~ ^'shutdown@'(([[:digit:]]+)'-'*([[:digit:]]*))$ ]]; then
local LIST_USERS="${BASH_REMATCH[1]}"
remove_ubconfig "${LIST_USERS}"
set_ubconfig "${LIST_USERS}"
fi
done 3<<< "${USERADD_SYNC//@(,|;)/$'\n'}"
if [[ "$(declare -p USERADD_SYNC 2>/dev/null)" == "declare -A"* ]]; then
while IFS= read -u3 SELECT_USER; do
[[ -n ${!USERADD_SYNC[@]} ]] && while IFS= read -u3 SELECT_USER; do
# В массиве 0 запись игнорируем, т.к. это параметр не ассоциативного массива
if [[ ${SELECT_USER} != 0 && ${USERADD_SYNC[${SELECT_USER}]} =~ 'shutdown' ]]; then
remove_ubconfig "${SELECT_USER}"
set_ubconfig "${SELECT_USER}"
fi
done 3< <(printf "%s\n" "${!USERADD_SYNC[@]}")
@ -101,9 +150,9 @@ exec_useradd_sync(){
## GROUPADD_SYNC[users]='shutdown'
exec_groupadd_sync(){
set_ubconfig(){
local PARAM=$1
local GET_GROUPADD=$(get_conf_groupadd_from_system ${PARAM})
if [[ -n ${GET_GROUPADD} ]]; then
local PARAM="$1"
local GET_GROUPADD=$(get_conf_groupadd_from_system "${PARAM}")
if [[ ${GET_GROUPADD} != "" ]]; then
eval ${ROOTFS}/usr/bin/ubconfig --quiet --target global remove [users] ${GET_GROUPADD}
eval ${ROOTFS}/usr/bin/ubconfig --quiet --target global set [users] ${GET_GROUPADD}
fi

@ -59,11 +59,11 @@ exec_udevrules(){
rm -f "${ROOTFS}/etc/udev/rules.d/${FILE_UDEV_70##*/}"
fi
}
exec_enviroment(){
exec_environment(){
## Установить переменные окружения глобальные и пользовательские
## ENVIROMENT[system:<var>]=<value>
## ENVIROMENT[profile:<var>]=<value>
## ENVIROMENT[<user>:<var>]=<value>
## ENVIRONMENT[system:<var>]=<value>
## ENVIRONMENT[profile:<var>]=<value>
## ENVIRONMENT[<user>:<var>]=<value>
## system:<--># Установить глобальные переменные окружения systemd в /run/environment.d/99-ubconfig.conf
## profile:<-># Установить переменные окружения только для оболочек входа совместимые Bourne shell в /etc/profile.d/99-ubconfig.conf
## <user>:<--># Имя пользователя для которого будет установлена переменная окружения systemd в домашнем каталоге пользователя ~/.config/environment.d/99-ubconfig.conf
@ -77,10 +77,10 @@ exec_enviroment(){
[[ -f ${ROOTFS}/${FILE_PROFILE_SH_ENV} ]] && rm -f ${ROOTFS}/${FILE_PROFILE_SH_ENV} 2>/dev/null
[[ -f ${ROOTFS}/${FILE_PROFILE_CSH_ENV} ]] && rm -f ${ROOTFS}/${FILE_PROFILE_CSH_ENV} 2>/dev/null
rm -f ${ROOTFS}/home/*/${FILE_SYSTEMD_USER_ENV} 2>/dev/null
if [[ -n ${ENVIROMENT[@]} ]]; then
for SELECT in "${!ENVIROMENT[@]}"; do
if [[ -n ${ENVIRONMENT[@]} ]]; then
for SELECT in "${!ENVIRONMENT[@]}"; do
IFS=: read -r TYPE VARIABLE OTHER <<< ${SELECT}
VALUE=${ENVIROMENT[${SELECT}]}
VALUE=${ENVIRONMENT[${SELECT}]}
if [[ ${TYPE} == "system" ]]; then
[[ -f ${ROOTFS}/${FILE_SYSTEMD_ENV} ]] || { [[ -d ${ROOTFS}/${FILE_SYSTEMD_ENV%/*} ]] || install -dm0755 ${ROOTFS}/${FILE_SYSTEMD_ENV%/*}; }
echo "${VARIABLE}=\"${VALUE}\"" >> ${ROOTFS}/${FILE_SYSTEMD_ENV}

@ -4,6 +4,7 @@
# Файл ublinux.ini рекомендуется использовать в папке /ublinux-data/
# Если вы работаете в режиме песочницы и у вас отсутствует папка
# /ublinux-data/, вы можете перенести его в папку /ublinux/
#
# We recommend using the ublinux.ini file in the /ublinux-data/ folder
# If you are working in sandbox mode and you don't have the /ublinux-data/
# folder, you can move it to the /ublinux/ folder
@ -12,28 +13,33 @@
# UBLinux настройка системы
################################################################################
# How it works
# Краткое описание как работает этот файл конфигурации
# [/path/filename]755 # select file for changing. if its not exists it will be created with 755 permisions
# [/path/filename]a+x # выбор файла для изменений, если файла нет, он будет создан с правами по умолчанию плюс chmod a+x
# [/path/filename]a+x [/bin/bash] # Необязательный параметр во второй части в квадратных скобках означает "запустить с", возможные варианты:
# # [/bin/bash/] запустит с башем
# # [.] выполнить как часть initramfs
# # [chroot . ] сделать чрут в sysroot и выполнить там
# Parameter=value # it will change string Parameter=* in file to Parameter=value. If there is no parameter the string will be added to end of file
# Параметр=значение # меняет параметр в файле на нужное значение. Если параметра нет, строка будет добавлена в конец файла
# Краткое описание файла конфигурации
# [/path/filename] # Выбор файла для изменений, если файла нет, он будет создан с правами по умолчанию
# [/path/filename]a+x # Выбор файла для изменений, если файла нет, он будет создан с правами a+x
# [/path/filename]755 # Выбор файла для изменений, если файла нет, он будет создан с правами 755
# [/path/filename] [/bin/bash] # Необязательный параметр во второй части в квадратных скобках означает "запустить с", возможные варианты:
# [/bin/bash] # Запустит с башем
# [.] # Выполнить как часть initramfs
# [chroot . ] # Сделать чрут в sysroot и выполнить там
# [/path/filename]a+x [/bin/bash]
# [/path/filename]a+x [.]
# [/path/filename]a+x [chroot .]
#
# <parameter>=<value> # it will change string Parameter=* in file to Parameter=value. If there is no parameter the string will be added to end of file
# <параметр>=<значение> # Меняет параметр в файле на нужное значение. Если параметра нет, строка будет добавлена в конец файла
# <параметр> # Параметр не должен содержать ключевые блоки символов: = --= = += ++=
# +string # add string to end of file in case it's not already in file
# +строка # добавит строку в файл, если она ещё не прописана в нём
# +строка # Добавит строку в файл, если она ещё не прописана в нём
# |string # add string to end of file in any case
# |строка # добавит строку в файл без проверки
# |строка # Добавит строку в файл без проверки
# -expression # remove all string with expression (see info sed). symbols .* matches all strings in file
# -выражение # удаляет строки соответствующие выражению (см info sed). Если указать .* то будут удалены все строки
# -выражение # Удаляет строки соответствующие выражению (см info sed). Если указать .* то будут удалены все строки
################################################################################
# Примеры:
# ubconfig set [/etc/pacman.d/ub-mirrorlist] '|Server=http://repo.ublinux.ru/2405/$repo/$arch' '|Server=https://repo.ublinux.ru/2405/$repo/$arch'
#
################################################################################
# Поддерживаемые параметры Grub
# Поддерживаемые параметры Grub:
# services_enable=item_1,item_2,...,item_n # Перечень сервисов/юнитов которые должны быть запущены, разделитель (,) или (;). Пример: services_enable=sbm,nmb,cockpit.socket
# services_disable=item_1,item_2,...,item_n # Перечень сервисов/юнитов которые должны быть выключены, разделитель (,) или (;). Пример: services_disable=sbm,nmb,cockpit.socket
# useradd=<user_name_1:gecos:uid:user_group:extra_groups:password>;...;<user_name_2:gecos:uid:user_group:extra_groups:password>
@ -101,9 +107,9 @@ VERSION=
#APPARMOR=yes
## Установить переменные окружения глобальные и пользовательские
## ENVIROMENT[system:<var>]=<value>
## ENVIROMENT[profile:<var>]=<value>
## ENVIROMENT[<user>:<var>]=<value>
## ENVIRONMENT[system:<var>]=<value>
## ENVIRONMENT[profile:<var>]=<value>
## ENVIRONMENT[<user>:<var>]=<value>
## system: # Установить глобальные переменные окружения systemd в /etc/environment.d/ubconfig-etc-10-system.conf
## profile: # Установить переменные окружения только для оболочек входа совместимые Bourne shell в /etc/profile.d/ubconfig-10-system.sh /etc/profile.d/ubconfig-10-system.csh
## <user>: # Имя пользователя для которого будет установлена переменная окружения systemd в домашнем каталоге пользователя ~/.config/environment.d/ubconfig-user-10-system.conf
@ -112,18 +118,18 @@ VERSION=
##
## Перенос временных файлов КДЕ4 в отдельную папку. Убирает притормаживание главного меню в КДЕ4
## Создать каталог: mkdir -p /mnt/livedata/ublinux-data/tmp
## ENVIROMENT[profile:KDEVARTMP]="/mnt/livedata/ublinux-data/tmp"
## ENVIRONMENT[profile:KDEVARTMP]="/mnt/livedata/ublinux-data/tmp"
##
## Если на видеокарте nvidia наблюдается эффект разрыва окон, то есть 2 варианта борьбы с этим
## Выберите один из вариантов, не включайте сразу 2 переменные сразу
## 1 вариант. Может снизить производительность в играх
## ENVIROMENT[profile:__GL_YIELD]="USLEEP"
## ENVIRONMENT[profile:__GL_YIELD]="USLEEP"
## 2 вариант. Не на каждой видеокарте может сработать
## ENVIROMENT[profile:KWIN_TRIPLE_BUFFER]=1
## ENVIRONMENT[profile:KWIN_TRIPLE_BUFFER]=1
##
#ENVIROMENT[system:VAR_SYS]="my value for system"
#ENVIROMENT[profile:VAR_PROFILE]="my value for all users"
#ENVIROMENT[superadmin:VAR_USER]="my value for select user"
#ENVIRONMENT[system:VAR_SYS]="my value for system"
#ENVIRONMENT[profile:VAR_PROFILE]="my value for all users"
#ENVIRONMENT[superadmin:VAR_USER]="my value for select user"
## Тип используемого профиля конфигурации PAM авторизации, authselect. Профили /usr/share/authselect/default
## AUTHPAM=<profile>|disable|no|off

Loading…
Cancel
Save