Chcę stworzyć z poziomu konsoli nowego użytkownik, który będzie miał dostęp jedynie poprzez FTP i bez możliwości logowania przez SSH.
Na początek należy stworzyć nową grupę lub ewentualnie można wykorzystać jakąś już istniejącą cat /etc/group.
groupadd nowagrupa useradd -g nowagrupa -d /var/www/vhosts/domena.pl/httpdocs -s /sbin/nologin nowyuser
Tworzenie nowego użytkownika odbywa się za pomocą komendy useradd, gdzie parametry odpowiednio oznaczają:
- g – nazwa grupy do jakiej zostanie przydzielony użytkownik
- d – ścieżka do katalogu domowego użytkownika. Po zalogowaniu do FTP użytkownik domyślnie będzie się znajdował w tym właśnie katalogu
- s – nazwa do logowania do shella. W typ wypadku /sbin/nologin użytkownik nie będzie mógł się zalogować
- na końcu należy podać nazwę tworzonego użytkownika (tutaj nowyuser)
Użytkownik jest już stworzony, teraz trzeba ustalić dla niego hasło. Do tego służy polecenie:
passwd nowyuser
Użytkownik może się już zalogować na ftpa, ale pozostaje jeszcze kwestia uprawnień dostępu do plików i możliwość zapisu.
setfacl -m u:nowyuser:rwx /var/www/vhosts/domena.pl/httpdocs
- m – dotyczy modyfikacji
- u:nowyuser:rwx – użytkownik nowyuser otrzymuje uprawnienia odczytu(r), zapisu(w) i wykonania(x) do katalogu podanego w dalszej części
W tym miejscy pojawił się taki oto błąd:
setfacl: /var/www/vhosts/domena.pl/htdocs: Operation not supported
Aby rozwiązać problem należało modyfikować plik konfiguracyjny /etc/fstab. Tutaj zapisane są informacje o występujących w systemie dyskach twardych, partycjach i ich montowaniu.
cat /etc/fstab /dev/md1 / ext3 errors=remount-ro 0 1 /dev/md2 /var ext3 defaults 0 2 /dev/sda3 none swap defaults 0 0 /dev/sdb3 none swap defaults 0 0 proc /proc proc defaults 0 0 sysfs /sys sysfs defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts defaults 0 0
W tym konkretnym przypadku, należało dopisać w 4 kolumnie ,acl w wierszu drugim (tam umiejscowiony jest folder, którego prawa będą modyfikowane). Czwarta kolumna dotyczy opcji montowania, a acl odpowiada za zarządzanie uprawnieniami do plików i katalogów. Tak więc należy edytować ten plik (vi /etc/fstab) a następnie zmodyfikować tylko drugą linię w ten sposób:
... /dev/md2 /var ext3 defaults,acl 0 2 ...
Pozostaje tylko „przemontowanie” urządzenia /var
mount -o remount /var
Teraz już można zarządzać uprawnieniami dostępu na tym urządzeniu, a ponowne wywołanie komendy
setfacl -m u:nowyuser:rwx /var/www/vhosts/domena.pl/httpdocs
powinno zakończyć się sukcesem. Dla pewności można jeszcze sprawdzić jakie uprawnienia przyznane są dla danego katalogu:
getfacl /var/www/vhosts/domena.pl/htdocs
Pingback: Zablokowanie użytkownika FTP w swoim katalogu domowym | Have You Tried IT