2009-05-12 8 views

Répondre

1

Le protocole FTP standard ne permet pas de modifier les autorisations ou la propriété des fichiers, mais il est assez fréquent que les serveurs FTP autorisent ce type de chose via des commandes SITE personnalisées. Au moins, cela est courant pour les serveurs FTP hébergés UNIX. Essayez de vous connecter au serveur avec un client FTP standard et en tapant site help. Cela devrait vous donner une liste des commandes SITE personnalisées disponibles. Vous pouvez ensuite obtenir l'utilisation d'une commande spécifique en tapant site help <cmd>.

Je ne suis pas sûr de ce que vos options seront contre un serveur Windows, car le modèle d'autorisations est plus granulaire qu'avec les autorisations UNIX standard. Sur un serveur UNIX, vous pouvez souvent modifier la propriété du groupe et les autorisations, mais la modification du propriétaire du fichier n'est pas autorisée sauf si vous êtes root. Je ne devrais pas avoir à dire que se connecter à un serveur FTP en tant que root est une très mauvaise idée.

J'espère que c'est de l'aide.

R

1

Vous ne dites pas ce type de serveur FTP que vous utilisez, ou de quelle manière vous voulez que l'utilisateur AD d'interagir avec le nouveau dossier. Je suppose que vous utilisez le service FTP d'IIS, et que vous avez besoin de vos utilisateurs AD pour pouvoir utiliser FTP pour accéder au nouveau dossier. IIS utilise les mêmes droits d'accès que les autres méthodes d'accès aux fichiers dans Windows (accessibles depuis l'onglet Sécurité de la vue Propriétés du dossier).

J'ai créé un WinForm qui ferait ce qui suit: créer un nouveau compte utilisateur local (et les ajouter à un groupe), créer un nouveau répertoire sous le répertoire de base de notre serveur FTP, créer un nouveau dossier FTP virtuel l'utilisateur peut mapper une connexion au dossier), et enfin donner au nouvel utilisateur un contrôle total du nouveau répertoire (et parce que le répertoire était un dossier virtuel, le nouvel utilisateur a un contrôle total via FTP).

Il semble que vous n'ayez pas besoin de créer le nouvel utilisateur, il vous suffit de leur donner la permission d'apporter des modifications au nouveau répertoire. Dans mon application, je shell pour invoquer un fichier de commandes et lui passer quelques paramètres.

La commande pour modifier un répertoire (ou du fichier) des droits d'accès est:

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

Je ne me souviens pas ce que ces paramètres signifient plus; Je vous suggère de rechercher la commande pour vous assurer qu'elle fait exactement ce que vous voulez.

Pour exécuter cette VB.Net de:

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

Cela ouvrira une fenêtre de commande visible et exécuter le fichier batch, en lui passant les paramètres. (Il m'est apparu que je le fais dans WinForms et il peut ne pas être si facile d'appeler à partir d'ASP.Net, vérifiez ici pour des informations sur l'exécution d'un fichier de commandes à partir d'ASP.Net: http://codebetter.com/blogs/brendan.tompkins/archive/2004/05/13/13484.aspx)

Le contenu du fichier BAT sont:

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

Bonne chance!

1

Je suppose que vous créez le dossier et souhaitez définir les autorisations dans une application C#.

Vous voulez regarder la classe DirectorySecurity (msdn)

Vous créez une classe DirectorySecurity pour le répertoire nouvellement créé et puis vous ajoutez FileSystemAccessRules pour définir l'accès approprié en fonction des utilisateurs et des groupes AD.

Questions connexes