abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
dnes 15:00 | Nová verze

Byla vydána verze 3.0.0 frameworku pro vývoj multiplatformních desktopových aplikací pomocí HTML, CSS a JavaScriptu Electron (YouTube, GitHub). Electron byl původně vyvíjen pro editor Atom pod názvem Atom Shell. Dnes je na Electronu postavena celá řada dalších aplikací.

Ladislav Hagara | Komentářů: 0
dnes 14:44 | Nová verze

Po půl roce vývoje od vydání verze 6.0.0 byla vydána verze 7.0.0 překladačové infrastruktury LLVM (Wikipedie). Přehled novinek v poznámkách k vydání: LLVM, Clang, clang-tools-extra a LLD.

Ladislav Hagara | Komentářů: 0
dnes 13:44 | Nová verze

Byla vydána verze 3.0.0 knihovny pro vykreslování grafů v programovacím jazyce Python Matplotlib (Wikipedie, GitHub). Přehled novinek a galerie grafů na stránkách projektu. Zrušena byla podpora Pythonu 2.

Ladislav Hagara | Komentářů: 0
dnes 00:22 | Komunita

V Norimberku probíhá do pátku ownCloud conference 2018, tj. konference vývojářů a uživatelů open source systému ownCloud (Wikipedie) umožňujícího provoz vlastního cloudového úložiště. Přednášky lze sledovat online. Videozáznamy jsou k dispozici na YouTube. Při této příležitosti byl vydán ownCloud Server 10.0.10. Z novinek lze zdůraznit podporu PHP 7.2. Vydán byl také ownCloud Desktop Client 2.5.0. Vyzkoušet lze online demo ownCloudu.

Ladislav Hagara | Komentářů: 0
dnes 00:11 | Pozvánky

Zářijový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 20. 9. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma IoT, CNC, svobodný software, hardware a další hračky.

xkucf03 | Komentářů: 0
včera 16:11 | Komunita

Vývojáři relačního databázového systému PostgreSQL oznámili, že schválili svůj Code of Conduct (CoC) aneb kodex chování vývojářů PostgreSQL.

Ladislav Hagara | Komentářů: 16
včera 14:44 | Nová verze

Byla vydána verze 1.0 poštovního serveru Courier (Wikipedie). Aktualizovány byly také související balíčky jako Courier authentication library, Courier-IMAP, SqWebMail, maildrop nebo Cone.

Ladislav Hagara | Komentářů: 0
včera 02:22 | Zajímavý software

Společnost ​Versity Software otevřela svůj archivační souborový systém ScoutFS. Zdrojové kódy jsou k dispozici na GitHubu (kernel space, user space) pod licencí GPLv2.

Ladislav Hagara | Komentářů: 26
včera 00:44 | Nová verze

Byla vydána verze 4.2 programovacího jazyka Swift (Wikipedie). Zdrojové kódy jsou k dispozici na GitHubu. Ke stažení jsou oficiální binární balíčky pro Ubuntu 18.04, Ubuntu 16.04 a Ubuntu 14.04. Přehled novinek ve videozáznamu přednášky z WWDC 2018.

Ladislav Hagara | Komentářů: 6
17.9. 17:55 | Nová verze

Po třech a půl letech od vydání verze 3.4.1 byla vydána nová verze 3.4.2 programu pro filtrování spamu Apache SpamAssassin (Wikipedie). Z novinek lze zmínit 4 nové pluginy. Pravidla budou ověřována pomocí SHA-256 a SHA-512 místo SHA-1. Řešeny jsou také 4 bezpečnostní chyby. Například chyba CVE-2018-11780 v pluginu PDFInfo zneužitelná ke vzdálenému spuštění kódů (RCE).

Ladislav Hagara | Komentářů: 0
Na optické médium (CD, DVD, BD aj.) jsem naposledy vypaloval(a) data před méně než
 (13%)
 (15%)
 (20%)
 (23%)
 (25%)
 (4%)
 (1%)
Celkem 366 hlasů
 Komentářů: 33, poslední 16.9. 11:55
Rozcestník

Dotaz: Skript spustí jen něco

8.10.2017 12:56 Luky
Skript spustí jen něco
Přečteno: 585×
Ahoj, chtěl bych se zeptat, proč v sh skriptu mohu spouštět příkazy jako např. mount a touch, ale cryptsetup ne? Jaký je v tom rozdíl?

Řešení dotazu:


Odpovědi

