Один момент, который отсутствует в ответе ilkkachu , заключается в том, что повышение до корня — это только одно конкретное использование для su
. Общая цель su — открыть новую оболочку под учетной записью другого пользователя. Этот другой пользователь может быть root
(и, возможно, чаще всего ), но su
можно использовать для принятия любой личности, которую может аутентифицировать локальная система.
Например, если я вошел в систему как пользователь jim
и хочу исследовать проблему, о которой сообщил mike
, но которую я не могу воспроизвести, я могу попробовать войти в систему как mike
, и запускает команду, которая доставляет ему проблемы.
13:27:20 /home/jim> su -l mike
Password:(I type mike's password (or have him type it) and press Enter)
13:27:22 /home/mike> id
uid=1004(mike) gid=1004(mike) groups=1004(mike)
13:27:25 /home/mike> exit # this leaves mike's login shell and returns to jim's
13:27:29 /home/jim> id
uid=1001(jim) gid=1001(jim) groups=1001(jim),0(wheel),5(operator),14(ftp),920(vboxusers)
Использование опции -l
параметра su
приводит к имитации полного входа в систему (на странице man
).
Однако вышеизложенное требует знания пароля пользователя mike
. Если у меня есть доступ sudo
, я могу войти как mike
даже без его пароля.
13:27:37 /home/jim> sudo su -l mike
Password:(I type my own password, because this is sudo asking)
13:27:41 /home/mike>
Подводя итог, причина, по которой разрешения для исполняемого файла su
такие, как показано, заключается в том, что su
является инструментом общего -назначения , доступным для всех пользователей системы.
Если вам нужны только некоторые локали, запустите dpkg-reconfigure locales
от имени пользователя root и выберите нужные локали.
Или просто отредактируйте /etc/locale.gen
, который по умолчанию содержит длинный список закомментированных -локалей. Раскомментируйте любые локали, которые вы хотите включить, и после этого запустите locale-gen
от имени пользователя root.
Вы можете использовать команду locale-gen
, чтобы добавить желаемую локаль:
Вы можете проверить поддерживаемые локали в разделе /usr/share/i18n/SUPPORTED
, например:
sudo locale-gen fr_FR.UTF-8
sudo update-locale
Новая локаль будет добавлена в команду вывода localectl
:
localectl list-locales
C.UTF-8
en_US.UTF-8
fr_FR.UTF-8