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ż:
W sumie proste, ale poczatkujacym moze sie przydac.
dobre - ma nawet wiecej zastosowan :)