1
|
Linux секция за начинаещи / Настройка на програми / Ред на стартиране/спиране на systemd services
|
-: Apr 24, 2017, 12:58
|
Привет, Преди време бях питал в друга тема подобен въпрос, но реших, че е минало доста време оттогава и по-добре да създам нова дискусия. Става дума за редът, по който се викат/изпълняват systemd услугите. Имам монтирани няколко мрежови файлови системи (cifs), които обаче са достъпни само при работещ VPN (openvpn). Целта на моя service, който се опитвам да направя, е той да се изпълнява *преди* спирането на VPN-a (настроен е през network-manager), когато системата се спира, рестартира, приспива и да размонтира отдалечените файлови системи. Ето как изглежда един вариант на service-a [Unit] Description=Umount network file systems After=network-online.target openvpn-client.service Requires=network-online.target
[Service] Type=oneshot EnvironmentFile=/etc/default/umounts.conf ExecStart=-/bin/umount $OPTIONS -t $FILESYSTEMS ExecStop=-/bin/umount $OPTIONS -t $FILESYSTEMS
[Install] WantedBy=multi-user.target network-online.target openvpn-client.service
За съжаление, когато приспивам машината (suspend) не всички отдалечени файлови системи се разкачат, а само 1, или 2. Предполагам systemd не изчаква достатъчно и затова се получава така. Проблемът не е в командата, която прави размонтирането: ExecStop=-/bin/umount $OPTIONS -t $FILESYSTEMS Когато я изпълня само нея всичко се разкача, както и се очаква. Проблемът според мен е в реда на спиране на услугите при shutdown, suspend ... etc Засега тествам само със suspend, защото е най-удобно и бързо, но и при рестартиране, или гасене положението е аналогично.
|
|
|
2
|
Linux секция за напреднали / Хардуерни и софтуерни проблеми / openconnect в Debian sid - TLS fatal alert
|
-: Feb 15, 2016, 19:44
|
Здравейте, Имам проблем с openconnect - версия 7.06-2+b2 в текущия Debian sid. Ползвам го чрез плъгина за network-manager в gnome, но това е без значение, защото и при директно извикване резултатът е същия, а именно: GeSHi (Bash): POST https://*.*.*.*/ Attempting to connect to server *.*.*.*:443 SSL negotiation with *.*.*.* SSL connection failure: A TLS fatal alert has been received. Failed to open HTTPS connection to *.*.*.*
Ползвайки клиентът на openssl, за да тествам отсрещната страна (някакво CISCO, до което нямам достъп) получавам следното: GeSHi (Bash): No client certificate CA names sent --- SSL handshake has read 703 bytes and written 497 bytes --- New, TLSv1/SSLv3, Cipher is RC4-MD5 Server public key is 1024 bit Secure Renegotiation IS NOT supported Compression: NONE Expansion: NONE No ALPN negotiated SSL-Session: Protocol : TLSv1 Cipher : RC4-MD5 Session-ID: 8529A69EC827DD492E4B0036A2FF3FC7F7FE4521867705BBBBAFBEE54D021E3B Session-ID-ctx: Master-Key: 9FCE53E33CC4B33D308768E038DFFEE757F1F83B8249B0B1CBFFA3182F75AD525471BD66336366328993C95736C2EA78 Key-Arg : None PSK identity: None PSK identity hint: None SRP username: None Start Time: 1455557262 Timeout : 300 (sec) Verify return code: 18 (self signed certificate) ---
В същото време, при преглеждане на мрежовия трафик (wireshark), когато се опитвам да се закача с openconnect виждам това в SSL Client HELLO (ssl.handshake.ciphersuites): Cipher Suites (54 suites): Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b) Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (0xc02c) ....
Не ги изреждам всичките, но по-важното е, че липсва RC4-MD5. Ако се ориентирам правилно, CISCO-то отсреща предлага шифър, който openconnect не поддържа и това осира връзката. Въпросният шифър е набеден за несигурен и затова сигурно openconnect не го ползва, но все пак дали няма начин да го накарам да го "хареса" отново, защото нещата си работеха нормално допреди няколко дни. Предполагам е минал ъпдейт, който е променил openconnect. Не можах и да се ориентирам какво ползва openconnect - openssl, gnutls ...
|
|
|
3
|
Linux секция за начинаещи / Настройка на програми / Проблем с openconnect (Debian sid)
|
-: Aug 28, 2015, 13:09
|
Здравейте, Ползвам openconnect в текущия нестабилен Дебиан, за да се закачам за anyConnect услуга на Cisco. Доскоро всичко работеше добре, но от известно време се получава проблем - ВПН–ът се закача и работи нормално, докато не стартирам нещо, което да прекара трафик през него. Тогава връзката дропва и в логовете имам това: Aug 28 12:59:19 localhost openconnect[9820]: DTLS handshake failed: Resource temporarily unavailable, try again. Aug 28 12:59:20 localhost openconnect[9820]: Unexpected packet length. SSL_read returned 1414 but packet is Aug 28 12:59:20 localhost openconnect[9820]: 53 54 46 01 05 9e 00 00 Aug 28 12:59:20 localhost openconnect[9820]: Unknown packet ff ff 24 92 92 48 ff ff Aug 28 12:59:20 localhost openconnect[9820]: Send BYE packet: Unknown packet received Aug 28 12:59:20 localhost openconnect[9820]: Unknown error; exiting.
Ако пусна само пинг, примерно, до някой от хостовете, получавам отговори и всичко е ОК. Ако монтирам шерната папка от някой хостовете (cifs, всички машини са с windows), също няма проблем. Ако обаче опитам да достъпя точката, където е монтиран шеринга - връзката се разпада с горната грешка. В нета не намирам нищо, освен сорсове, които не ми помагат особено да разбера къде е проблема. Под уиндоус всичко работи без проблеми. Следих трафика с wireshark, но не съм в час с този вид комуникация и не знам какво точно да гледам, честно казано. Ако някой даде насока за това, мога да покажа резултат от wireshark. Ето версиите на openconnect, които са инсталирани: dpkg -l *openconnect* Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-=====================================-=======================-=======================-=============================================================================== rc libopenconnect3:amd64 6.00-2 amd64 open client for Cisco AnyConnect VPN - shared library ii libopenconnect5:amd64 7.06-2+b1 amd64 open client for Cisco AnyConnect VPN - shared library ii network-manager-openconnect 1.0.2-1+b1 amd64 network management framework (OpenConnect plugin) ii network-manager-openconnect-gnome 1.0.2-1+b1 amd64 network management framework (OpenConnect plugin GNOME GUI) ii openconnect 7.06-2+b1 amd64 open client for Cisco AnyConnect VPN
Поздрави!
|
|
|
4
|
Linux секция за начинаещи / Настройка на програми / Създаване на systemd unit
|
-: Nov 13, 2014, 08:37
|
Искам да си направя прост скрипт (unit) за systemd, който да демонтира (umount) монтираните мрежови ресусри при приспиване на машината (suspend). Ето как изглежда (тестов вариант): [Unit] Description=User suspend actions Before=suspend.target
[Service] User=%u Type=forking ExecStart=/bin/sh -c '\ logger "UMOUNT START"; \ FSMOUNTED="$(mount -t nfs,nfs4,cifs,smbfs | cut -d " " -f 3)"; \ logger "COUNT: ${#FSMOUNTED}";\ logger "UMOUNT END"; \ '
[Install] WantedBy=suspend.target
Идеята е, на FSMOUNTED да се присвоят монтираните мрежови файлови системи (nfs, cifs ... etc), но FSMOUNTED е винаги празна. При стартиране на unit-a в лога получавам systemd[1]: Failed to reset devices.list on /system.slice: Invalid argument logger: UMOUNT START logger: COUNT logger: UMOUNT END
Някакви идеи? П.П. Преди време, когато първоначално съзадох unit-a, но в по-различен вариант (без проверка дали има монтирани фс) работеше, но днес случайно забелязах, че не работи. Не съм гледал дали са минавали ъпдейти скоро свързани със systemd
|
|
|
5
|
Програмиране / Web development / PHP finfo vs command file
|
-: Nov 06, 2014, 18:59
|
Привет, Работя върху web приложение за качване на файлове с PHP. Искам да разбера какъв е mime-type на файла, който се качва. Когато използвам PHP finfo получавам "application/octet-stream; charset=binary" $finfo = finfo_open(FILEINFO_MIME); echo finfo_file($finfo,"File.odt"); finfo_close($finfo);
в същото време, ако използвам filе се получава "application/vnd.oasis.opendocument.text; charset=binary" Поразрових се да видя дали finfo и file ползват една и съща база с mime types. Файлът в Дебиан е "/usr/share/file/magic.mgc" (има няколко симлинка към него). Ако го използвам изрично с file, няма проблем - резултатът е същия: file -i -m /usr/share/file/magic.mgc File.odt
Ако обаче дам същият файл на finfo_open, нещата не са ОК: $finfo = finfo_open(FILEINFO_MIME, "/usr/share/file/magic.mgc"); echo finfo_file($finfo,"File.odt"); finfo_close($finfo);
Горното гърми с: PHP Notice: finfo_open(): Warning: offset `-' invalid in /home/senser/Desktop/CustomerFiles_Tests/finfo.php on line 4 PHP Notice: finfo_open(): Warning: type `-' invalid in /home/senser/Desktop/CustomerFiles_Tests/finfo.php on line 4 PHP Notice: finfo_open(): Warning: offset `.' invalid in /home/senser/Desktop/CustomerFiles_Tests/finfo.php on line 4 PHP Notice: finfo_open(): Warning: type `.' invalid in /home/senser/Desktop/CustomerFiles_Tests/finfo.php on line 4 PHP Warning: finfo_open(): Failed to load magic database at '/usr/share/file/magic.mgc'. in /home/senser/Desktop/CustomerFiles_Tests/finfo.php on line 4
В същото време finfo с параметър празната директория "/usr/share/misc/magic", не гърми: $finfo = finfo_open(FILEINFO_MIME, "/usr/share/misc/magic");
вади същия резултат "application/octet-stream; charset=binary". И последно ако извикам file без да тества с magic files (от man file: soft Consults magic files): file -i --exclude soft File.odt
имам "application/octet-stream; charset=binary" Всичко това ме навежда на мисълта, че finfo на PHP не (може да) ползва същата mime types база. Не намирам в същото време кой файл ползва вътрешно. Това, което намирам на сайта на РНР ( http://bg2.php.net/manual/en/fileinfo.installation.php) е това: The libmagic library is bundled with PHP, but includes PHP specific changes. A patch against libmagic named libmagic.patch is maintained and may be found within the PHP fileinfo extensions source. Ето какво имам от phpinfo(): fileinfo fileinfo support enabled version 1.0.5 libmagic 517
|
|
|
6
|
Програмиране / Web development / Редактиране на файл през браузър
|
-: Aug 23, 2014, 09:00
|
Здравейте, Опитвам се да измисля начин за редактиране на файл, който се съхранява в база данни, която има изграден уеб интерфейс. Тривиалният (за мен поне) начин, за да се случи това е потребителят да свали (download) файла на локалната си машина, да направи промените и после да го качи (upload) отново. Това, което искам да постигна е това да се случи с един клик, т.е. потребителят цъка върху файла, той се отваря с програмата по подразбиране, която е настроена в браузъра, юзърът го едитва, сейва и затваря, при което файлът се ъплоудва обратно в базата. Решението на проблема не е е нужно да е универсално, защото ще се ползва във фирмена система от 10-ина РС-та, които мога да настроя, както искам, т.е. не търся нещо, което да работи на всяко РС и всеки браузър. Голямата ми чуденка като начало е как ще разбера, че потребителят е свършил с редактирането на файла, за да го засиля обратно в базата. Иначе гледам, че HTML5 File API http://dev.w3.org/2006/webapi/FileAPI/ се поддържа от повечето браузъри и с него ще мога да достъпя локално сваления за редактиране файл, но не виждам как ще разбера дали редактирането е свършило. Отворен съм и за други идеи, но решения от типа на google drive или подобни не ми вършат работа, защото файловете съдържат лични данни и не искам да се сторват из разни облаци и т.н.. Поздрави!
|
|
|
8
|
Linux секция за начинаещи / Настройка на програми / Проблем с runit в нестатбилен Дебиан
|
-: May 09, 2014, 16:52
|
Здравейте, Преди няколко дни мина по-голям ъпдейт на дебиана (/etc/debian_version - jessie/sid), след който спря да ми се стартира git-daemon при зареждане на системата. След известно ровене установих, че проблемът идва от това, че не се стартира runsvdir-start от /etc/inittab: #-- runit begin SV:123456:respawn:/usr/sbin/runsvdir-start #-- runit end
Ако го стартирам ръчно в терминал и го спра след това всичко е ОК, но не разбирам защо не тръгва със зареждането на системата. Опитах да премина на upstart за init процес, но системата не зарежда, спира със зареждането на модули на ядрото и дотам. Затова се върнах пак на systemd. Ето какво имам инсталирано: ii systemd-gui 1:3-2 ii systemd-shim 6-3 ii systemd-sysv 204-10 ii systemd-ui 3-2 ii runit 2.1.1-6.2 ii git-daemon-run 1:2.0.0~rc2-1
|
|
|
10
|
Linux секция за начинаещи / Настройка на програми / Опции за автоматично монтиране на USB flash drive в Дебиан
|
-: Jan 16, 2013, 20:01
|
Здравейте, Опитвам се да променя/задам опциите при автоматичното монтиране на една флашка, форматирана с ext2 файлова система (файловата с-ма не мисля, че е от значение, защото и vfat да бъде пак е същото). ОС е Дебиан 7.0. При пъхане на флашката, тя се монтира автоматично със следните опции: /dev/sdb2 /media/USB_EXT2 ext2 rw,nosuid,nodev,relatime,errors=continue,user_xattr,acl 0 0
Искам към опциите да добавя noatime. Ако правилно съм се ориентирал в това, което четох из нета, автоматичното монтиране става чрез udev & udisks правила, но всички опити, които правих във файла /etc/udev/rules.d/80-usb-drie.rules бяха безуспешни. За основа ползвах съдържаниято на файла /lib/udev/rules.d/80-udisks.rules. Ето едно примерно правило, което опитах: ACTION=="add", ENV{ID_FS_TYPE}=="ext2", ENV{mount_options}="%E{mount_options} -o noatime"
Може би udisks не ползва mount_options, но не намерих никъде и-ция за това. Другото решение, което опитах е да добавя запис в /etc/fstab с надеждата, че udisks ще прочете опциите оттам при монтиране на у-вото, но вместо това флашката изобщо не се монтира автоматично. Ето редът от fstab: UUID=9a38e3d1-8157-4201-b113-a16761c92d7e /mnt/usb_ext2 ext2 rw,noatime,nodiratime,nodev,noauto,async,users,noacl,errors=remount-ro,nouser 0 2
Някакви насоки за решение?
|
|
|
11
|
BSD секция / Системни настройки / Проблем с ppp.linkup в OpenBSD
|
-: Nov 30, 2012, 08:16
|
Здравейте, Смених ОС на едно от РС-тата, които изпълняват ролята на рутер/файъруол с последното OpenBSD. Схемата е тривиална - РС с две лан карти, една за интернета на Спектрум по pppoe, другата за вътрешната мрежа. Проблемът ми е, че не мога да накарам да се изпълнява скриптът /etc/ppp/ppp.linkup при вдигане на рррое интерфейса. Това е съдържанието на файла /etc/hostname.pppoe: inet 0.0.0.0 255.255.255.255 NONE \ pppoedev rl0 authproto pap \ authname '*****' authkey '*****' up dest 0.0.0.1 !/sbin/route add default -ifp pppoe 0.0.0.1
В /etc/ppp/ppp.linkup съм опитвал с различни команди в етикета по подразбиране MYADDR без успех (т.е. не се изпълнява нищо), както и с custom label, но отново без резултат. Имам чувството, че изобщо този файл не се чете. Това ми чувство се подсилва и от факта, че докато настройвах нета на Спектрум, исках да пусна debug на рррое, за да вида в логовете какво става, и трябваше да го направя във файла /etc/hostname.pppoe по този начин (2рия ред): inet 0.0.0.0 255.255.255.255 NONE \ pppoedev rl0 authproto pap debug\ authname '*****' authkey '*****' up dest 0.0.0.1 !/sbin/route add default -ifp pppoe 0.0.0.1
, защото задаването на debug във файла /etc/ppp/options нямаше ефект (т.е. и този файл не се чете според мен). Всякакви идеи и насоки са добре дошли. Поздрави!
|
|
|
12
|
Linux секция за начинаещи / Настройка на хардуер / Лазерно мултифункционално у-во под линукс
|
-: Sep 24, 2012, 19:48
|
Здравейте, Предстои ми покупката на монохромно лазерно мултифункционално устройство, което бих желал да работи (добре) и под линукс, т.е. да има прилични драйвери. Дефакто устройството ще се ползва в малък офис, като важни ще бъдат печатането и сканирането (копирните функции и евентуално факса няма да се ползват). Възможен е и вариант с отделни принтер и скенер (попаднах на теми във форума, където се предлагаха и такива варианти), но съм се насочил към мултифункционално у-во, най-вече заради възможността за автоматично подаване на листи (ADF), която бих желал да има. Както казах вече, разгледах няколко теми във форума, но повечето модели, които се препоръчват там вече не са актуални, а от разгледаното останах с впечатление, че най-добра е поддръжката на линукс при Canon и Samsung (бях останал с впечатлението, че у-вата на НР работят добре под линукс, но това май важи само за принтерите им), но съм отворен към предложения от всички марки на цена до около 500 лв. Поздрави! П.П. В момента имам 3 различни у-ва все на Xerox и съм меко казано разочарован, и съм скептичен към техните модели като цяло. П.П.2. Възможен е и вариант с 2ра ръка у-во, но трябва да е възможно да се намери и да си струва (каквото и да означава това )
|
|
|
14
|
Linux секция за начинаещи / Настройка на програми / Рутиране между две мрежи (РЕШЕНО)
|
-: Dec 19, 2011, 18:17
|
Здравейте,
Схемата е следната:
ISP-->Airrouter-->Routerstation-->WiFiStations '-->WiFiStations Airrouter е wireless от Ubiquiti и получава статичен реален ИП адрес от ISP. Мрежата зад него (вътрешната) е 10.10.10.0/28. Към него се закачат няколко клиента и един по-специален такъв, а именно Ubiquiti Routerstation, който получава винаги 10.10.10.14. Този Routerstation е с две wireless карти - съответно първата като клиент на мрежата на Airstation, а втората като АР в мрежа 10.10.10.16/28, където за него се закачат други WiFi Stations. За да имам връзка между двете мрежи съм направил следното на Airrouter-a: route add -net 10.10.10.16 netmask 255.255.255.240 gw 10.10.10.14 iptables -I FORWARD -i eth0 -s 10.10.10.16/28 -o eth0 -d 10.10.10.0/28 -j ACCEPT iptables -I FORWARD -i eth0 -s 10.10.10.0/28 -o eth0 -d 10.10.10.16/28 -j ACCEPT
И сега проблемът - по принцип работи добре, но се получава момент, в който станциите от мрежата на Airrouter не се виждат помежду си, докато Airrouter ги вижда всичките (Airrotuer е с AirOS v.5.3.3 и client Isolation е забранен). Ако от някоя хост от мрежата му пингна друг хост от същата мрежа отговор нямал Ако обаче пингна хост от мрежата зад Routerstation (10.10.10.16/28) без значение кой и дали изобщо е up, след малко пинга и връзката между хостовете в мрежата на Airrouter се оправят.
Набедил съм Airrouter, че се бъгва нещо, но все пак кажете си и вие мнението от какво може да е.
Поздрави!
|
|
|
15
|
Linux секция за начинаещи / Настройка на програми / Проблем с eglibc в Debian testing
|
-: Oct 11, 2011, 12:50
|
Здравейте, Първо искам да уточня, че не съм голям потребител на Debian и дериватите му, и оттам не се ориентирам на 100% в дистрибуцията, но както и да е. Вчера инсталирах един Debian wheezy вкъщи и му сложих Network manager с plugin за openvpn. Проблемът се появява, когато тръгна да настройвам VPN-a. При изборът на частен ключ програмата крашва (nm-connection-editor) и съобщението в лога е: segfault at 8 ip b706f666 sp bfe2db74 error 4 in libc-2.13.so[b6ff6000+153000]
Segfault-a се получава в библиотека, която е част от eglibc (покрай проблема разбрах защо дебиан преди време са мигрирали към eglibc от glibc - интересна личност е Ulrich Drepper:)). Направих същото нещо и през дебъгер (gdb) и там резултатът беше: Program received signal SIGSEGV, Segmentation fault. __strlen_sse2_bsf () at ../sysdeps/i386/i686/multiarch/strlen-sse2-bsf.S:52 52 ../sysdeps/i386/i686/multiarch/strlen-sse2-bsf.S: No such file or directory. in ../sysdeps/i386/i686/multiarch/strlen-sse2-bsf.S
Съответно, в резултат на известно гуглиране, попаднах на бъг, който е фикснат пред 2-3 год мисля (за съжаление в момента нямам линк към него, но мисля засега няма да е нужен) и реших, че не може да не е оправен и в дебиан. Забравих да спомена, че версията на eglibc е libc6-i686-2.13.21. Реших да разгледам сорса и евентуално да видя как седят нещата: apt-get source libc6-i686
В сорса обаче цялата папка /sysdeps/i386/i686/multiarch/ беше празна, което според мен е причината за краша (по спомен в бъга, който гледах имаше нужните файлове в тази директория). Компилирането на сорса и инсталирането не промени нищо също така. Какво мислите по въпроса - бъг в дебиан ли е, аз ли нещо не се ориентирам правилно или може би и нещо друго... Поздрави!
|
|
|
|