Administrare server open source

Platforma de hosting cu software liber, gratuit, open source.

Daca aveti un server dedicat sau un VPS fara un sistem de gestiune, crearea de utilizatori cu acces FTP poate fi o mica problema. In general pentru ca cineva sa aiba acces FTP trebuie sa aiba un cont de utilizator in sistem. Totusi, crearea unui utilizator in sistem pentru a se asigura accesul FTP nu este de fiecare data o optiune buna. In functie de sistemul de operare, asta poate insemna crearea unui utilizator care sa aiba acces la shell. Chiar daca nu ar exista aceasta constrangere, exista suficiente motive pentru ca administratorul unui server sa prefere crearea unui utilizator virtual in locul unui utilizator real. Mentionez mai jos doar patru motive, cele care le intalnesc cel mai des:

  • UID comun – In cazul siteurilor mari e necesara crearea de conturi FTP multiple pentru ca programatori diferiti sa se poata ocupa de diferite sectiuni ale unui site dar proprietarul fisierelor sa fie acelasi. In Pure-FTPd se pot crea utilizatori care sa corespunda aceluiasi UID real si in acelasi timp fiecare utilizator sa fie restrictionat la un anumit director.
  • Quota – In cazul unui cont de hosting se poate seta o limita de spatiu ocupat la nivel de cont, din sistemul de operare. In cazul utilizatorilor virtuali creati in Pure-FTPd se poate impune o limita de spatiu pentru fiecare utilizator creat. Astfel se poate controla spatiul ocupat de diferite parti ale siteului.
  • Limita de banda – Daca folosim Pure-FTPd pentru a partaja informatii, putem crea doua conturi pentru aceeasi zona partajata. Un cont fara limita de banda care il vom folosi la upload si un alt cont cu banda limitata pentru download.
  • Conexiuni concurente – Pentru a proteja serverul de supraincarcare sau abuz de resurse putem impune o limita pentru conexiunile concurente ale aceluiasi utilizator.

Crearea unui utilizator virtual

Pentru inceput sa cream un utilizator. Inainte de a crea un utilizator virtual trebuie sa avem un utilizator real cu care sa-l asociem. Putem folosi comanda „useradd -d /home/ftpuser ftpuser” pe Linux sau „pw useradd ftpuser -d /home/ftpuser” pe FreeBSD pentru a crea un utilizator nou care va avea ca home directory directorul /home/ftpuser. Acum pentru a crea un utilizator virtual cu numele lampuser asociat utilizatorului real ftpuser, utilizator caruia ii vom restrictiona accesul la directorul /home/ftpuser/lampuser vom folosi urmatoarea comanda:

[root@localhost ~]# pure-pw useradd lampuser -u ftpuser -d /home/ftpuser/lampuser

Dupa rularea comenzii se va cere parola si confirmarea parolei iar apoi utilizatorul va fi creat. Folosind comanda de mai sus se pot adauga si alti utilizatori virtuali care sa corespunda utilizatorului ftpuser sau altui utilizator real, cu orice home directory dorim.

Dupa ce am adaugat utilizatorii in sistem va trebui sa ii spunem serverului FTP sa salveze modificarile facute. Vom face asta folosind comanda:

[root@localhost ~]# pure-pw mkdb

Acum ne putem conecta prin FTP folosind utilizatorul virtual proaspat creat. Pentru a verifica daca utilizatorul a fost creat putem folosi comanda pure-pw show UTILIZATOR:

[root@localhost ~]# pure-pw show lampuser
Login              : lampuser
Password           : $1$39293856$aTgngTo/60lJrnXTodMEh1
UID                : 1005 (lampuser)
GID                : 1002 (-)
Directory          : /home/ftpuser/lampuser/
Full name          : LAMP User
Download bandwidth : 0 Kb (unlimited)
Upload   bandwidth : 0 Kb (unlimited)
Max files          : 0 (unlimited)
Max size           : 0 Mb (unlimited)
Ratio              : 0:0 (unlimited:unlimited)
Allowed local  IPs : -
Denied  local  IPs : -
Allowed client IPs : -
Denied  client IPs : -
Time restrictions  : 0000-0000 (unlimited)
Max sim sessions   : 0 (unlimited)

Exista situatii, determinate de mai multi factori printre care si sistemul de operare, in care comenzile vor returna un mesaj de eroare care ne spune ca nu poate gasi fisierul de parole:

[root@localhost ~]# pure-pw show lampuser
Unable to open the passwd file: No such file or directory
Unable to fetch info about user [lampuser] in file [/usr/local/etc/pureftpd.passwd]

Pentru a rezolva problema trebuie sa folosim comanda „pure-pw” impreuna cu parametrul „-f /usr/local/etc/pureftpd.passwd” in toate situatiile.