8.10.2017 13:13 Kit | skóre: 42 | Brno
Rozbalit Rozbalit vše Re: Skript spustí jen něco
Možná proto, že Bash obsahuje správně nastavenou cestu v PATH, ale sh ji nastavenou nemá.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
8.10.2017 13:24 Luky
Rozbalit Rozbalit vše Re: Skript spustí jen něco
No nevím, když pustím sh skript, ve kterém mám cryptsetup ručně, spustí se...
8.10.2017 13:37 Kit | skóre: 42 | Brno
Rozbalit Rozbalit vše Re: Skript spustí jen něco
Co takhle zkusit spustit cryptsetup ručně v sh?

Také by se hodilo spouštět takové příkazy s absolutní cestou.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
8.10.2017 13:47 Luky
Rozbalit Rozbalit vše Re: Skript spustí jen něco
spustit ručně v sh funguje
8.10.2017 13:28 Luky
Rozbalit Rozbalit vše Re: Skript spustí jen něco
# which cryptsetup
/usr/sbin/cryptsetup

# which touch
/bin/touch

# which mount
/usr/bin/mount

# echo $PATH
/usr/sbin:/usr/bin:/sbin:/bin
k3dAR avatar 8.10.2017 16:01 k3dAR | skóre: 51
Rozbalit Rozbalit vše Re: Skript spustí jen něco
kdyz to takto pustis v shellu, tak to neznamena ze z pozice kde poustis script (predpokladam udev pravidlo) to bude stejne...
obecne kdyz resis ze neco se nepousti tak proste do scriptu pridej tyhle tve prikazy s presmerovanim do souboru, nech to pustit tim co se to vola a zkoukni vystupni soubory... pripadne nesrovnalosti v porovnani s vystupem prikazu v shellu te uz navedou ;)
porad nemam telo, ale uz mam hlavu... nobody
8.10.2017 13:47 petr
Rozbalit Rozbalit vše Re: Skript spustí jen něco
co pouzivas za shell ve svem skriptu? Na zacatku budes mit treba #!/bin/bash nebo neco jineho... Pokud ti to ve skriptu nefunguje, zkus si spustit treba ten /bin/bash a spustit to co potrebujes rucne v nem... jak jiz ti nekdo napovida, patrne nemas validni PATH... Dalsi vec ze bez nejakeho chyboveho hlaseni ti tezko nekdo pomuze kdyz nevime co se deje ve tvem skriptu, tudiz mam tady na stole takovou tu kristalovku a vestim odrazem z oblohy...
8.10.2017 13:56 Luky
Rozbalit Rozbalit vše Re: Skript spustí jen něco
#!/bin/sh

# Copyright (C) 2009 OpenWrt.org
PRODID="1058/10b8/1012"

case "$ACTION" in
    add)
        
        if [ "${PRODUCT}" = "${PRODID}" ];
         then
             /usr/sbin/cryptsetup --key-file /etc/ssl/usbbackup_key luksOpen /dev/sdb1 backup
        fi
        ;;

    remove)

         if [ "${PRODUCT}" = "${PRODID}" ];      
          then            
             umount /mnt/usbbackup
         fi           

        ;;
esac
Ruční spouštění cryptsetup v sh funguje.
8.10.2017 14:29 Kit | skóre: 42 | Brno
Rozbalit Rozbalit vše Re: Skript spustí jen něco
if [ "${PRODUCT}" = "${PRODID}" ];
Tato podmínka zřejmě nikdy není splněna.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
8.10.2017 14:36 Luky
Rozbalit Rozbalit vše Re: Skript spustí jen něco
Je, protože když vyměním příkaz cryptsetup... za touch /tmp/test a rm /tmp/test, soubor se po připojení USB disku vytvoří a po odpojení odstraní
8.10.2017 16:08 NN
Rozbalit Rozbalit vše Re: Skript spustí jen něco
po připojení USB disku
Kdy? Po bootu? Skript se pousti pres udev? Co znamena "nespusti se", nevytvri se mapper zarizeni? K cemu je tam ten umount?

