SFTP Dosya İzinleri ve Sahiplik: chmod, chown ve ACL Rehberi
Başarılı SFTP girişi hesabı doğrular; hangi dosya işlemlerini yapabileceğini dosya sistemi izinleri belirler. İzinleri tek bir sayısal mod yerine işlem ve dizin bazında planlayın.

Sahip, grup ve etkin kimlikle başlayın
Linux dosyasında sahip, grup ve mod bitleri bulunur. Sunucu, yerel istemciyi çalıştıran kişiye göre değil SFTP oturumunda kullanılan hesaba göre karar verir. Ek grup üyelikleri de erişimi etkiler.
Hesabı id, hedefi ls -ld ile inceleyin. Grup üyeliği değişince yeni oturum açarak güncel grup listesini alın. Dizin hizmeti veya paylaşımlı depolama kullanılıyorsa görünen adlarla birlikte sayısal kimlikleri de doğrulayın.
id transferuser
ls -ld /srv/sftp/transferuser/upload
namei -l /srv/sftp/transferuser/uploadDosya işlemlerini dizin izinleri belirler
Dizinde çalıştırma biti, program çalıştırmayı değil yoldan geçişi ifade eder. Üst dizine girilemiyorsa dosyaya 644 vermek yeterli olmaz. Tersine, yazılabilir üst dizin içeriği yazılamayan bir dosyanın silinmesine izin verebilir.
| İşlem | Tipik Linux gereksinimi |
|---|---|
| Bilinen dosyayı okuma | Dosyada okuma; üst dizinlerde geçiş |
| Dizin adlarını listeleme | Dizinde okuma; girdilere erişim için geçiş |
| Yeni dosya oluşturma | Hedef dizinde yazma ve çalıştırma/geçiş |
| Mevcut içeriği değiştirme | Dosyada yazma; istemci yöntemine göre ek yetki |
| Silme veya yeniden adlandırma | Üst dizinde yazma/geçiş; sticky bit ve politika ayrıca etkileyebilir |
Örnek: hesaba özel yükleme dizini
Tek hesaba özel upload dizininde kullanıcı sahipliği ve 750 modu, sahibin yönetmesini, grubun incelemesini ve diğerlerinin erişememesini sağlayabilir. Grubun da erişmemesi gerekiyorsa 700 düşünülebilir. Bunlar korunan chroot köküne değil upload alt klasörüne aittir.
Sahiplik değişimi yönetici yetkisi ister ve yalnızca hedef dizine uygulanmalıdır. Önce mevcut sahipliği kaydedin. Uygulama ağaçlarında toplu chmod/chown kullanmayın; yürütülebilir dosyalar, servis verileri ve bilinçli istisnalar bulunabilir.
sudo chown transferuser:transferuser /srv/sftp/transferuser/upload
sudo chmod 0750 /srv/sftp/transferuser/uploadOrtak çalışma için grup ve ACL
Uygulama ve SFTP hesabı dosya paylaşacaksa herkese yazma vermek yerine ortak grup planlayın. setgid dizini yeni girdilerin grubunu devralmasını sağlayabilir; grup yazma yetkisini kendiliğinden vermez. Oluşturma modu, umask ve ACL kuralları da etkiler.
Destekleniyorsa getfacl ile ACL kayıtlarını inceleyin. Kullanıcıya/gruba özel girdiler hedefli erişim sağlar; ACL maskesi etkin yetkiyi sınırlayabilir. Varsayılan ACL yeni alt girdileri etkiler, mevcut dosyaları geriye dönük değiştirmez.
Her katılımcı hesapla yeni test dosyası oluşturun. Üretim verisine uygulamadan önce sonuçtaki sahip, grup ve etkin erişimi kontrol edin. Ortak girdileri kimlerin silebileceği veya yeniden adlandırabileceği ayrıca kararlaştırılmalıdır.
umask mevcut değil yeni dosyaları etkiler
umask, dosya oluşturulurken istenen izin bitlerini kaldırır. Geleneksel oluşturma modlarında 027, genellikle dosyalarda 640 ve dizinlerde 750 sonucunu verir. İstemci daha dar mod isteyebilir veya kaynak izinlerini koruyabilir; gerçek sonucu inceleyin.
Yönetici internal-sftp hesabında ForceCommand argümanlarına -u 027 ekleyebilir. Bu yeni girdiler için politikadır; mevcut sahipliği onarmaz veya üst dizinde eksik erişimi sağlamaz. SSH yapılandırmasını doğrulayın ve ayrı oturumla deneyin.
Windows farkı ve son doğrulama
Windows OpenSSH, Windows hesapları ve NTFS erişim denetimi kullanır. Unix sayılarını doğrudan çevirmek yerine etkin izinleri, devralmayı ve açık ret kayıtlarını inceleyin. Önce hedefin icacls çıktısını alın, sonra Güvenlik arayüzünde ilgili hesabı kontrol edin.
Gerçek akışı sınayın: geçici dosyayı listeleme, indirme, oluşturma, üzerine yazma, yeniden adlandırma ve silme. Hem izin verilmesi gerekeni hem reddedilmesi gereken işlemi deneyin. Chroot kökünü yazılabilir yapmadan uygulama ve SFTP izinlerini uyumlu tutun.
Rehberi uygulamaya geçirin.
İlgili Varkuna ürününü inceleyin veya ayrıntılı kullanım rehberini açın.