Mam katalog z plikami dziennika i umieszczam w nich dzienniki ze skryptu uruchomionego przez użytkowników. W tym przypadku logowanie za pomocą syslog nie jest możliwe. (rsync inny niż demon)
Chcę, aby użytkownicy mieli tylko uprawnienia do zapisu w plikach dziennika. Problem polega na tym, że uprawnienia do zapisu muszą być dodatkowo ograniczone, aby użytkownicy (skrypt) mogli dołączać tylko do tych plików. Podstawowym systemem plików jest XFS.
Następujące nie działa:
# chattr +a test.log
chattr: Inappropriate ioctl for device while reading flags on test.log
Czy istnieje na to inne rozwiązanie? Dziękuję za twoje wskazówki.
chattr +a
działa tutaj dla mnie (jądro 3.2). Pamiętaj, że aby korzystać, musisz być rootemchattr
($
monit sugeruje nieużytkownika), ale pojawiłby się inny komunikat o błędzie, gdybychattr +a
był obsługiwany i nie byłeś rootem.Odpowiedzi:
chattr
Narzędzie jest napisane dla ext2 / ext3 / ext4 systemy plików. Emituje ioctls na plikach, więc to od systemu plików zależy, co z nimi zrobić. Sterownik XFS w nowszych jądrach Linuksa obsługuje ten samFS_IOC_SETFLAGS
ioctl co ext [234] do kontrolowania flag takich jak tylko append, ale być może używasz starszego jądra tam, gdzie go nie ma (CentOS?). Spróbujxfs_io
zamiast tego użyć narzędzia:Zauważ, że w przypadku XFS, jak w przypadku ext [234], tylko root może zmienić flagę „tylko dołączanie” (a dokładniej potrzebujesz tej
CAP_LINUX_IMMUTABLE
możliwości).źródło
Czy masz na to uprawnienia? Od
man 1 chattr
:źródło
Alternatywnie możesz osiągnąć to samo za pomocą SELinux , są szanse, że jest włączony i działa, jeśli używasz dystrybucji zgodnej z Red Hat. Działa to na każdym systemie plików, SELinux blokuje procesom wykonywanie niedozwolonych operacji.
Niestety, musisz napisać politykę dla swojej aplikacji, aby umożliwić dostęp do wszystkich zasobów systemowych, z wyjątkiem dołączania do określonych plików. Może to być trudne, jeśli zrobisz to po raz pierwszy, ale ma to zaletę - dodaną warstwę bezpieczeństwa.
Mam przykład, jak napisać regułę pliku tylko do dołączania w tym wykładzie: https://www.youtube.com/watch?v=zQcYXJkwTns
źródło