Mimochodem uz si se jednou ptal, priste laskave nezakladej dalsi vlakna..
8.10.2017 20:07 Luky
Rozbalit Rozbalit vše Re: Skript spustí jen něco
Připojeni, odpojení za běhu. Skript se spouští před hotplug.d. Ne, nevytvoří. Když ho ale spustím ručně nebo s rc.local po startu, vytvoří se. Ten umount tam je proto, protože jsem tam měl ještě && mount v add části. Ptal, ale ve vlákně, kde jsem primárně řešil něco jiného a tenhle dotaz tam zřejmě zanikl, omlouvám se. Podstata dotazu je, jaký rozdíl je mezi jednotlivými příkazy.. v čem je "mount" a "touch" pro systém "víc", než cryptsetup?
8.10.2017 20:15 Kit | skóre: 42 | Brno
Rozbalit Rozbalit vše Re: Skript spustí jen něco
Ten umount spouštíš až po vytažení flešky? To by leccos vysvětlovalo...
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
8.10.2017 21:49 Luky
Rozbalit Rozbalit vše Re: Skript spustí jen něco
No ale to, proč se nespustí příkaz cryptsetup narozdíl od touch to bohužel nevysvětluje.
8.10.2017 22:15 NN
Rozbalit Rozbalit vše Re: Skript spustí jen něco
Jak vypada cely proces v dmesg/messages? Zkousel jsi dat pred cryptsetup nejakou prodlevu (sleep 5) a jeste by mohlo pomoct --debug ..
8.10.2017 22:21 Luky
Rozbalit Rozbalit vše Re: Skript spustí jen něco
Sleep 10 jsem zkoušel a nepomohlo. V dmesg vidím jen nalezení nového USB disku, víc podrobností jsem bohužel nenašel. Je to openwrt, takže se to chová řekněme nestandardně:)
9.10.2017 08:32 NN
Rozbalit Rozbalit vše Re: Skript spustí jen něco
Dej tam --debug a na konec '> ~/setup.log 2>&1 &'
9.10.2017 09:23 Luky
Rozbalit Rozbalit vše Re: Skript spustí jen něco
Díky, mám tu nová zjištění:)
[  282.560000] usb-storage 1-1.2:1.0: USB Mass Storage device detected
[  282.580000] scsi host1: usb-storage 1-1.2:1.0
[  283.580000] scsi 1:0:0:0: Direct-Access     WD       Elements 10B8    1012 PQ: 0 ANSI: 6
[  283.590000] sd 1:0:0:0: [sdb] Spinning up disk...
[  284.620000] .....ready
[  288.660000] sd 1:0:0:0: [sdb] 1465081856 512-byte logical blocks: (750 GB/698 GiB)
[  288.670000] sd 1:0:0:0: [sdb] Write Protect is off
[  288.670000] sd 1:0:0:0: [sdb] Mode Sense: 47 00 10 08
[  288.680000] sd 1:0:0:0: [sdb] No Caching mode page found
[  288.680000] sd 1:0:0:0: [sdb] Assuming drive cache: write through
[  288.710000]  sdb: sdb1
[  288.730000] sd 1:0:0:0: [sdb] Attached SCSI disk
/Device /dev/sdb1 doesn't exist or access denied.
Command failed with code 15: Block device required
# cryptsetup 1.6.7 processing "/usr/sbin/cryptsetup --debug --key-file /etc/ssl/usbbackup_key luksOpen /dev/sdb1 backup"
# Running command open.
# Locking memory.
# Installing SIGINT/SIGTERM handler.
# Unblocking interruption on signal.
# Allocating crypt device /dev/sdb1 context.
# Trying to open and read device /dev/sdb1 with direct-io.
# Trying to open device /dev/sdb1 without direct-io.
# Unlocking memory.
Takže příkaz se spouští, omlouvám se všem za zavádějící informaci:) Ale pro změnu nerozumím tomu, jak je to možné /Device /dev/sdb1 doesn't exist or access denied.. Nepomohl ani sleep 10. Mám prodloužit interval? Přitom když USB připojím, tak ruční připojení cryptsetupem zhruba po 5 vteřinách funguje. Každopádně díky všem, že jsem se posunul dál:)
9.10.2017 10:23 Luky
Rozbalit Rozbalit vše Re: Skript spustí jen něco
Tak jsem sleep nakonec vyšponoval až na 30 a funguje. Ale dobrý to se dá zvládnout:) Díky moc všem za pomoc.
9.10.2017 11:11 Kit | skóre: 42 | Brno
Rozbalit Rozbalit vše Re: Skript spustí jen něco
To už zní skoro jako chyba v resolveru. Nemáš tam někde hledání IP podle domény?
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
9.10.2017 12:38 Luky
Rozbalit Rozbalit vše Re: Skript spustí jen něco
Co to s tím má (nebo by mohlo mít), prosím Tě, společnýho?
9.10.2017 16:13 Kit | skóre: 42 | Brno
Rozbalit Rozbalit vše Re: Skript spustí jen něco
Stačí někde ve skriptu některého z démonů poslat dotaz na DNS a čekat na odpověď s chybně nakonfigurovaným resolverem. Může to být i dotaz na reverzní záznam. Zkusil bych to zopakovat s odpojenou sítí.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
9.10.2017 20:21 lertimir | skóre: 61 | blog: Par_slov
Rozbalit Rozbalit vše Re: Skript spustí jen něco
Myslím že skript spouštíš na špatném mistě. Evidentně ho spustíš ve chvíli, kdy ještě zařízení /dev/sdb1 neexistuje. Takže ho mužeš spustí něčím, co spustí triger "něco je v USB", ale zatím neproběhly akce, které dělá udev, aby /dev/sdb1 vytvořil. To jak je to se sleepama může být i to, že jsi skrip narval tak dopředu, že udev na něj třeba čeká, a teprve po nějaké timeoutu pustí akci, když je tam obrovský sleep. vžycky mi pomáhaly výpisy. dej si do skriptu výpis do syslogu před a po, nebo cyklus na existenci /dev/sdb1.
9.10.2017 22:21 NN
Rozbalit Rozbalit vše Re: Skript spustí jen něco
Podle skriptu je to poustene na starem OpenWrt pres hotplug.d ..
9.10.2017 16:24 Filip Jirsák | skóre: 67 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Skript spustí jen něco
sleep není dobré řešení, resp. je to poslední zoufalý pokus to nějak obejít. Protože když spustíte ten skript, evidentně nejsou splněné podmínky, které ke svému běhu potřebuje – a tím sleep jenom oddálíte spuštění požadovaného příkazu a doufáte, že se to zatím nějak samo magicky spraví. Ono se vám to teď možná samo magicky spraví, jenže když se něco magicky samo spravuje, má tendenci se to zase samo magicky rozbíjet. Takže pokud chcete dlouhodobě udržitelné řešení, měl byste zjistit, co jsou ty další podmínky, které skript ke svému běhu potřebuje, a zajistit, aby byly splněné.
8.10.2017 16:53 petr
Rozbalit Rozbalit vše Re: Skript spustí jen něco
zadna chybova hlaska? Kdyz tam pouzijes --verbose porad nic nevidis?
8.10.2017 16:04 R
Rozbalit Rozbalit vše Re: Skript spustí jen něco
Skontroluj navratovu hodnotu cryptsetup, pripadne jeho vystup (aj chybovy) presmeruj do nejakeho tmp suboru.
8.10.2017 21:58 Kit | skóre: 42 | Brno
Rozbalit Rozbalit vše Re: Skript spustí jen něco
Pod kterým uživatelem se skript spouští?
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
8.10.2017 22:07 Luky
Rozbalit Rozbalit vše Re: Skript spustí jen něco
Řekl bych, že hotplug.d se spouští pod rootem, ale pro jistotu, jak to ověřím?
8.10.2017 22:14 Kit | skóre: 42 | Brno
Rozbalit Rozbalit vše Re: Skript spustí jen něco
Například když se tam dá ten touch, tak podle vlastníka vytvořeného souboru.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
8.10.2017 22:23 Luky
Rozbalit Rozbalit vše Re: Skript spustí jen něco
super, díky.. tak je to root
8.10.2017 22:04 jekub
Rozbalit Rozbalit vše Re: Skript spustí jen něco
jak vite, ze se prikaz nespusti?
8.10.2017 22:10 Luky
Rozbalit Rozbalit vše Re: Skript spustí jen něco
protože se nevytvoří /dev/mapper/backup (když pustím cryptsetup skriptem nebo nechám spustit v rc.local po startu, vytvoří se)
8.10.2017 22:27 jekub
Rozbalit Rozbalit vše Re: Skript spustí jen něco
Jenze to neznamena, ze se nespusti. Jen neudela, co potrebujete.

