Skip to content

Systemd - when systemctl unmask command fails

When you are using a typical modern Linux, where systemd is the init system, then you should be able to enable/disable daemons with:

systemctl enable somename.service
systemctl disable somename.service
and mask/unmask them with:
systemctl mask somename.service
systemctl unmask somename.service
In real life you may end up with the simple fact that unmask command does not do anything (my last case was with SANE daemon - used for running scanners in Linux):

systemctl unmask saned
systemctl status saned
● saned.service
Loaded: masked (/dev/null; bad)
Active: inactive (dead)

Well, in this case, check how things are:

file /lib/systemd/system/saned.service
/lib/systemd/system/saned.service: symbolic link to /dev/null
or

cd /lib/systemd/system/
ls -l sane*
lrwxrwxrwx 1 root root 9 mai 21 11:04 saned.service -> /dev/null
-rw-r--r-- 1 root root 309 mai 21 11:04 saned@.service
-rw-r--r-- 1 root root 132 mai 21 11:04 saned.socket
Which means that SANE unit file saned.service is symlinked to /dev/null and won't do anything, but there is a renamed unitfile saned@.service.

So the fix is simple - delete the symlinked one, rename the right one, enable and start the daemon:

cd /lib/systemd/system/
rm saned.service
mv saned@.service saned.service
systemctl enable saned.service
systemctl start saned.service

Eesti ID-kaardi tarkvara ehk open-eid v. 17.10 kasutamine Debianis

Nädal tagasi ilmus uus ID-kaardi tarkvara versiooninumbriga 17.10. Kui oled Debian stretch'i kasutaja, siis kõik mis on kirjas artiklis Eesti ID kaardi tarkvara ehk open-eid v. 3.12 kasutamine Debianis kehtib jätkuvalt, kuid sul võib vaja olla kahte täiendust:

Kui sul tekib uuendamise käigus veateateid, mis viitavad nimetatud teekidele, siis lisa need kas eraldi "dpkg -i xxx" stiilis, või pannes vastavad repod oma arvuti sources.list faili ning open-eid saab uuendatud versioonini 17.10. Tegemist on siis selle tarkvaraversiooniga, millega saad teha ka ID-kaardi sertifikaatide uuendused.

Nimetame fotod ümber EXIF-metainfo alusel

Sul on kaustatäis kaamerast võetud fotosid, mille nimed on mõttetud (img_12345.jpg stiilis), kuid sa tahad et nimi oleks hoopis teemakohane ja sisaldaks pildi tegemise aega. Eeldades et failides on EXIF-metainfo alles, siis Linuxis on see käsurealt tehes imelihtne (punkt lõpus tähistab selle kausta sisu, kus sa asud):

exiftool -d miski-nimi-%Y%m%d-%H%M%S%%-c.%%e "-filename

Kui exiftool arvutis on puudu, siis libimage-exiftool-perl paigaldamine aitab. Antud näite puhul loetakse ajatempel DateTimeOriginal väljalt, kuid kaamerast sõltuvalt võib see puududa ja siis märgi vajalikuks lähteväljaks CreateDate või isegi FileModifyDate.

Parandame Debian stretch'i asjatu jorutamise - A start job is running for Unattended Upgrades

Mingil hetkel avaldus Debian stretch'i (ehk praguse hetke seisuga veel viimaseid aegu Debian testing) olukord, kus arvuti sulgemisel või restardil tekkis 15-minutine viivitus sellist tüüpi teatega "A start job is running for Unattended Upgrades (x / 15min)". Loomulikult on selline ootamine üldjuhul mittevajalik ning lahendus on alljärgnev.

Ava tekstitoimetiga fail

/lib/systemd/system/unattended-upgrades.service

ning muuda see rida meelepäraseks

TimeoutStartSec=900

näiteks

TimeoutStartSec=10

Eraldame pdf-failist paar lehte

