Ограничьте вход в систему ssh от LDAP до пользователей, у которых есть / корневой каталог

Вашим sed является не-GNU (вероятно), таким образом-i для того, чтобы на месте отредактировать не поддерживается. Можно избежать его при помощи временного файла:

sed -i -e'/test1/s/^/#SB#/g' file1

становится

sed -e'/test1/s/^/#SB#/g' file1 > temp_file
mv temp_file file1

Конечно, можно сделать это лучше при помощи mktemp как это

tmpfile=`mktemp`; sed -e '/test1/s/^/#SB#/g' file1 > $tmpfile; mv $tmpfile file1

Абсолютно для предотвращения sed и перенаправления без временного файла, поскольку исходный файл станет усеченным.

6
22.03.2013, 11:42
3 ответа

Поскольку управление доступом потребовало бы большой работы arounds на локальном хосте, мы решили только создать группу в Active Directory и ограничить логины пользователей в той группе.

Это может быть сделано путем редактирования/etc/security/pam_winbind.conf файла со следующим полем с SIDs групп или пользователей, мы хотим ограничить доступ к (разделенная запятая).

require_membership_of=

Мы затем отфильтруем наши chroot ограничения на ту группу (или поместим пользователей в локальную группу) ограничить их sftp доступ к их собственным корневым каталогам. Это также позволит нам добавлять выполнение случайную работу mkhomedir назад к pam и затем предоставлять доступ к серверу, мы просто должны добавить пользователя к той группе. Они могут затем войти в систему, и их домашний dir будет создан автоматически.

Спасибо все для справки/идей, но похоже, что AD группами будет самым легким управлять, в конце концов.

2
27.01.2020, 20:30

Решение 1:

Вы можете модуль PAM pam_homecheck

Все, что это делает, проверить, существует ли корневой каталог пользователя и отказывается от сессии, если ни один не найден.

проблема, это только доступно в openSUSE, но можно поместить pam_homecheck.so от загруженных пакетов и зависимости от установки со справкой ldd pam_homecheck.so.

Решение 2: можно добавить ниже содержания в /etc/bashrc но Только применимый для входа в систему оболочки/шпаклевки

[[ $HOME == / ]] && { echo "Error: Home Dir not define.."; exit 1; }

Решение 3:

Отклоните, если домашний dir не установил (протестированный и работающий ниже шагов в Ubuntu)

Отклонять WinScp

aptitude install libpam-script

Открытый"/etc/pam.d/common-auth"с Вашим faorite редактором и добавляют ниже записей

auth optional pam_script.so  # add at the last 

Открытый"/usr/share/libpam-script/pam_script_auth"с Вашим любимым редактором и добавляют ниже записей

#!/bin/bash

Pam_home=$(awk -v u=$PAM_USER -F: '($1 == u ){print $6}' /etc/passwd)

if [[ $Pam_home == / ]]; then
        echo "Error: Home Dir not define.."
        kill -9 $PPID # Force fully kill winscp pid
else
        /usr/lib/openssh/sftp-server
fi

Отклонять от входа в систему Shell/шпаклевки

Это отошлет и запустит тот же скрипт от местоположения по умолчанию т.е."/usr/share/libpam-script/pam_script_auth"Или можно проверить в журналах"tail -f /var/log/auth.log"

1
27.01.2020, 20:30

Один способ идти об этом состоял бы в том, чтобы вынудить их использовать ключи для ssh и запретить логины ssh с помощью паролей. Тот путь только люди с / домой / <пользователь>/.ssh/authorized_keys файл сможет соединиться.

0
27.01.2020, 20:30
  • 1
    я думаю, что частично побеждает цель использовать LDAP для аутентификации. –  jordanm 22.03.2013, 02:12
  • 2
    я предполагаю это, зависит от того, происходит ли пользователь из поля Linux. Если они делают они все еще должны пройти проверку подлинности против LDAP для сможения к ssh в во-первых, и еще больше если их дом находится на сервере NFS. –  tink 22.03.2013, 02:14
  • 3
    мне нравится идея, но некоторыми учетными записями управляют группы людей и не просто людей. Я не думаю, что это имело бы смысл сделать, чтобы они управляли раздающими ключами ко всем людям/компьютерам, которые должны зарегистрироваться на пути sftp для загрузки файлов. –  Rothgar 22.03.2013, 18:41

Теги

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