Dosya erişimini yalnızca ekleme ile kısıtla


12

Günlük dosyaları içeren bir dizin var ve kullanıcılar tarafından başlatılan komut dosyasından günlükleri koyuyorum. Bu durumda syslog ile oturum açmak mümkün görünmüyor. (arka plan programı olmayan rsync)

Kullanıcıların günlük dosyalarına yalnızca yazma izinlerine sahip olmasını istiyorum. Sorun, kullanıcıların (komut dosyası) yalnızca bu dosyalara eklenebilmesi için yazma izinlerinin daha da kısıtlanması gerektiğidir . Temel dosya sistemi XFS'dir.

Aşağıdakiler işe yaramaz:

# chattr +a test.log
chattr: Inappropriate ioctl for device while reading flags on test.log

Bunun için başka bir çözüm var mı? Tavsiyelerin için teşekkürler.


XFS olduğundan emin misiniz? chattr +aburada benim için çalışıyor (3.2 çekirdek). Kullanmak için root olmanız gerektiğini unutmayın chattr(bir $komut istemi, süper kullanıcı olmayan bir kişi önerir), ancak chattr +adestekleniyorsa ve kök olmasanız farklı bir hata mesajı alırsınız .
Stéphane Chazelas


Bölümdeki bağlama seçenekleri nedir? Muhtemelen ilgili montaj seçeneğine ihtiyaç duyan xattr kullanarak depolayabilir mi? (XFS'nin sosyolojisi de bundan pek bahsetmiyor ...)
Gert van den Berg

Bu SF üzerinde kapalı, bu yüzden burada açık bırakıyorum
Michael Mrozek

Yanıtlar:


8

Yardımcı chattrprogram ext2 / ext3 / ext4 dosya sistemleri için yazılmıştır. Dosyalar üzerinde ioctls yayar , bu nedenle onlarla ne yapacağına karar vermek temel dosya sistemine bağlıdır. Daha yeni Linux çekirdeklerindeki XFS sürücüsü, FS_IOC_SETFLAGSyalnızca ek gibi bayrakları denetlemek için ext [234] ile aynı ioctl'i destekler , ancak olmadığı yerde daha eski bir çekirdek çalıştırıyor olabilirsiniz (CentOS?). xfs_ioBunun yerine yardımcı programı kullanmayı deneyin :

echo chattr +a | xfs_io test.log

Ext [234] için olduğu gibi XFS için yalnızca kökün yalnızca ekleme işaretini değiştirebileceğini unutmayın (daha kesin olarak, bu CAP_LINUX_IMMUTABLEyeteneğe ihtiyacınız vardır ).


1

Bunu yapmak için izniniz var mı? Gönderen man 1 chattr:

`A 'özniteliği ayarlanmış bir dosya yalnızca yazma için ekleme modunda açılabilir. Yalnızca süper kullanıcı veya CAP_LINUX_IMMUTABLE özelliğine sahip bir işlem bu özelliği ayarlayabilir veya temizleyebilir.


0

Alternatif olarak, SELinux kullanarak da elde edebilirsiniz , Red Hat uyumlu dağıtım kullanıyorsanız, etkin ve çalışır durumdadır. Bu her dosya sisteminde çalışır, SELinux işlemlerin izin verilmeyen işlemler gerçekleştirmesini engeller.

Maalesef, belirli dosyalara ekleme dışında tüm sistem kaynaklarına erişime izin vermek için uygulamanız için bir politika yazmanız gerekir. Bunu ilk kez yaparsanız bu biraz zor olabilir, ancak bu eklenen güvenlik katmanının bir avantajı vardır.

Bu konuşmada yalnızca bir dosya ekleme kuralı yazma konusunda bir örneğim var: https://www.youtube.com/watch?v=zQcYXJkwTns

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.