Sul on kellegi poolt tehtud pdf fail sadade lehtedega ning sul on sealt vaja vaid paar lehte edasi saata. Kui kasutad Linuxit, siis on tõhusaid käsurealisi töövahendeid mitu (antud näites eraldame leheküljed 128-133):

(a) Ghostscript

gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -dSAFER \
-dFirstPage=128 -dLastPage=133 \
-sOutputFile=PisikeFailPaaristLehest-ver1.pdf TohutuFailSadadeLehtedega.pdf

(b) PDF Toolkit

pdftk A=TohutuFailSadadeLehtedega.pdf cat A128-133 output PisikeFailPaaristLehest-ver2.pdf

Antud näidetes on tulemuseks 2 faili (-ver1 ja -ver2), vaatad kumb on parem, nimetad ümber ja saadad ära. Aga loomulikult võid kohe teha emma-kumma näite najal õige lõppfaili.

Eesti ID kaardi tarkvara ehk open-eid v. 3.12 kasutamine Debianis

Aasta tagasi kirjutasin artikli Eesti ID kaardi tarkvara v. 3.11 kasutamine Debianis. Kõik seal märgitu kehtib Debian Jessie kohta jätkuvalt edasi.

Debian testingu (ehk Stretch) kasutajad, kellel on ID-kaardi tarkvara paigaldatud selle sama juhendi alusel on ehk aptitude update või apt-get update puhul märganud selliseid teateid:

Err https://installer.id.ee/media/ubuntu trusty InRelease
The following signatures were invalid: 43650273CE9516880D7EB581B339B36D592073D4
W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: https://installer.id.ee/media/ubuntu trusty InRelease: The following signatures were invalid: 43650273CE9516880D7EB581B339B36D592073D4
W: Failed to fetch https://installer.id.ee/media/ubuntu/dists/trusty/InRelease: The following signatures were invalid: 43650273CE9516880D7EB581B339B36D592073D4

Põhjus see et RIA kasutab ID-kaardi tarkvara pakkide allkirjastamiseks uut võtit. Ning kui juba võtmeuuenduseks läheb, siis on mõttekas ka repo uuema vastu ära vahetada. Seega tee juurkasutajana käsurealt alljärgnev:

wget -O /tmp/ria-public-2016.key https://installer.id.ee/media/install-scripts/C6C83D68.pub
apt-key add /tmp/ria-public-2016.key

Kommenteeri sources.list failist välja või kustuta senine trusty-repo ja lisa samasse faili

deb https://installer.id.ee/media/ubuntu/ xenial main

Tee seejärel

aptitude update && aptitude safe-upgrade

ning näed et osa pakke jääb uuendamata, mistõttu tee kas kohe algselt või seejärel

aptitude dist-upgrade

ning libxml-security-c17 eemaldatakse ja libxml-security-c17v5 tuleb asemele ning kõik komponendid uuenevad viimase versioonini.

Kui sul on pidevalt edasirullunud Debian testing, siis järgevat sinu arvutis ei juhu. Aga uue stretch'i paigalduse puhul tekib probleem libssl teegiga - nimelt stretch'is on olemas libssl1.0.2 ja libssl1.1, kuid vaja oleks libssl1.0.0 pakki.

Loomulikult võid teha vajaliku paki alla sikutada (faili nimi on artikli koostamise seisuga). See näide on amd64 jaoks, kuid vastav sarnane url ja faili nimi on olemas ka i386 ja muude arhitektuuride jaoks.

wget http://security.debian.org/debian-security/pool/updates/main/o/openssl/libssl1.0.0_1.0.1t-1+deb8u5_amd64.deb
dpkg -i libssl1.0.0_1.0.1t-1+deb8u5_amd64.deb

Kuid kuna see libssl saab turvapaikasid veel hea mitu korda, siis õigem oleks kui lisad sources.list faili

# open-eid vajab libssl1.0.0, mida stretch'is pole
deb http://security.debian.org/debian-security jessie/updates main

ning siis tee

aptitude install libssl1.0.0

