Archiwa tagu: ACL

setfacl czyli ACLe w akcji. Dostęp do logów.

Setfacl to jedno z narzędzi do zarządzania ACL’ami pod Linuxem. Notatka praktyczna pokazująca jak można je zastosować w realnym świecie.

Czasami istnieje konieczność przyznania komuś dostępu do logów. Dostępu stałego, uwzględniającego logrotate i ewentualne fanaberie niektórych aplikacji (zmień ownera po stworzeniu pliku – patrz Apache).

Najskuteczniejszą moim zdaniem metodą jest skorzystanie z ACL’a nałożonego na katalog.
Przykładowo. Chcemy dodać członkom grupy www dostęp read do logów nginxa:

setfacl -d -m g:www:r nginx/    # to załatwia sprawę dla przyszłych plików (można też pojechać rekurencyjnie -R)

wydanie komendy spodowowało:

[root@linux log]# getfacl nginx/
# file: nginx/
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
default:user::rwx
default:group::r-x
default:group:www:r--
default:mask::r-x
default:other::r-x

setfacl -m g:www:r nginx/* # a tak dorzucamy +r do wszystkich obecnych.

Jeżeli uprawnienia miałyby być nadane nie na grupę tylko konkretnego usera to:

setfacl -d -m u:login:r nginx/

Usunięcie acla:

setfacl -x g:www nginx/
setfacl -x u:login nginx/

OpenVMS AUDIT z wykorzystaniem ACL

OpenVMS ma bardzo ciekawie rozwiązaną funkcjonalność audytowania. Istnieje możliwość zdefiniowania precyzyjnego logowania mnóstwa czynności. Zarówno globalnie, jak i lokalnie.

Interesowało mnie wyświetlenie na ekranie informacji o tym, że ktoś czyta jeden z plików tekstowych.

$ set security/ACL=(ALARM=SECURITY, ACCESS=READ) TEST.TXT

Takie ustawienie ACL spowoduje,  że przy próbie przeczytania pliku TEST.TXT na konsoli bezpieczeństwa pojawi się informacja o takim zdarzeniu.
Oczywiście globalnie musimy mieć włączony audyt dla acl’i, ale jest to opcja włączona by default.

Sprawdzenie jakie opcje security ustawiliśmy dla danego pliku:

$ show security test.txt

Jeżeli chcemy, żeby informacja o dostępie do naszego TEST.TXT została nie tylko wyświetlona na konsoli, ale też zlogowana:

$ set security/ACL=(AUDIT=SECURITY, ACCESS=READ) TEST.TXT

Oczywiście można logować zdarzenia oparte nie tylko o próbę READ. Jest ich sporo, a przetestowane przeze mnie to:

  • READ
  • WRITE
  • EXECUTE
  • DELETE
  • CONTROL
  • FAILURE
  • SUCCESS

Oczywiście można je ze sobą mieszać.

READ+WRITE+DELETE

Kasowanie ustawień ACL z naszego pliku:

$ SET SECURITY/ACL/DELETE TEST.TXT