İçinde herkesin dosyaları yaratabildiği bir dizin istiyorsunuz ama bu dosyaları yalnızca dosya sahiplerinin silmesini ya da yeniden adlandırmasını da istiyorsunuz. (Örneğin, /tmp yada bir ftp dizini)
Çözüm
Herkes tarafından yazılabilir, çalıştırma, okuma ve sticky bitini ayarlayın. Genelde, mode 777 herkes tarafından yazılabilir bir dizindeki dosyaları herkes silebilir ya da yeniden adlandırabilir. Sticky biti yalnızca dosya sahibine, dizin sahibine ve süper kullanıcıya dosyaları silme ya da yeniden adlandırma hakkı vererek bunu önler.
# mkdir dizin
# chmod 1777 dizin
# ls -l
Test Edilmesi
Sistem üzerinde iki tane kullanıcı oluşturun daha sonra bir kullanıcı ile /root/dizin 'e girin ve dosya oluşturun daha sonra dosya yetki izinlerini tanımlayın daha sonra başka bir kullanıcının kabuğuna geçtikten sonra /root/dizin 'e girin ve diğer kullanıcının oluşturduğu dosyayı silmeye ya da adını değiştirmeye çalışabilirsiniz. Ben dosyaya 777 (a+rwx) iznini verdim biraz tehlikeli bir izin siz istediğiniz gibi izin tanımlayabilirsiniz. En son kullandığım komut yazma izni olduğunu için yazabiliyorum.
# adduser ali
# adduser osman
# su - ali
# cd /root/dizin ; touch ali_dosya ; chmod a+rwx ali_dosya ; su - osman
# cd /root/dizin ; ls -l
# rm -rf ali_dosya (vb.. birçok komut kullanılabilir.)
Özel Dosya İzinleri
SUID: Çalıştıran kim olursa olsun, dosya sahibinin yetkileri ile çalışmak üzere izin verir.
SGUID: Dosya 'nın kimin çalıştırıldığına bakılmaksızın grup yetkileri ile çalıştırılmasına izin verir.
Sticky Bit: Dosya sahibinden başka biri tarafından silinememesini ya da değiştirilememesini sağlar. Paylaşımlı dizinlerde bulunan dosyalar için önemli bir ayardır.
NOT: Dosya yetki verme ile ilgili Chmod (Change Mode) araştırılabilir.
Hiç yorum yok:
Yorum Gönder