Kui Debian stretch arvutis varem ID-kaardi tarkvara pole olnud, siis kogu tegevus on selline:

aptitude install apt-transport-https
wget -O /tmp/ria-public-2016.key https://installer.id.ee/media/install-scripts/C6C83D68.pub
apt-key add /tmp/ria-public-2016.key
echo '# open-eid ehk id-kaardi tarkvara' >> /etc/apt/sources.list
echo 'deb https://installer.id.ee/media/ubuntu/ xenial main' >> /etc/apt/sources.list
echo '# open-eid vajab libssl1.0.0, mida stretchis pole' >> /etc/apt/sources.list
echo 'deb http://security.debian.org/debian-security jessie/updates main' >> /etc/apt/sources.list
aptitude update
aptitude install libssl1.0.0
aptitude install open-eid

Eesti ID kaardi tarkvara v. 3.11 kasutamine Debianis

Kuutõrvajas on toimiv juhend Eesti ID kaardi tarkvara v. 3.8 kasutamine Debianis 2014 suvel. Sel viisil paigaldatud tarkvara toimib Stretch'is ja Jessie's edasi, kuid paari kiiksuga:

  • viimased Firefox'id eeldavad et laiendused on allkirjastatud ning vastasel juhul laiendused on blokeeritud (kui kasutad ametlikus repos leiduvat Iceweasel'it, siis see on parasjagu 38ESR'i juures ja seal seda olukorda ei teki)
  • BDOC'i tugi on killuke poolik (ilmselt vajalikud uuemad sertifikaadid on puudu)
  • Ubuntu Precise repo on nüüdseks installer.id.ee saidist puudu ning see võib tekitada olukorra kus /var/lib/apt/lists/partial/ kausta hakatakse poolikuid faile kuhjama ning /var või muu partitsioon, kus ta asub, kirjutatakse varem või hiljem triiki täis (kui sa järgnevat uuendust ei plaani teha, siis vähemalt kommenteeri sources.list failist see rida välja -> deb https://installer.id.ee/media/ubuntu/ precise main)

Ubuntule tehtud ID-tarkvara on saadaval hetkel 14.04 ja 15.04 jaoks. Neist esimene on LTS ning eeldatavalt püsib EstEID tugi kuni järgmise LTS'i ehk 16.04 jaoks saavad EstEID pakid tehtud. Mistõttu mina läksin 14.04 teed (järgmised toimingud loomulikult administraatori õigustes):

  • dokumenteerimise mõttes kommeneteeri /etc/apt/sources.list failist välja rida

    # deb https://installer.id.ee/media/ubuntu/ precise main
    ning lisa
    # tänane kuupäev
    deb https://installer.id.ee/media/ubuntu/ trusty main

  • tee tavaline uuendus

    aptitude update
    aptitude safe-upgrade


Jessie puhul ei tohiks tohiks ühtegi probleemi tekkida - EstEID tarkvara uueneb versioonini 3.11.1 ja kõik toimib nagu seni.

Debian testingus aga ei toimi DigiDoc'i klient. Praegune Debian testing (Stretch) on stable'ga (Jessie) võrreldes oluliselt edasi liikunud ning EstEID kontekstis on komistuskiviks libxml-security-c17 puudumine testingus. Olemas on libxml-security-c17v5, aga sellest ei tea EstEID veel midagi.

Lahendus on lihtne: Sikuta Jessie jaoks mõeldid pakk ja paigalda käsitsi (minul konflikte ei tekkinud):
64-bitise paigalduse puhul:

wget http://ftp.ee.debian.org/debian/pool/main/x/xml-security-c/libxml-security-c17_1.7.2-3+b1_amd64.deb
dpkg -i libxml-security-c17_1.7.2-3+b1_amd64.deb

32-bitise paigalduse puhul:

wget http://ftp.ee.debian.org/debian/pool/main/x/xml-security-c/libxml-security-c17_1.7.2-3+b1_i386.deb
dpkg -i libxml-security-c17_1.7.2-3+b1_i386.deb

ning seejärel uuesti

aptitude safe-upgrade

(või vastav arm'i pakk kui seda kasutad)
ning uuendamata jäänud libdigidocpp-tools, libdigidocpp0 ja libdigidocpp-common saavad ka korda ja EstEID tervikuna töökorda.

Kui arvutis varem EstEID oli puudu, siis Debian stable's ehk Jessie's tee nii:

aptitude install apt-transport-https
wget -O /tmp/ria-public.key https://installer.id.ee/media/install-scripts/ria-public.key
apt-key add /tmp/ria-public.key
echo 'deb https://installer.id.ee/media/ubuntu/ trusty main' >> /etc/apt/sources.list
aptitude update
aptitude install estonianidcard qesteidutil esteidfirefoxplugin

Stretch'i puhul oleks tegevus sama, aga enne paigaldust lisa käsitsi libxml-security-c17 (vt eespool).

Lisaks tavapärasele toele Firefox/Seamonkey brauserites toimib autentimine nüüd ka Chromiumis. Kui kasutad Chromiumi kohustuslike eelseadistuste funktsionaalsust (Managed policies) ja seal ExtensionInstallWhitelist direktiivi, siis lisa ckjefchnfjhjfedoccjbhjpbncimppeg ka loendisse.

Leiame töötavad sshd serverid oma kohtvõrgust (let's find working ssh servers from our local subnet)

Mõnikord ununeb ära missugustele kohtvõrgus asuvatele arvutitele saab ssh'ga ligi. Nmap tuleb appi:

nmap -v --open -sV 192.168.1.0/27 -p 22

Loomulikult saad CIDR'ina kirjeldatud võrku muuda vastavalt oma vajadustele või otsida mõnes muus pordis töötavaid teenuseid.

Jessie ehk Debian 8 on ilmunud

Kaheaastase arendustöö järel ilmus eile Debiani uus stabiilne versioon koodnimega Jessie ning järjenumbriga 8. Suurte uuendustena on süsteemihalduse ja juhtimise ülekolimine systemd peale ning 64-bitise ARM platvormi lisandumine.

Kokku on Jesssie's 43000 erinevat tarkvarapakki ning neist olulisemad on :

Apache 2.4.10
Asterisk 11.13.1
GIMP 2.8.14
GNOME 3.14
GNU Compiler Collection 4.9.2
Icedove 31.6.0 (Thunderbirdi variant)
Iceweasel 31.6.0esr (Firefoxi variant)
KDE Plasma Workspaces + KDE Applications 4.11.13
LibreOffice 4.3.3
Linux 3.16.7
MariaDB 10.0.16
MySQL 5.5.42
Nagios 3.5.1
OpenJDK 7u75
Perl 5.20.2
PHP 5.6.7
PostgreSQL 9.4.1
Python 2.7.9 + 3.4.2
Samba 4.1.17
Tomcat 7.0.56 + 8.0.14
Xen Hypervisor 4.4.1
Xfce 4.10

Järgmise Debiani versiooni nimi on juba teada ja selleks on Stretch.

Et Linuxi-nädal oleks täielik, siis ilmus paar päeva tagasi uus Ubuntu 15.04 Vivid Vervet (ning ka nemad kasutavad nüüd init'i jaoks systemd'd).

Eemaldame failist tühjad read ja tühjad realõpud

Erisuguses failipõhises andmetöötluses on tihti vaja failist välja visata tühjad read ja/või asjatud tühikud rea algusest ja lõpust. Kui oled Linuxi kasutaja, siis sed tuleb käsureal appi:

sed 's/^ //; s/ $//; /^$/d' miskifail.txt > miskiuusfail.txt

Lihtne selgitus:

  • miskifail.txt - algne fail
  • miskiuusfail.txt - töödeldud fail
  • `s/^ //` - eemaldame tühikud rea algusest
  • `s/ $//` - eemaldame tühikud rea lõpust
  • `/^$/d` - eemaldame tühjad read