Рейтинг:0

Удалить команду удаления из SFTP/WinSCP

флаг kh

Есть ли способ, с помощью которого мы можем запретить любому конкретному пользователю удалять файлы/папки, имеющие полные разрешения от WinSCP.

Заранее спасибо.

Nate T avatar
флаг it
полные права применительно к пользователю или папке?
Neha avatar
флаг kh
Пользователь @Nate T имеет полное разрешение на этот каталог .... наше требование состоит в том, что пользователь не сможет удалить файл из этой папки из winscp ... на сервере Linux мы установили acl для команды rm, и она работает хорошо ...... но пользователь может удалить файл из winscp .... поэтому мы хотим ограничить команду удаления из winscp ...
Nate T avatar
флаг it
Вам нужно держать порт 22 открытым? Нужен ли этому пользователю доступ через SSH по каким-либо другим причинам, или другие пользователи получают доступ через SSH?
Nate T avatar
флаг it
Кроме того, есть ли у вас физический доступ к клиенту, который вы пытаетесь ограничить (локальный или удаленный)? Я думаю, что могу ответить, но без более подробной информации я не могу быть уверен. Пожалуйста, предоставьте эти данные, и если мне нужно обновить ответ, я сделаю это.
muru avatar
флаг us
Какой именно ACL вы использовали?
флаг cn
Что вы подразумеваете под "удалить"? Фактическое удаление файла или также предотвращение ОЧИСТКИ файла (это, по сути, также удаление, хотя это содержимое)
флаг cn
Метод: создайте наблюдатель каталогов (например, для этого есть модуль python) в каталогах, которые вы хотите. Это позволяет отключить удаление, а также позволяет поймать кого-то, удаляющего строки из файла.
флаг hr
*"на сервере linux мы установили acl для команды rm"* вам, вероятно, повезет, установив соответствующий ACL для каталога, файлы которого вы хотите защитить - ограничения на команды часто легко обойти (например, пользователь не может запустить `rm`, но может запустить `find -delete`)
Neha avatar
флаг kh
@Нейт Т Вам нужно держать порт 22 открытым? Нужен ли этому пользователю доступ через SSH по каким-либо другим причинам, или другие пользователи получают доступ через SSH? -----------да, нам нужно держать порт 22 открытым. да, пользователю нужен доступ через SSH для копирования файлов с удаленного сервера на локальную машину и наоборот.... да другие пользователи также получают доступ через SSH
Neha avatar
флаг kh
@Нейт Т Кроме того, есть ли у вас физический доступ к клиенту, который вы пытаетесь ограничить (локальный или удаленный)? Я думаю, что могу ответить, но без более подробной информации я не могу быть уверен. Пожалуйста, предоставьте эти данные, и если мне нужно обновить ответ, я сделаю это. ---------------
Nate T avatar
флаг it
Этому же пользователю, которому нужен ограниченный доступ, также нужен доступ для чтения по ssh, или он нужен другим пользователям? (или оба?)
Nate T avatar
флаг it
Обновил мой ответ. Надеюсь, это будет лучше для вас.
Neha avatar
флаг kh
@Нейт Этому же пользователю, которому нужен ограниченный доступ, также нужен доступ для чтения по ssh, или он нужен другим пользователям? (или оба?) — да, это тот же пользователь, которому нужно ограничить операцию удаления из putty и из winscp
Neha avatar
флаг kh
@Нейт Т наше требование состоит в том, что пользователь не должен иметь возможность выполнять операцию удаления каких-либо файлов/каталогов из winscp или из шпатлевки (для шпатлевки мы ограничили доступ к acl) ..... даже у него/нее есть полные права на файлы/каталоги ............
Neha avatar
флаг kh
@МартинПрикрыл Нет ничего похожего на «ограничение для шпатлевки». PuTTY — это просто SSH-терминал. Было бы неплохо, если бы вы рассказали нам, что именно вы сделали. ---- мы установили acl... из этой команды "/bin/setfacl -m u:john: --- /bin/rm"
флаг tr
Но `/bin/rm` далеко не единственный способ удалить файл! Как уже прокомментировал @steeldriver, есть `find -delete`. Вы также можете использовать какой-нибудь файловый менеджер, например Midnight Commander. Вы можете использовать Python, Perl, PHP. И многие другие. Вы можете *перезаписать* файл. Вы можете *переместить* файл в `/tmp`. + И снова отредактируйте свой вопрос.
Рейтинг:4
флаг tr

Удалите права на запись из файлов и папок на стороне сервера.

В качестве альтернативы вы можете ограничить операцию «удалить» на SFTP-сервере. Видеть Ограничить пользователя SFTP для запуска только ограниченного набора команд/действий в Linux. И убедитесь, что у пользователя есть доступ только к SFTP.

Рейтинг:2
флаг it

Я совершенно уверен, что это невозможно сделать так, как вы надеетесь (через настройки клиента winSCP). Этот форум показывает свидетельство другого администратора сервера с похожей проблемой. После запроса администратор сайта winSCP сообщает ему, что это невозможно в winSCP, и говорит ему сосредоточиться на стороне сервера.

Как следует из сообщений, чтобы запретить этому пользователю доступ, вам нужно будет использовать настройки на стороне сервера.

Одним из изменений, которое чрезвычайно эффективно для предотвращения доступа удаленных клиентов к вашему серверу (погода через openssh, winscp или любой другой клиент SSH), является простое закрытие порта 22. Это порт по умолчанию для трафика SSH.

РЕДАКТИРОВАТЬ: Все еще не уверен, что вы предоставили всю необходимую информацию. Продолжая информацию, которую вы предоставили до сих пор, если порт 22 должен оставаться открытым, вам может потребоваться проявить творческий подход. Тем не менее, я уверен, что можно было бы найти более прямое решение, если бы у меня/нас было больше контекста.

Независимо от метода, который вы используете для ограничения доступа пользователя, вам сначала нужно будет удалить sudo privelege пользователя. удалить с помощью:

gpasswd --удалить pbwriters ПОЛЬЗОВАТЕЛЬ

Я считаю, что ваша цель может быть достигнута на стороне сервера с помощью чаун и chmod команды. Вы захотите установить г= и о = параметры после изменения группы, к которой принадлежит файл. Эта строка должна помочь:

# Заменить DIR именем самой внешней папки
sudo groupadd pbwriters && sudo chown -R :pbwriters DIR && sudo chmod -R 774 DIR

Сейчас если родительский каталог в приведенной выше команде изменено на имя самого внешнего каталога, который вы хотите ограничить, тогда все внутри этого файла будет доступно для записи только тем, кто входит в группу pbwriters. Чтобы дать кому-то доступ на запись, вам просто нужно добавить его в писатели группа:

# Как и прежде, замените USER на имя пользователя
sudo usermod -a -G pbwriters ПОЛЬЗОВАТЕЛЬ
Nate T avatar
флаг it
В качестве запоздалой мысли вы также можете установить для их $SHELL значение [rbash](https://www.networkworld.com/article/2875972/clamping-down-on-users-with-rbash.html). Наряду с chroot это бесценный инструмент для сетевых администраторов. Это, по крайней мере, ограничило бы файлы, к которым они могли получить доступ.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.