Очередные загадки линукса.
Имеется Debian 11 Stable. В каталог /etc/profile.d добавлен файл go.sh, следующего содержания:
export PATH=/usr/local/go/bin:${PATH}
Права у него такие же как и у других файлов:
# ls -la
итого 44
drwxr-xr-x 2 root root 4096 июн 5 09:33 .
drwxr-xr-x 144 root root 12288 июн 6 08:31 ..
-rw-r--r-- 1 root root 726 авг 12 2020 bash_completion.sh
-rw-r--r-- 1 root root 831 янв 18 2022 flatpak.sh
-rw-r--r-- 1 root root 1107 фев 10 2021 gawk.csh
-rw-r--r-- 1 root root 757 фев 10 2021 gawk.sh
-rw-r--r-- 1 root root 38 июн 5 09:35 go.sh
-rw-r--r-- 1 root root 1384 фев 18 2021 vte-2.91.sh
-rw-r--r-- 1 root root 966 фев 18 2021 vte.csh
По идее, это глобальный профиль, и команды во всех этих файлах должны выполняться для всех пользователей. Тем более что в файле /etc/profile я вижу:
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi
Однако по-факту оказывается, что путь к Go устанавливается только для пользователя root. А у простых пользователей скрипт go.sh почему-то не срабатывает, и в PATH нет пути до директории Go.
Почему так? Как заставить работать скрипт в каталоге /etc/profile.d для каждого пользователя а не только для суперпользователя?