Zkusil bych prikaz volani cryptsetup nahradit skriptem a logovat spusteni, volani a navratovy kod.

8.10.2017 22:32 Luky
Rozbalit Rozbalit vše Re: Skript spustí jen něco
zkoušel jsem, jenže jediný log na openwrt se vyvolá příkazem logread (-f) a tam se žádná chyba neobjevila
k3dAR avatar 8.10.2017 23:57 k3dAR | skóre: 51
Rozbalit Rozbalit vše Re: Skript spustí jen něco
tohle si prehlid nedopatrenim nebo umyslne aby jsi mohl trollovat? ;)
porad nemam telo, ale uz mam hlavu... nobody
Jendа avatar 9.10.2017 04:37 Jendа | skóre: 75 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: Skript spustí jen něco
Vytvoř skript, který spustí tvůj skript s >/tmp/a 2>/tmp/b a spouštěj ten wrapper.
9.10.2017 10:37 Luky
Rozbalit Rozbalit vše Re: Skript spustí jen něco
Díky, vyřešeno, viz výše (sleep 20). A ještě bych měl jeden dotaz a nevím, jestli založit nové vlákno, tak to dám sem a budu doufat, že to tu zase nezanikne:) Stává se mi, že ten disk někdy změní název /dev/sdb1, což je blbý, protože cryprsetup s ním počítá. Jsou dvě možnosti, jak to ošetřit. První, že se budu odkazovat na UUID, ale na OpenWrt není cesta k dispozici. Druhá možnost je, že si podle zařízení bude pamatovat název. Jenže tady nejsou udev pravidla. Napadá vás, jak to vyřešit?
9.10.2017 10:38 Luky
Rozbalit Rozbalit vše Re: Skript spustí jen něco
jen detail, sleep 30.. pardon :)
9.10.2017 11:49 trubicoid2
Rozbalit Rozbalit vše Re: Skript spustí jen něco
co treba pustit lsscsi a z toho si vybrat?
9.10.2017 18:15 Luky
Rozbalit Rozbalit vše Re: Skript spustí jen něco
Když bych ošetřil nějak ten luksOpen, bylo by mi v podstatě jedno, jestli se USB disk připojí jako sda nebo sdb.. Ale jak v tom skriptu nastavit proměnou k luksOpen, aby např. z blkid (mám k dispozici na openwrt) vytáhl, že patřičné uuid patří třeba k /dev/sda1 a to by vložil do příkazu za luksOpen. Lze to vůbec nebo je to úplná blbost?
9.10.2017 19:36 trubicoid2
Rozbalit Rozbalit vše Re: Skript spustí jen něco
man blkid

