Как я могу предоставить разрешения для FTP-папки для пользователей активного каталога

У меня есть веб-приложение asp.net, которое создает папку на FTP-сайте, но мне нужно предоставить разрешения на эту папку некоторым пользователям активного каталога.

Как я могу сделать это программно внутри своего приложения при создании папки?


person DkAngelito    schedule 12.05.2009    source источник


Ответы (3)


Стандартный FTP не позволяет изменять разрешения или владельца файла, но FTP-серверы довольно часто разрешают такие вещи с помощью пользовательских команд SITE. По крайней мере, это характерно для FTP-серверов, размещенных в UNIX.

Попробуйте подключиться к серверу с помощью стандартного FTP-клиента и ввести site help. Это должно дать вам список доступных пользовательских команд SITE. Затем вы можете получить информацию об использовании конкретной команды, набрав site help <cmd>.

Я не уверен, какие у вас будут варианты по сравнению с сервером на базе Windows, поскольку модель разрешений более детализирована, чем со стандартными разрешениями UNIX. На сервере UNIX вы часто можете изменить владельца группы и разрешения, но изменение владельца файла не разрешено, если вы не являетесь пользователем root. Я не должен говорить, что вход на FTP-сервер с правами root — действительно плохая идея.

Я надеюсь, что это некоторая помощь.

R

person Vortura    schedule 15.05.2009

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

IIS использует те же права доступа, что и другие методы доступа к файлам в Windows (доступ осуществляется на вкладке «Безопасность» в представлении «Свойства» папки).

Я создал WinForm, который будет делать следующее: создать новую локальную учетную запись пользователя (и добавить ее в группу), создать новый каталог в базовом каталоге нашего FTP-сервера, создать новую виртуальную папку FTP (чтобы пользователь мог сопоставить подключение к папке) и, наконец, дать новому пользователю полный контроль над новым каталогом (а поскольку каталог был виртуальной папкой, новый пользователь имеет полный контроль через FTP).

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

Команда для изменения прав доступа к каталогу (или файлу):

cacls [The path to your new directory] /E /P [The AD user name]:C

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

Чтобы выполнить это из VB.Net:

Shell(System.Configuration.ConfigurationSettings.AppSettings.Item("CACLS_batPath") & " " & strFolderPath & " " & _strUserName, AppWinStyle.NormalFocus, True, -1)

Это откроет видимое командное окно и выполнит пакетный файл, передав ему параметры. (Мне просто пришло в голову, что я делаю это в WinForms, и вызов из ASP.Net может оказаться не таким простым, проверьте здесь информацию о выполнении пакетного файла из ASP.Net: http://codebetter.com/blogs/brendan.tompkins/archive/2004/05/13/13484.aspx)

Содержимое BAT-файла:

echo "update file permissions"
cacls %1 /E /P %2:C
REM PAUSE

Удачи!

person PhillFox    schedule 15.05.2009