Эта функциональность является средой рабочего стола и конкретным менеджером окон.
В особенности в Gnome, рабочий стол реализован независимо от Вашего менеджера окон. Теми событиями, которые инициированы Gnome, управляет программа регулятора громкости гнома:
(источник: tirania.org)
При изменении конфигурации менеджера окон по умолчанию она будет зависеть от менеджера окон, который Вы выбрали.
Методы, такие как создание файла /etc/nologin
, установка учетной записи входит в оболочки к /bin/false
или /sbin/nologin
эффективно отключите учетные записи пользователей от вхождения в интерактивную оболочку, но не защищайте систему.
Если Вы хотите конкретно ограничить пользователя использованием scp
или sftp
только, установите ограниченную оболочку, которая разработана, чтобы сделать точно это. rssh
пакет является ограниченной оболочкой, разработанной для работы с OpenSSH.
: rssh is a restricted shell for use with OpenSSH, allowing only scp
: and/or sftp. For example, if you have a server which you only want
: to allow users to copy files off of via scp, without providing shell
: access, you can use rssh to do that. It is a alternative to scponly.
Необходимо серьезно рассмотреть установку a chroot
для пользователей, входящих в систему с ограниченным rssh
оболочка.
Считайте и поймите последствия безопасности ограничения пользователей таким способом. Запустите с man
страницы для rssh
и rssh.conf
. Необходимо также понять что a chroot
и как это работает.
Оболочка входа в систему может быть изменена от bash
кому: /usr/sbin/nologin
или /bin/false
действительно предотвратите нормальный вход в систему. Оболочка входа в систему может быть изменена с usermod
:
usermod user_name -s /usr/sbin/nologin
Вы можете добавить это в конфигурацию sshd _:
Match User oracle
ForceCommand set - ""$SSH_ORIGINAL_COMMAND; [ "$1" = "scp" ] || exit 1; CMD=`IFS='\`&;<>'; set - ""$SSH_ORIGINAL_COMMAND; echo $1`; [ "$CMD" ] || exit 1; exec $CMD
Здесь я сопоставляю пользователя 'oracle'. Вместо этого вы можете использовать Match group scponly
для сопоставления пользователей в группе 'scponly'. Если кто-то попытается подключиться способом, не запускающим scp, он автоматически завершит работу с кодом возврата 1.
Если учетная запись использует аутентификацию на основе ключа -, вы можете добавить ключ в файл ключей.ssh/authorized _пользователя с помощью command="<above commands>"
.
Хотя я добавил некоторую защиту от манипулирования файлом, чтобы вызвать выполнение мошеннической команды (путем усечения любых &``;<>
символов ), я не могу быть уверен, что это невозможно сработать вокруг каким-то образом я не думал.
Все это слишком длинно и запутанно для вставки в конфигурационный файл sshd _, а опечатка может испортить работу другим пользователям. Возможно, было бы лучше создать скрипт, который выполняет проверку на "scp", а затем просто вызвать этот скрипт из ForceCommand, что сделает модификации в sshd_config
намного проще. Посмотритеhttps://serverfault.com/questions/749474/ssh-authorized-keys-command-option-multiple-commandsдля некоторых примеров этого.