Разрешение доступа с консоли к другим приложениям

Если вы хотите разрешить пользователям консоли использовать другие приложения, вам придется немножко потрудиться.

Прежде всего учтите, доступ с консоли возможен только к приложениям, размещённым в каталогах /sbin и /usr/sbin, поэтому приложение, которое вы хотите запускать, должно быть здесь. Убедившись в этом, выполните следующие действия:

  1. Создайте ссылку с именем вашего приложения, например, foo, на приложение /usr/bin/consolehelper:
    cd /usr/bin
    ln -s consolehelper foo

  2. Создайте файл /etc/security/console.apps/foo:
    touch /etc/security/console.apps/foo

  3. Создайте файл конфигурации PAM для службы foo в каталоге /etc/pam.d/. Легче всего начать с копии файла конфигурации PAM для службы halt, изменив её по своему усмотрению:
    cp /etc/pam.d/halt /etc/pam.d/foo

Теперь при запуске программы /usr/bin/foo, будет вызвано приложение consolehelper, проверяющее подлинность пользователя с помощью /usr/sbin/userhelper. Чтобы проверить подлинность пользователя, consolehelper запросит пароль, если /etc/pam.d/foo является копией файла /etc/pam.d/halt (в противном случае, это приложение сделает то, что указано в /etc/pam.d/foo) а затем запустит /usr/sbin/foo с правами пользователя root.