Jak nadać i odczytać uprawnienia plikowi przez idFTP

batas2

Nie będę tutaj pisał po co ustawiać uprawnienia plikowi czy odczytywać je, itd., bo każdy to wie ;)

Potrzebny będzie nam do tego komponent TIdFTP a pakietu INDY (http://www.indyproject.org/) nazwijmy go po prostu IdFTP.

Najpierw zajmiemy się nadawaniem praw:

with IdFTP do
  begin    
    Username := 'Nazwa Użytkowinika';
    Password := 'Hasło';
    Host := 'ftp://adres_ftp.pl';

    Connect; // łączymy
    SendCmd('SITE CHMOD 777 index.php'); // nadajemy prawa plikowi index.php oczywiście prawa i plik można zmieniać dowoli.
    Disconnect; // rozłączamy się
  end;

Nadaliśmy już prawa plikowi index.php a teraz czas na odczytywanie praw:

var
  FileList : TStringList;
begin
  FileList := TStringList.Create;
  
  with IdFTP do
    begin
      Username := 'Nazwa Użytkowinika';
      Password := 'Hasło';
      Host := 'ftp://adres_ftp.pl';

      Connect;
      List(FileList);
    end;

  Label1.Caption := 'Prawa dostępu pliku: ' +  IdFTP.DirectoryListing.Items[0].FileName + #13 +
                    'Prawa właściciela: ' + IdFTP.DirectoryListing.Items[0].OwnerPermissions + #13 +
                    'Prawa grupy: ' + IdFTP.DirectoryListing.Items[0].GroupPermissions + #13 +
                    'Prawa innych użytkowników: ' + IdFTP.DirectoryListing.Items[0].UserPermissions;
  IdFTP.Disconnect;
  FileList.Free;
end;

W ten sposób odczytamy prawa plikowi o indexie 0 i wyświetlimy je na labelu.

IdFTP.DirectoryListing.Items[0].OwnerPermissions; //Prawa właściciela 
IdFTP.DirectoryListing.Items[0].GroupPermissions; //Prawa grupy
IdFTP.DirectoryListing.Items[0].UserPermissions; //Prawa innych użytkowników

Teraz trochę dla tych, co nie wiedzą jak się oznacza prawa dostępu:

Plikom lub katalogom trzeba nadać trzy komplety praw dostępu, każdy z nich to
Prawo wykonania: x=1 // jeśli jest to katalog oznacza to możliwość wejścia do niego a jeśli plik możliwość wykonania go.
Prawo zapisu: w=2
Prawo odczytu: r=4

Pierwszy zestaw praw jest przypisany do właściciela pliku, drugi do grupy, a trzeci do użytkowników, którzy nie są ani właścicielem ani nie należą do grupy. Jeśli chcemy nadać prawa tylko do odczytu, zapisu i wykonania właścicielowi należy nadal pliku prawa 700, a gdy chcemy nadać takie same prawa właścicielowi i grupie prawo odczytu i zapisu należy nadać plikowi prawa 760, jak pewnie zauważyliście odpowiednie prawa się dodaje do siebie w tej samej grupie.

Zobacz też:

2 komentarzy

W sumie proste, ale poczatkujacym moze sie przydac.

dobre - ma nawet wiecej zastosowan :)