[SOLVED] Linux configfile módosítása scriptből

Fórumok

Volt erre valami program, de nem jut eszembe és nem sikerül kárekesni... kinek jut eszébe? :)

Van egy akármilyen .conf ami [X11] vagy akármilyen szekciókból áll és alatta egy kulcs-érték párt kéne megváltoztatni scriptből.
 

[SOLVED]

crudini

Hozzászólások

sed nem jo? :)

Aztan vmi config-mgmt tool is szoba jon, Ansible, Chef, Puppet es tarsai.

awk

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Python3 mindig barátunk, amikor a sed/awk kezd nehézkessé válni. Egy egyszerű példa:

#!/usr/bin/python3

for s in open("/etc/X11/Xwrapper.config", "r"):
    s = s.rstrip()
    if s[0] == '#':
        print (s)
    else:
        m = s.split('=')
        if m[0] == 'allowed_users':
            print ("%s%s"%(m[0], '=sajat_akarmi'))
        else:
            print(s)

De egyszerűen kiegészítheted [szekció] figyeléssel is.

Mi az, amit awk-ban nem tudsz megírni? Szinte egy C szintaxisú script nyelv. Némi linuxos parancs hívással még USB-s hardware kezelését is írtam awk-ban, ahol az USB-s hardware saját fejlesztésű eszköz, amelynek a firmware-ét én írtam. Nem nevezném az awk-t nehézkesnek. Egyedül a bináris adatok feldolgozásával lehet nehézsége, ami elég szomorú egyébként.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

FFT-t csak GAWK-ban tudtam, a sima AWK kevés volt hozzá. :)
JSON parsert szintén nehézkes AWK-ban, Python-ban egyetlen függvényhívás.
...

Lényeg, ha az AWK határosnak tűnik, Python3 mivel már a SOHO routeres világ kivételével minden Linux rendszer része, használjuk bátran. Nem bonyolultabb az AWK-nál.
 

Nem hiszem el hogy senki nem ajánlotta ... szóval majd én http://augeas.net/ , szintén szinte minden nagy distro-ban elérhető és tök egyszerű.

augtool set /files/etc/x-bigyo/config-file/section/key value

pl:
augtool set /files/etc/ssh/sshd_config/PasswordAuthentication no

Szerkesztve: 2020. 11. 26., cs - 07:52

Az is egy járható út, hogy saját szekciókkal és beállításokkal beírjátok a beállításotokat a xorg.conf végére dupla kacsacsőrrel. Tehát:

Section "möhö"
  Opció1 "bla-bla"
  Opció2 "whatever"
EndSection

Így akkor is átállítódnak és működnek dolgok, ha korábban volt a fájlban már egy "möhö" rész, amiben az illető opciók már be lettek állítva, de mindjárt a fájl végén akkor felül lesznek bírálva.

Kulturáltabb, modern protokolloknál, pl. Wayland, a kompozitorok a saját konfigba tudnak külső konfigot include-olni vagy importálni, ami felülírhatja a módosításokat, így nem fő konfigfájlt kell hekkelni sed-del, awk-kal, hanem elég a saját importolt fájlt felülírni, újragenerálni.

Amire még felhívnám a figyelmet, az az, hogy modern disztrón, ha nincs nagyon begányolt beállítás vagy spéci GPU driver, akkor elvileg már xorg.conf fájlnak sem kéne legyen, nekem nem volt se Archon, se Voidon, se Gentoo-n, se Artixon. A X.org-nak detektálnia kéne a beállításokat hardverkiépítést magától is, külön input eszközökre, fontokra szabályokat meg az ablakkezelő oldaláról és 3rd party toolokkal is rá lehet erőltetni, pl. xinput vagy synclient beállítások futtatása, vagy xset és setxkbmap futtatása a WM autostart scriptjébe, ami épp úgy beállítja a dolgokat, mintha a X.org konfigjába lenne belőve.

“I didn’t start using Linux so I could have friends.” (Luke Smith, 2019) 🐧