Archiwum kategorii: Systemy Operacyjne

Zmiana UUID partycji

Dysk HDD na którym miałem system okazał się być zbyt wolny, także sklonowałem jego zawartość na SSD używając komendy 'dd’. Teraz chciałbym, żeby UUIDy na nowym dysku były wygenerowane od nowa. Jak to zrobić?

Komendą 'uuidgen’ generujemy nowy UUID:

[szydell@grabki ~]$ uuidgen
5e0b0314-fe0c-4db8-8908-c815d0b67e1f

Na CentOS/Red Hat 7 narzędzie to dostępne jest w pakiecie 'linux-utils’. Na Debianie i Ubuntu trzeba doinstalować pakiet 'uuid-runtime’.

Następnie zmieniamy UUID na wybranej przez nas partycji używając 'tune2fs -U’

sudo tune2fs /dev/sda1 -U 5e0b0314-fe0c-4db8-8908-c815d0b67e1f

bash extglob odkrycie tygodnia :)

extglob czyli odpalenie „regexów” wewnątrz basha. Przykładowo proste kasowanie z excludem

[szydell@example test]$ ls
aaa1.txt aaa2.txt aaa3.txt aaa4.txt aaa5.txt aaa6.txt aaa7.txt aaa8.txt aaa9.txt bbb1.txt bbb2.txt bbb3.txt bbb4.txt bbb5.txt bbb6.txt bbb7.txt bbb8.txt bbb9.txt test1.txt test2.txt test3.txt test4.txt test5.txt

Chcemy wywalić *.txt z pominięciem aaa5.txt

[szydell@example test]$ shopt -s extglob
[szydell@example test]$ rm !(aaa5).txt
[szydell@example test]$ ls
aaa5.txt

Wielowątkowe pakowanie w Centos 7

Red Hat / CentOS niestety nie rozpieszczają pod względem dostępności fajnych zabawek w standardowym repozytorium
Jedyne co znalazłem to 'pigz’ czyli rozwiązanie dające tę samą funkcjonalność co gzip, ale na wielu core’ach.

Trzeba oczywiście doinstalować:

yum install pigz

Niestety nie da się prosto odinstalować gzip’a i zastąpić go pigz’em. Ale zawsze można pokombinować 🙂

  1. Sprawdź jak wygląda twoja zmienna środowiskowa $PATH. Z root’a powinno to być coś w ten deseń:

    echo $PATH
    /usr/local/sbin:/sbin:/bin/:/usr/sbin:/usr/bin:/root/bin
  2. Zlokalizuj gdzie masz gzip’a. Standardowo jest w lokalizacji: /usr/bin/gzip
  3. Jak widać mamy niewielkie możliwości do podmienienia sobie gzipa z wykorzystaniem dowiązania symbolicznego, także zróbmy sobie linka w /sbin

    sudo ln -s /usr/bin/pigz /sbin/gzip
  4. Teraz jeżeli uruchomienie komendy 'gzip’ bez ścieżki, odpali pigz’a.

Dla leniwców (albo kogoś kto nie ma roota) – można podmienić sobie komendę np. w menu Midnight Commandera.

W pliku: /etc/mc/mc.menu zamieniamy komendę 'gzip’ na 'pigz’:
Linia:

tar cf - "$Pwd" | gzip -f9 > "$tar.tar.gz" && \

po zmianie:

tar cf - "$Pwd" | pigz -f9 > "$tar.tar.gz" && \

voila

Problemy z pendrive pod windows 10

Po repartycjonowaniu pendrive nie mogłem z niego korzystać. Partycjonowanie przez 'Zarządzanie dyskami’ nie działa – zwraca wynik: 'menedżer dysków wirtualnych nie można odnaleźć określonego pliku’, ale zadziałało to:

diskpart
list disk     #pokaże się lista dysków
select disk X #X - nr z listy
clean
create partition primary
select partition 1
format quick fs=fat32
assign
exit

chmod -x chmod

Jak naprawić system gdy się jest geniuszem zła i wyda się komendę chmod -x chmod?

64bit:
/lib64/ld-linux-x86-64.so.2 /bin/chmod +x /bin/chmod
32bit:
/lib/ld-linux.so.2 /bin/chmod +x /bin/chmod

Brak pewności które użyć?
Sprawdź:

[user@linux katalog]$ ldd /bin/chmod
        linux-vdso.so.1 =>  (0x00007ffd263fd000)
        libc.so.6 => /lib64/libc.so.6 (0x0000003f7c400000)
        /lib64/ld-linux-x86-64.so.2 (0x0000003f7c000000)

MD5 i inne hasze – generowanie z command line pod Windows 7

Windows 7 posiada wbudowane narzędzie, które można zmusić do wygenerowania MD5.
Rozwiązanie nie na wprost, ale działa 🙂

certUtil -hashfile pathToFileToCheck [HashAlgorithm]

HashAlgorithm przyjmuje parametry: MD2 MD4 MD5 SHA1 SHA256 SHA384 SHA512

Przykładowo generowanie MD5 dla pliku C:\TEMP\MyDataFile.img:

CertUtil -hashfile C:\TEMP\MyDataFile.img MD5

Original solution by Laisvis Lingvevicius

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.