Archiwum kategorii: Systemy Operacyjne

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/

RHEL 7: zmiana hasła roota

Metoda działa na Red Hat Enterprise Linux 7 oraz Centos 7.

  • W trakcie startu systemu po wyświetleniu menu gruba zatrzymujemy go (strzałka w górę np.). Wybieramy z listy kernel, który chcemy użyć (zapewne będzie to pierwsza linia od góry).
  • Wciskamy 'e’
  • Znajdujemy linię, która zaczyna się od 'linux16′
  • Za słowem 'quiet’ lub przed 'LANG’ dodajemy wpis 'rd.break’
  • Wciskamy CTRL-X
  • Powinien wystartować goły system, z promptem #
  • # mount -o remount,rw /sysroot
  • # chroot /sysroot
  • # passwd – wpisujemy nowe hasło
  • # touch /.autorelabel – wymuszamy odtworzenie kontekstów SELinuxa przy starcie
  • exit, exit

Koniec.

MBR w Windows + OCZ Revodrive

Jestem szczęśliwym posiadaczem OCZ Revodrive. Świetna sprawa… dopóki coś się nie schrzani 😉

Strasznie sobie namieszałem z MBR. Trzeba było go odzyskać…

  1. Odpal W7 z płytki instalacyjnej.
  2. Znajdź opcję napraw system.
  3. Załaduj drivery, których kopia jest tu: OCZ_x64 (wrzucamy na pendraka, rozpakowujemy)
  4. Zacznie być widoczny dysk, ale nadal nie będzie widać systemu. Wyszukanie systemu przy użyciu narzędzia bootrec działa, ale naprawa mbr już nie.
  5. Tak więc następne narzędzie, które trzeba mieć na pendrive – mbrfix
  6. mbrfix z opcją 'fixmbr’ i działa.

 

Synchronizacja czasu – Linux + ntp. Wersja nieprzesadzona.

Wrzucałem już raz wpis o automatycznej synchronizacji czasu, ale po przemyśleniu tematu doszedłem do wniosku, że rozwiązanie tam zastosowane jest bez sensu. Czemu?

  1. Stawianie serwera ntpd tylko po to, żeby mieć aktualny czas na swojej maszynie, to totalny i typowy overkill. Rozwiązanie to oczywiście działa skutecznie, jest „zalecane w internetach”, ale jego nadmiarowość aż razi.
  2. Standardowa konfiguracja ntpd na CentOS (ale też pewnie w innych dystrybucjach) otwiera od razu port 123 na wszystkich możliwych interfejsach. Po co? No bo ntpd z założenia służy do serwowania czasu, a nie jego zwykłej synchronizacji.
  3. No właśnie. Po co nam serwer, skoro jedynie chcemy być klientami?

Rozwiązanie jest dużo prostsze. W CentOS 6.5, którego teraz głównie używam, standardowo zainstalowane jest cudo o nazwie ntpdate. Na 99,99999% serwerów, wystarczy synchronizacja czasu raz na dobę.

Chyba już widać co chcę przekazać. CRON + ntpdate rozwiążą nasz problem prosto i skutecznie.
Co robimy?

W katalogu /etc/cron.daily zakładamy sobie plik ntpsynchro z prawami do uruchomienia:

[root@centos /]# touch /etc/cron.daily/ntpsynchro
[root@centos /]# chmod +x /etc/cron.daily/ntpsynchro

Następnie wrzucamy do pliku tę zawartość (np. używając: nano /etc/cron.daily/ntpsynchro):
#!/bin/sh
/usr/sbin/ntpdate pl.pool.ntp.org | logger 1> /dev/null 2>&1

Dobrze jest testowo i w celu pierwszej synchronizacji uruchomić skrypt:

/etc/cron.daily/ntpsynchro

A następnie wyświetlić zawartość logu:

cat /var/log/messages | tail

Poprawnie działający skrypt powinien zalogować nam coś w ten deseń:

Jun  4 14:04:52 centos root:  4 Jun 14:04:52 ntpdate[10409]: adjust time server 217.96.29.26 offset 0.000199 sec

Co się właśnie stało? Nasz serwer, który jest w tej całej akcji KLIENTEM zapytał się serwera pl.pool.ntp.org o aktualny czas, zlogował odpowiedź i oczywiście jeżeli była taka potrzeba ustawił na naszej maszynie.
Prawda, że takie rozwiązanie jest bardziej eleganckie, prostsze i bardziej bezpieczne? 🙂

Automatyczna synchronizacja czasu w CentOS 6.5

DEPRECATED – NIE UŻYWAĆ O ILE NIE POTRZEBUJESZ SERWERA DO USTAWIANIA CZASU W WIĘKSZEJ SIECI LOKALNEJ.

 

SPRAWDŹ WPIS: https://marcin.szydelscy.pl/post/2014/synchronizacja-czasu-linux-wersja-nieprzesadzona/

 

 

Prosta usługa, banalna konfiguracja, a przy tym w zasadzie podstawa dla serwerów.

  1. Zaczynamy od wstępnego zsynchronizowania czasu naszej maszyny:
    [root@centos /]# ntpdate tempus1.gum.gov.pl
    
  2. Instalujemy pakiet ntp:
    [root@centos /]# yum install ntp
    
  3. edytujemy plik /etc/ntp.conf:
    • (opcjonalnie) zmieniamy listę serwerów na:
      server tempus1.gum.gov.pl
      server tempus2.gum.gov.pl
      
    • (opcjonalnie) dodajemy plik do logowania informacji z ntpd:
      logfile /var/log/ntp.log
      
  4. Uruchamiamy usługę:
    [root@centos /]# service ntpd start
    
  5. Sprawdzamy czy podłączyła się do serwerów:
    [root@centos /]# ntpq -p
    

    (opcjonalnie) weryfikujemy log usługi:

    [root@centos /]# type  /var/log/ntp.log
    
  6. Dodajemy do 'autostartu’:
    [root@centos /]# chkconfig ntpd on
    

Gratulacje. Od teraz Twój serwer będzie miał zawsze aktualny czas.

Polecam zmianę listy serwerów czasu na podane wyżej. Są to oficjalne serwery Głównego Urzędu Miar, korzystające z czasu serwowanego przez zegar atomowy. Źródło jest solidne i godne zaufania. Oczywiście ustawione w standardowym konfigu poole centosa, też dadzą radę, ale ja tam wolę nasze. 🙂

OpenVMS: backup – czyli mądrzejsze copy

Pomijając oczywiste zastosowanie tej komendy do backupów taśmowych, zdarza mi się czasami użyć jej do kopiowania ważnych plików między różnymi lokalizacjami. Czasami też muszę zrobić backup zestawu plików do jednego tzw. 'save setu’. Po ludzku pisząc – tar.

  1. bezpieczne przekopiowywanie plików (czyli z weryfikacją):
    backup disk$zrodlo:[katalog]*.*;* disk$cel:[katalog] /verify /log
    
  2. jak wyżej tylko, że z podkatalogami:
    backup disk$zrodlo:[katalog...]*.*;* disk$cel:[katalog...] /verify /log
    
  3. Zrobienie backupu większej ilości plików i podkatalogów do jednego pliku (czyli takie ztarowanie):
    backup disk$zrodlo:[katalog...]*.*;* disk$cel:[katalog]plik_z_backupem.bck /verify /log /save_set