...

-U uuid Look up the device that uses this filesystem uuid. For more details see the -L option.
k3dAR avatar 9.10.2017 20:21 k3dAR | skóre: 51
Rozbalit Rozbalit vše Re: Skript spustí jen něco
predvedeno v prikladu... nejdriv si zjistit UUID daneho LUKS oddilu a ve scriptu:
UUID="SemNapsatRucneToUUID"
LUKS="$(blkid -U ${UUID})"
...
/usr/sbin/cryptsetup --key-file /etc/ssl/usbbackup_key luksOpen ${LUKS} backup
...
pripadne misto nevhodneho reseni pres sleep 30, cekat ve scriptu dokud neni dostupne
UUID="SemNapsatRucneToUUID"
until [ $LUKS ]; do LUKS="$(blkid -U ${UUID})"; sleep 1; done
...
/usr/sbin/cryptsetup --key-file /etc/ssl/usbbackup_key luksOpen ${LUKS} backup
...
porad nemam telo, ale uz mam hlavu... nobody
9.10.2017 20:50 Luky
Rozbalit Rozbalit vše Re: Skript spustí jen něco
Tak tohle je pomoc nad zlato.. a dokonce to i chápu:) Zítra otestuju a dám vědět. MOC DÍKY:)
k3dAR avatar 9.10.2017 23:50 k3dAR | skóre: 51
Rozbalit Rozbalit vše Re: Skript spustí jen něco
jen pozor, to SemNapsatRucneToUUID je potreba UUID primo LUKS oddilu, tedy pred odemcenim, ve vypisu blkid je zobrazen na radku koncicim TYPE="crypto_LUKS", tedy ne aby jsi vkladal UUID jiz odemceneho, v tvem pripade ne z radku zacinajici /dev/mapper/backup ;)
porad nemam telo, ale uz mam hlavu... nobody
10.10.2017 08:23 Luky
Rozbalit Rozbalit vše Re: Skript spustí jen něco
jj, to jsem pochopil, díky:)
10.10.2017 08:56 Luky
Rozbalit Rozbalit vše Re: Skript spustí jen něco
Šlape to jako víno.. ještě jednou díky (všem:). PS: To odpojování asi líp nevymyslím.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.