Есть ли что-нибудь, что можно сделать с помощью входа в консоль, но не с помощью входа в систему через SSH?

Попробуйте это в качестве альтернативного решения, которое вызовет cat только при обнаружении файла

find /home/peter/databases -type f -name 'cells.txt' -exec cat {} +

(Если ваша версия find не понимает завершающий + , замените его двумя символами \; )

4
15.12.2018, 18:48
2 ответа

Да.

Вот только некоторые из них.

вход суперпользователя

В таких системах, как FreeBSD и OpenBSD, программа init разрешает вход в систему только как пользователь #0, в однопользовательском режиме, на терминалах, помеченных как безопасные в файле /etc/ttys. А программа login (непосредственно в OpenBSD, через модуль PAM во FreeBSD) принудительно устанавливает флаг secure в многопользовательском режиме.

Debian и Ubuntu аналогично имеют механизм /etc/securetty. Во всех этих системах консоль и виртуальные терминалы ядра (которые не обязательно являются консолью, заметьте) по умолчанию разрешают вход суперпользователю.

В OpenBSD для SSH по умолчанию из коробки не разрешается вход в систему от имени суперпользователя при использовании парольной или клавиатурно-интерактивной аутентификации (но разрешается при использовании аутентификации с открытым ключом). В FreeBSD для SSH по умолчанию из коробки вообще не разрешен вход от имени суперпользователя.

события вывода фреймбуфера/программы ввода с USB

Можно туннелировать X через SSH-соединение, и можно взаимодействовать с программами, использующими терминальное устройство. Но программы, которые ожидают выполнения ввода/вывода через систему устройств "event" Linux, через устройства USB HID и через устройство фреймбуфера, не могут работать через SSH.

дальнейшее чтение

звук

Обычно звук не передается по SSH. Можно вручную направить программы, издающие звук, на сервер PulseAudio по локальной сети, или вручную проложить туннель от удаленных звуковых клиентов к локальному серверу PulseAudio. Но не всякий звук является PulseAudio, для начала.

дальнейшее чтение

Брайль

Такие программы, как BRLTTY, требуют прямого доступа к массиву ячеек "символ+атрибут" виртуального терминального устройства. Если на сервере установлен BRLTTY, он не может получить доступ к сеансам входа в SSH и отобразить их шрифтом Брайля, в то время как он может отображать сеансы входа в виртуальный терминал ядра.

дальнейшее чтение

аварийный режим и режим спасения работают

Загрузка в аварийный режим или режим спасения не запускает SSH-сервер. Ни в том, ни в другом режиме не запускается все то, что лежит в основе работы в сети, не говоря уже о сетевых службах, таких как SSH-сервер.

непредсказуемые вещи PolicyKit

В PolicyKit есть понятие активных и неактивных сеансов входа. Это попытка свести то, что в системе /etc/ttys является набором нескольких атрибутов (on, secure, network, dialup) к единственному переключателю true/false между "active" и "inactive". Это не совсем соответствует миру, в котором существует SSH и ему подобные.

Активная" сессия входа в систему возможна только при входе на консоль или в виртуальный терминал ядра. Вход в систему через SSH всегда считается "неактивным" сеансом входа. В результате могут возникнуть удивительные различия в поведении, поскольку авторы программ и системный администратор могут предоставлять разные разрешения на выполнение различных действий активным и неактивным сеансам входа.

дальнейшее чтение

4
27.01.2020, 20:57

Нет, до тех пор, пока вы не отключите сетевое соединение (или если вы это сделаете, то восстановите его автоматически, что достаточно сложно). Командам по своей сути все равно, через какой интерфейс они выдаются.

Однако возможно, что сеанс SSH будет иметь меньше привилегий, чем консольный сеанс. В этом случае могут быть вещи, которые возможно сделать через сеанс SSH в принципе, но не разрешено для конкретного сеанса SSH, или даже для всех сеансов SSH, которые могут быть открыты в конкретной конфигурации.

Вход в консоль, очевидно, дает некоторые привилегии, связанные с взаимодействием с консолью. Традиционно это означает право на взаимодействие с терминальным устройством (клавиатурой и дисплеем). Современные системы часто связывают с входом в консоль другие привилегии, например, право монтировать съемные устройства, получать доступ к другим периферийным устройствам, таким как аудиоустройства, инициировать приостановку или перезагрузку и т.д. Современные системы Linux используют для этого polkit, с ConsoleKit или systemd's logind для отслеживания того, какой пользователь имеет активную консольную сессию.

Традиционно суперпользователь (root) имеет все привилегии. Все привилегии означают все, и не имеет значения, вошел ли root в систему через SSH или через консоль. Обычно принято отключать прямой вход root через SSH, но это зависит от конфигурации системы. Большинство Unix-систем в конфигурации по умолчанию позволяют получить доступ к учетной записи root через su или sudo из сеанса SSH, но это можно отключить, например, через pam_securetty.

Современные Unix-системы могут ограничивать учетную запись root, например, с помощью SELinux. Усиленная система может разрешать сеансы root по SSH, но ограничивать их таким образом, который не применяется для входа в консоль. Опять же, это будет вопросом конфигурации, например, политики SELinux.

-1
27.01.2020, 20:57

Теги

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