выполнение программы в linux через samba двойной щелчок из windows

Вы делаете слишком много предположений в своем вопросе. Если бы я просто ответил на ваш заголовок, я бы сказал «сценарий». Я не знаю общих инструментов, потому что это не то, что вы обычно делаете.

У вас есть стандартная модель разрешений Unix и списки контроля доступа . Первый управляется с помощью chmodи chflags-, другой — с помощью setfaclи getfacl.

Я не вижу никакой проблемы в просмотре списков ACL по одному за раз. Это способ работы Unix. Тогда вы сможете построить хорошие пайплайны. Если вы хотите только проверить, имеют ли файлы ACL, отличные от родительских, то создайте конвейер соответствующим образом.

Судя по вашему вопросу, вы, кажется, считаете очевидным, как вы хотите следить за вещами и держать их на месте. Но вы не приводите никаких конкретных примеров. То, что очевидно для вас, не очевидно для остальных.

Итак! Есть ли у меня сценарий для решения вашей конкретной проблемы? Нет. Даже если вы поставите тег «awk», я не собираюсь его писать:-)

Но у меня есть некоторые типичные паттерны:

1. Контролировать

ACL могут быть чрезвычайно мощными, и, настраивая все с огромным вниманием к деталям, вы можете гарантировать, что разрешения останутся такими, как вы предполагали. Это, естественно, требует, чтобы вы были ответственными. Используя правильные ACL, вы получаете нечто гораздо более мощное, чем простые пользователи/группы. Если я назначаю контроль, я приложу огромные усилия, чтобы убедиться, что все настроено так, как я хочу. Если это так, то нам следует обсудить, как избежать чрезмерной снисходительности в конкретном контексте. Если пользователи не предназначены для установки разрешений, мы должны установить их соответствующим образом. Наследование может быть проблемой, но ее можно решить.

2. Взять под контроль

Другим типичным и простым подходом может быть простой сброс разрешений. Это удобно, если больше людей имеют административный доступ.Таким образом, вместо того, чтобы полагаться на то, что выглядит нормально, определите свои узкие места и сбросьте разрешения. Если вы хотите, чтобы файлы имели те же разрешения, что и родительский, просмотрите родительские и сбросьте дочерние. Система «поможет» любому незадачливому администратору, установившему неправильные разрешения. В этом случае сценарий будет представлять собой тривиальный список chmod/chflags/setfacls/setuid.

3. Дворник

Если у вас есть действительно сложная система с ослабленной системой безопасности, и вам нужно действовать как уборщик и осознанно очищать (, а не просто взять на себя управление ), то в некоторых случаях имеет смысл изучить Системы обнаружения вторжений (IDS ). Одной из таких хорошо -известных систем может быть натяжной трос . Это помогает вам контролировать вашу систему и уведомлять вас, если происходят неожиданные изменения. В частности, вам следует обратить внимание на политику tripwire twpolicy и свойствоp - Permission & filemode bits

auditd также может вас заинтересовать.

0
29.04.2020, 21:19
1 ответ

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

Возможный обходной путь, основанный на текущем процессе, который вы описали (пользователь подключается через PuTTY, запускает программу и затем выходит из системы ), может состоять в том, чтобы автоматизировать этот процесс как сценарий, который запускается на локальном компьютере пользователя. компьютер. Один из способов сделать это, поскольку у вас уже установлен PuTTY, — использовать Plink. (найти документы для Plink здесь)Plink позволяет вам запустить сеанс SSH и выполнить команду из командной строки, как вы могли бы сделать с клиентом SSH в Linux. Рассмотрите возможность создания пакетного сценария (.bat )со следующим изменением значений переменных по мере необходимости:

@ECHO OFF
SET ssh_server=192.168.0.100
SET ssh_user=ron
SET ssh_pass=mynameisron
SET putty_path="C:\Program Files\PuTTY"
SET ssh_cmd="startvncsession.x"
%putty_path%\plink.exe -no-antispoof -ssh -pw %ssh_pass% %ssh_user%@%ssh_server% %ssh-cmd%

При первом запуске вам будет предложено добавить ключ в кеш, но при последующих запусках такого запроса не будет.

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

.
@ECHO OFF
SET ssh_server=192.168.0.100
SET ssh_user=ron
SET putty_path="C:\Program Files\PuTTY"
SET ssh_cmd="startvncsession.x"
%putty_path%\plink.exe -no-antispoof -ssh %ssh_user%@%ssh_server% %ssh-cmd%

Выполнение приведенной выше команды будет каждый раз запрашивать у пользователя пароль, или вы можете настроить аутентификацию с открытым ключом (см. связанные документы выше ).

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

@ECHO OFF
SET ssh_server=192.168.0.100
SET putty_path="C:\Program Files\PuTTY"
SET ssh_cmd="startvncsession.x"
%putty_path%\plink.exe -no-antispoof -ssh %ssh_server% %ssh-cmd%

С помощью этого скрипта пользователю будет предложено ввести имя пользователя и пароль.

1
19.03.2021, 02:06

Теги

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