Modificarea unui utilizator virtual

Am vazut mai sus ca trebuie sa folosim comanda „pure-pw useradd” pentru crearea unui utilizator. Pentru a modifica un utilizator vom folosi comanda „pure-pw usermod„. De exemplu, daca ne hotaram sa setam quota pentru utilizatorul lampuser vom folosi urmatoarea comanda:

[root@localhost ~]# pure-pw usermod lampuser -N 100

Valoarea de dupa parametrul „-N” reprezinta quota exprimata in MB. Pentru a modifica alti parametri vom folosi aceeasi comanda impreuna cu:

  • -d – pentru modificarea directorului la care utilizatorul e restrictionat.
  • -t – pentru modificarea benzii de download.
  • -T – pentru modificarea benzii de upload.
  • -n – pentru a modifica numarul maxim de fisiere permise.
  • -N – pentru a modifica spatiul ocupat de utilizator.
  • -y – pentru a modifica numarul de conexiuni concurente permise pe utilizatorul virtual.
  • -z – pentru a modifica intervalul orar in care unui utilizator i se permite sa isi foloseasca contul.

Pentru a reseta oricare din aceste valori e suficient sa folosim comanda pure-pw usermod urmata de parametrul dorit iar ca valoare pasata prin parametru folosim doua ghilimele simple ( ” ) care au rolul de reset.

Pe langa comanda pure-pw usermod urmata de unul din parametri specificati putem folosi comanda pure-pw passwd pentru a reseta parola unui utilizator:

[root@localhost ~]# pure-pw passwd lampuser

Stergerea unui utilizator virtual

Stergerea unui utilizator virtual este mai simpla decat crearea lui si presupune rularea urmatoarei comenzi:

[root@localhost ~]# pure-pw userdel lampuser

E important de stiut ca dupa stergere, fisierele utilizatorului raman intacte. Daca nu mai sunt necesare va trebui sa le stergem manual.

De asemenea trebuie retinut ca dupa orice adaugare a unui utilizator, modificare sau stergere va trebui sa updatam baza de date folosind comanda:

[root@localhost ~]# pure-pw mkdb
Linux

7 Responses so far.

  1. George Jipa says:

    Eu obisnuiam sa folosesc WinSCP (conectare direct prin SSH, dar transfer lent) in loc sa mai incarc serverul si cu un server FTP, dar cred ca am sa incerc tutorialul asta.. pentru a vedea cum se comporta. 🙂
    Bravo si tine-o tot asa!

  2. admin says:

    SSH e o alternativa draguta, mai ales ca totul e criptat, dar e mai complicat cand trebuie sa dai acces si altora. De exemplu pe serverul pe care e LAMP am inca ~30 de conturi. Sa ii dau fiecaruia acces SSH ar insemna sa imi creez singur o gramada de probleme 😀

  3. George Jipa says:

    Da, asta asa este. La mine era alta mancare de peste, ma foloseam doar eu de el.

  4. misulica says:

    Super interesant! De cateva luni am intrat in lumea linux si am reusit, zilele acestea, sa fac un server dhcp, pentru o mica retea de computere. Pe server am destul spatiu si as vrea sa pot pune anumite fisiere la care sa poata avea acces anumiti colaboratori (de fapt vreo 5 persoane) . Cred ca posibilitatea prezentata ar fi buna. Dar am anumite nelamuriri, mai ales ca nu ma pricep. Deci, in primul rand cred ca trebuie instalat pure-ftpd, apoi creat acel user real si apoi cel (sau cei) virtuali. Cum anume se vor conecta utilizatorii? Mai pe scurt, as vrea cat mai multe detalii pentru ca nu ma pricep (mai ales la modul text)

  5. Sergiu says:

    Daca vrei un simplu sharing poate ca ti-ar fi mai de folos sa instalezi un Samba pentru partajare. E mai usor de configurat, il poti configura sa nu necesite autentificare, si partea cea mai draguta e ca majoritatea utilizatorilor de windows o sa il foloseasca in mod natural. Nu isi vor da seama ca e Linux si il vor folosi exact cum se foloseste „File and print sharing” din Windows.

    Referitor la intrebarea legata de Pure-FTPd, trebuie sa instalezi serverul, sa creezi un utilizator in sistem si apoi sa creezi utilizatorii virtuali. Daca nu ai mai facut asta, intra pe forum, explica clar situatia (inclusiv sistemul de operare folosit) si te pot ajuta cu mai multe detalii.

  6. petru says:

    Are cineva vreo idee cum pot sa modific directorul web:
    /home/ftpuser/lampuser
    dupa ce am creeat deja utilizatorul ?

  7. Sergiu Tot says:

    Petru, poti folosi pure-pw usermod.