Ftp Server Kurulumu - 2 : FTP Kullanıcı Yönetimi

Bu yazı dizimizde Google Cloud üzerinde vsftpd ile FTP server kurulumunu ve yönetimini inceleyeceğiz.

Ftp Server Kurulumu - 1 : vsftp Kurulumu ve Yapılandırılması

Ftp Server Kurulumu - 2 : FTP Kullanıcı Yönetimi

Ortak FTP Kullanıcı Grubu Oluşturma

Oluşturulacak ortak FTP dizinine birden çok kullanıcının erişimini sağlamak ve FTP kullanıcı izinlerini tek bir yapı altında toplamak için ortak bir grup oluşlturmamız gerekmektedir.

$ sudo groupadd <group_name>

Herhangi bir kullanıcıyı bu gruba eklemek için aşağıdaki komutu kullanabiliriz.

# Kullanıcıyı bir gruba ekleme
$ sudo usermod -a -G <group_name> <user_name>

# Kullanıcının birincil grubunu değiştirme
$ sudo usermod -g <group_name> <user_name>

Kullanıcılar İçin Ortak Bir Dizin Oluşturma ve İzinler

Öncelikle ortak bir dizin oluşturmamız gerekmektedir. Burada örnek olarak /var/www/public yolu oluşturulmuştur. Dizin yolu istenilen yol ile değiştirilebilir.

$ sudo mkdir /var/www/public

Daha sonrasında dizinin sahibini ve grubunu değiştiriyoruz. Grup olarak daha önce oluşturduğumuz ftp grubunu vermemiz gerekmektedir.

$ sudo chown root:<ftp_group_name> /var/www/public

Son olarak ftp grubu için dizinin izinlerinin ayarlanması gerekmektedir.

$ sudo chmod 775 /var/www/public

Son durumda dizin yetkilendirmeleri aşağıdaki gibi olmalıdır:

$ ls -la /var/www/
total 12
drwxr-xr-x  3 root root     4096 Sep 15 00:53 ./
drwxr-xr-x 15 root root     4096 Sep 15 00:53 ../
drwxrwxr-x  2 root ftpgroup 4096 Sep 15 01:35 public/

Kullanıcı FTP Dizini ile Ortak FTP dizinin bağlanması

Önceki yazımızda kullanıcının ev dizininde ftp adlı bir dizin ve dizin içinde de files adlı bir dizin oluşturup, ftp üzerinden işlemlerin bu files dizininde yapılmasını sağlamıştık. Şimdi de bu files dizini ile ortak /var/www/public dizinini birleştirelim.

Basit olarak aşağıdaki kod bu işlemi görecektir:

$ mount --bind /var/www/public/ /home/<user_name>/ftp/files

Yeni FTP Kullanıcıların Eklenmesi

Yukarıdaki ayarlamalar yapıldıktan sonra yeni ftp kullanıcıları eklenmek isteniyorsa basit olarak şu yollar takip edilebilir.

1 - Kullanıcı eklenmesi

# Yeni kullanıcı ekleme
$ sudo adduser <username>

2 - Kullanıcıyı FTP grubuna ekleme

# Kullanıcıyı bir gruba ekleme
$ sudo usermod -a -G <group_name> <user_name>

# Kullanıcının birincil grubunu değiştirme
$ sudo usermod -g <group_name> <user_name>

3 - Kullanıcının ev dizini içinde ftp dosya yollarının oluşturulması

# Kullanıcı için ftp dizini oluşturma ve yetkilendirme
$ sudo mkdir /home/<username>/ftp
$ sudo chown nobody:nogroup /home/<username>/ftp
$ sudo chmod a-w /home/<username>/ftp

# ftp dizini içinde files dizini oluşturma
# Not : Burda herhangi bir yetkilendirme yapmıyoruz.
# Dizin birleştirmesi sonrasında ortak dizinin yetkilerini alacaktır.
$ sudo mkdir /home/<username>/ftp/files

4- Kullanıcının FTP dizinini ortak dizin ile birleştirme

$ mount --bind /var/www/public/ /home/<user_name>/ftp/files

5 - Kullanıcının vsftpd üzerinden FTP erişimine izin verme

$ sudo echo "<username>" | sudo tee -a /etc/vsftpd.userlist
$ sudo systemctl restart vsftpd