Добавление пользователя, который может только выполнить сценарии удаленно

Так, это, кажется, действительно новая видеокарта. Вам будут нужны и актуальное X драйверов и в действительно недавнее ядро — на самом деле, Вам нужен еще выпущенный (по состоянию на начало марта 2011) 2.6.38 ядер. (См. эту статью для больше на предстоящем выпуске ядра.)

Хорошие новости - то, что предварительный выпуск, 2.6.38 ядер уже находятся в дереве для Fedora 15 и альфа-версии Fedora 15, планируется для завтра сегодня (8-го марта 2011). Получите выпуск из http://torrent.fedoraproject.org/.

Я не могу обещать, что это заставит карту работать, но знаки выглядят положительными. Я не уверен, находится ли необходимый код драйвера в драйверах F15 X.org уже, но самый быстрый способ узнать состоит в том, чтобы попробовать его.

Можно даже получить опцию Live Desktop CD, которая позволит Вам протестировать, если она будет работать без ровной переустановки.

Это возможно (вероятно, даже), что необходимые биты превратят его в Fedora 14 через несколько месяцев. Таким образом, просто ожидание является другой опцией.

(Честно, я думаю, что любой из тех будет более оптимальным вариантом, чем собственный двоичный драйвер. У меня не было конца проблемы от этого. Это быстрее в 3D, поэтому если главная 3D производительность является Вашей основной потребностью, это могло бы стоить того, но для общего использования, а.)


Обновление: Так, сегодня (финальная версия) Fedora 15 отсутствует. Мне любопытно — это работало?

14
19.03.2012, 19:58
3 ответа

В authorized_keys файле существует опция команды. Это опции, кажется, делают точно, что Вы хотите.

Обратите внимание, что это не chroot или ограниченная оболочка. Это позволяет выполнять только те команды через ssh. С Вашим примером это было бы:

ssh somehost /local/remote_only_scripts/foo

Для этого authorized_keys файла:

command="/local/remote_only_scripts/foo",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ...public key... 

Существует много пути, если Вы не хотите, чтобы Ваш пользователь смог войти в систему локально. Вы можете также:

  • просто установите его оболочку на/bin/false (возможно, Вам будет нужен/bin/true, так как ssh нужен допустимый журнал в),
  • заблокируйте его пароль, посмотрите passwd -l

РЕДАКТИРОВАНИЕ: добавленный больше опций ограничения и разъясняет, как Вы удаляете локальный доступ.

12
27.01.2020, 19:51
  • 1
    я не думаю, что необходимо указать, что команда в ssh на стороне клиента, он 'вызывается' команда, таким образом, он всегда выполнялся бы ;) Пользователю на удаленном сайте все еще нужна допустимая оболочка, определенная в/etc/passwd. –  jirib 19.03.2012, 10:14
  • 2
    Около command=, опции no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty необходимы для реального ограничения учетной записи. –  jofel 19.03.2012, 10:20
  • 3
    хорошо. Я проснулся в середине ночи и решил проверить ответы. Так как я сонлив, я не буду ассимилировать весь ответ, но спрашивать что-то, что оставляет меня смущенным. Как это препятствует тому, чтобы hg_quest вошел в систему от tty? –  HandyGandy 19.03.2012, 11:19
  • 4
    @HandyGandy Это - самая простая часть. Я добавил 2 способа сделать его, но я думаю, что существует больше –  Coren 19.03.2012, 12:07

Попробуйте это как оболочку входа в систему для пользователя:

#!/bin/sh
basedir=/local/remote_only_scripts
while read -p '$ ' prog args; do
    if [ ! -x "$basedir/$prog" ]; then
        echo "Invalid program: $prog"
    else
        case "$prog $args" in
            *\**|*\?*|*\^*|*\&*|*\<*|*\>*|*\|*|*\;*|*\`*|*\[*|*\]*)
                echo "Invalid character in command";;
            *)
                eval "$prog $args"
                echo;; # force a trailing newline after the program
        esac
    fi
done

Вы, вероятно, также захотите иметь это в authorized_keys зарегистрируйте явно как в ответе Coren; но замените '.../нечто; с программой здесь. Это предотвратит команды от SSH как sftp, scp, и ssh hostname command.

0
27.01.2020, 19:51
  • 1
    Если Вы только хотите, чтобы пользователь смог выполнить команды из Вашего каталога (и нет слишком многих), Вы могли взять "прогр" из чтения выше и использовать избранный оператор, чтобы предложить текстовое меню выбора тех программ и затем сделать чтение для аргументов. Я также протестировал бы это для проверки, что происходит, если Вы вводите набор Ctrl-Cs в различных точках в сценарии. Можно хотеть команду прерывания там также. –  Joe 29.03.2012, 09:05

В от шанса они только должны получить доступ к одному сценарию, это работает действительно хорошо на меня. Добавьте пользователя и измените их оболочку по умолчанию на путь сценария. Когда они соединятся через ssh, он выполнит сценарий и закроет их сеанс.

server1:/ # useradd -s "/local/remote_only_scripts/foo/script.sh" hg_guest

server1:/ # grep hg_guest /etc/passwd

hg_guest:x:2002:100::/home/hg_guest:/local/remote_only_scripts/foo/script.sh

0
27.01.2020, 19:51

Теги

Похожие вопросы