Как стать автором
Обновить
4
0

Администратор Linux

Отправить сообщение

Всё же вы не правы на счёт удара в спину. В 90-х, да и в 00-х, в куче статей говорилось что bash в линуксе используется по умолчанию, а в другой куче говорилось только о том что он в линуксе есть по умолчанию. Те статьи ведь писали обычные люди, которые установили себе какой-то конкретный дистрибутив и работали, в основном, только с ним.
Применение же bash в качестве sh как раз и породило массу проблем с башизмами: человек честно указывает в шебанге «/bin/sh», а на самом деле система использует bash. При этом он эти самые башизмы использует, просто об этом не подозревая — работает же. И, в результате, этот скрипт прекрасно работает на компе пользователя, но при запуске в каком-нибудь hp-ux валится. Почему? От чего? Мы же явно указали «/bin/sh»! А вот фигвам, вы указали, а у ОС своё прочтение.
Собственно, использование в качестве sh чего-то, реализующего только POSIX SHELL и есть стандарт.

Простая проверка.

В начале скрипта добавляем:

$ cat test_bash.sh
#!/bin/bash

[ -n "$BASH_VERSION" ] || { echo "please run this script with bash"; exit 1; }

echo "начинаем начинать"

И запускаем:

$ ./test_bash.sh
начинаем начинать
$ bash test_bash.sh
начинаем начинать
$ sh test_bash.sh
please run this script with bash

Dash для sh вместо bash в debian/ubuntu используется очень давно. Проверять это в скрипте достаточно просто: если в переменной BASH_VERSION что-то есть — скрипт выполняется башем.

Куда на самом деле указывают sh и bash:

$ readlink -f $(which sh)
/usr/bin/dash
$ readlink -f $(which bash)
/usr/bin/bash

В сеансе bash переменная есть:

$ echo $BASH_VERSION
5.1.16(1)-release

А в dash — нет:

$ sh -i
$ echo $BASH_VERSION
$ set | grep ^BASH
$ 
В декабре, в debian-security пролетало:
[https://lists.debian.org/debian-security/2016/12/msg00016.html](https://lists.debian.org/debian-security/2016/12/msg00016.html)
[https://lists.debian.org/debian-security/2016/12/msg00018.html](https://lists.debian.org/debian-security/2016/12/msg00018.html)

> > What with Let's Encrypt now active, there is no excuse to not move
> everything to HTTPS for updating.
 
1. Bandwidth. It's fairly easy to proxy/cache HTTP, but HTTPS prevents
   that (unless you break HTTPS). This not only affects the server
   side (I have no idea about the amount of "traffic saved" for Debian),
   but also sites running multiple machines with Debian installed.
   Setting up a mirror is more work than just running a squid.
2. That brings us to: Mirrors. There's quite a bunch of them, and
   I'm quite sure that some of them (even primary mirrors) are not
   "Debian Project hardware". That way it's not just "throw a switch
   and everything is SSL", and it even creates some interesting
   questions like third parties (those non-Debian mirror admins)
   having access to debian.org SSL keys.
 
First point is an inconvenience, second point requires a lot of work
to resolve.


И таких ситуаций, где не нужно сквозное шифрование, а достаточно проверки подписи — довольно много.

А не важно. Достаточно на компе в /etc/hosts указать найденные IP и проверить что получаем по урлам, по которым ходит ведроид. Если ответ визуально нормальный, то всё хорошо. Если похож на обрезок, как с embargo-серверов — значит нужно искать другие IP. можно вообще на всю пачку имён указать один IP и, по возникновению проблем, менять его на другой.

И мне ещё интересен один момент: почему выдача с разных зеркал не одинаковая?


$ for n in $(seq 1 10); do curl --silent http://xtrapath${n}.izatcloud.net/xtra3grc.bin | md5sum; done
c738d93e350ff4f7a804403c7f288832  -
861b106c1855ccabd3a985641213f657  -
1b39a9ebbd3ba421369d7fb781e4b7a2  -
95be23443be4830158da6150f8b4b6d1  -
95be23443be4830158da6150f8b4b6d1  -
95be23443be4830158da6150f8b4b6d1  -
7b21a9a730ebb292bece83c45292d971  -
7b21a9a730ebb292bece83c45292d971  -
7b21a9a730ebb292bece83c45292d971  -
31876193f2777ab495920d9e4c260bd2  -

Имена серверов, к которым ведроид обращается за альманахом можно найти прямо в нём самом. При этом сам конфиг /system/etc/gps.conf может отсутствовать, может указывать на файл в другом месте, в нём может не быть нужных строк, или они могут быть закоментированы. Ничего страшного. С давних времён известно содержимое этого gps.conf и нам нужно искать где определяются переменные «XTRA_SERVER_1», «XTRA_SERVER_2» и «XTRA_SERVER_3». Поехали.


$ adb shell
G8441:/ $ su
G8441:/ # busybox find /system/ -type f -exec grep -q XTRA_SERVER "{}" \; -print | while read f; do echo FILE: $f; strings $f | grep XTRA_SERVER; done
FILE: /system/app/Messages/oat/arm64/Messages.vdex
EXTRA_SERVER_MESSAGE
FILE: /system/app/app-scan3d-release/oat/arm64/app-scan3d-release.vdex
EXTRA_SERVER_KEY
FILE: /system/app/dlna-somc-xhdpi-release/oat/arm64/dlna-somc-xhdpi-release.vdex
DOWNLOAD_EXTRA_SERVER_NAME
FILE: /system/etc/customization/settings/defaults/gps.conf
#XTRA_SERVER_1=http://xtrapath1.izatcloud.net/xtra2.bin
#XTRA_SERVER_2=http://xtrapath2.izatcloud.net/xtra2.bin
#XTRA_SERVER_3=http://xtrapath3.izatcloud.net/xtra2.bin
FILE: /system/framework/framework-res.apk
99XTRA_SERVER_1=http://xtrapath1.izatcloud.net/xtra3grc.bin
99XTRA_SERVER_2=http://xtrapath2.izatcloud.net/xtra3grc.bin
99XTRA_SERVER_3=http://xtrapath3.izatcloud.net/xtra3grc.bin
FILE: /system/framework/oat/arm64/services.vdex
XTRA_SERVER_1
XTRA_SERVER_2
XTRA_SERVER_3
FILE: /system/priv-app/CarrierServices/CarrierServices.apk
EXTRA_SERVER_MESSAGE
FILE: /system/priv-app/CarrierServices/oat/arm64/CarrierServices.vdex
EXTRA_SERVER_MESSAGE
FILE: /system/priv-app/SEMCSetupWizard/oat/arm64/SEMCSetupWizard.vdex
XTRA_SERVER_1
XTRA_SERVER_2
XTRA_SERVER_3
FILE: /system/priv-app/com.qualcomm.location/oat/arm64/com.qualcomm.location.vdex
XTRA_SERVER_1
XTRA_SERVER_2
XTRA_SERVER_3

Ну вот мы и нашли то что нам нужно: в найденных gps.conf строки закоментированы, а в /system/framework/framework-res.apk есть значения по умолчанию.
Теперь проверим что нам отдаёт DNS по этим именам. Вообще, оказалось что на embargo подменяются имена с xtrapath1 по xtrapath6:


$ for n in $(seq 1 6); do h=xtrapath${n}.izatcloud.net; host $h; done
xtrapath1.izatcloud.net is an alias for xtrapath1_new.qcomgeo2.com.
xtrapath1_new.qcomgeo2.com is an alias for embargo.xboxprod.izatcloud.net.
embargo.xboxprod.izatcloud.net has address 34.215.213.136
embargo.xboxprod.izatcloud.net has address 54.70.147.98
embargo.xboxprod.izatcloud.net has address 54.70.12.181
xtrapath2.izatcloud.net is an alias for xtrapath2_new.qcomgeo2.com.
xtrapath2_new.qcomgeo2.com is an alias for embargo.xboxprod.izatcloud.net.
embargo.xboxprod.izatcloud.net has address 34.215.213.136
embargo.xboxprod.izatcloud.net has address 54.70.147.98
embargo.xboxprod.izatcloud.net has address 54.70.12.181
xtrapath3.izatcloud.net is an alias for xtrapath3_new.qcomgeo2.com.
xtrapath3_new.qcomgeo2.com is an alias for embargo.xboxprod.izatcloud.net.
embargo.xboxprod.izatcloud.net has address 34.215.213.136
embargo.xboxprod.izatcloud.net has address 54.70.147.98
embargo.xboxprod.izatcloud.net has address 54.70.12.181
xtrapath4.izatcloud.net is an alias for xtrapath4_new.qcomgeo2.com.
xtrapath4_new.qcomgeo2.com is an alias for embargo.xboxprod.izatcloud.net.
embargo.xboxprod.izatcloud.net has address 34.215.213.136
embargo.xboxprod.izatcloud.net has address 54.70.147.98
embargo.xboxprod.izatcloud.net has address 54.70.12.181
xtrapath5.izatcloud.net is an alias for xtrapath5_new.qcomgeo2.com.
xtrapath5_new.qcomgeo2.com is an alias for embargo.xboxprod.izatcloud.net.
embargo.xboxprod.izatcloud.net has address 34.215.213.136
embargo.xboxprod.izatcloud.net has address 54.70.147.98
embargo.xboxprod.izatcloud.net has address 54.70.12.181
xtrapath6.izatcloud.net is an alias for xtrapath6_new.qcomgeo2.com.
xtrapath6_new.qcomgeo2.com is an alias for embargo.xboxprod.izatcloud.net.
embargo.xboxprod.izatcloud.net has address 34.215.213.136
embargo.xboxprod.izatcloud.net has address 54.70.147.98
embargo.xboxprod.izatcloud.net has address 54.70.12.181

По большому счёту, можно в /system/etc/hosts прописать правильные IP-адреса и закрыть вопрос, их я посмотрел на европейской VPS и вписал всю кучу в /system/etc/hosts.


$ for n in $(seq 1 6); do h=xtrapath${n}.izatcloud.net; host $h | awk "/has address/{print \$4 \" $h\"}"; done
18.244.155.98 xtrapath1.izatcloud.net
18.244.155.116 xtrapath1.izatcloud.net
18.244.155.121 xtrapath1.izatcloud.net
18.244.155.26 xtrapath1.izatcloud.net
108.156.60.99 xtrapath2.izatcloud.net
108.156.60.64 xtrapath2.izatcloud.net
108.156.60.22 xtrapath2.izatcloud.net
108.156.60.125 xtrapath2.izatcloud.net
18.65.39.74 xtrapath3.izatcloud.net
18.65.39.43 xtrapath3.izatcloud.net
18.65.39.33 xtrapath3.izatcloud.net
18.65.39.118 xtrapath3.izatcloud.net
18.244.155.77 xtrapath4.izatcloud.net
18.244.155.63 xtrapath4.izatcloud.net
18.244.155.61 xtrapath4.izatcloud.net
18.244.155.93 xtrapath4.izatcloud.net
18.65.39.77 xtrapath5.izatcloud.net
18.65.39.7 xtrapath5.izatcloud.net
18.65.39.94 xtrapath5.izatcloud.net
18.65.39.51 xtrapath5.izatcloud.net
52.222.158.124 xtrapath6.izatcloud.net
52.222.158.123 xtrapath6.izatcloud.net
52.222.158.52 xtrapath6.izatcloud.net
52.222.158.60 xtrapath6.izatcloud.net

Огламуривать всё это было лень.


PS. У меня телефон — Sony XZ1 compact, на квалкоме.

Мда…
Клава — такая же как и у моего GPD Pocket, но вот экран — издевательство.
Единственное, чем эта штука лучше — наличием M.2. Но экран это преимущество нивелирует.

Статья напоминает школьный реферат.


В бубунте с чёрте каких времён создаваемый при установке пользователь входит в группу «sudo», а не «wheel» и про использование «NOPASSWD» уже написали. Шрифты как раз настраиваются в графическом настройщике и оно таки да, вносит изменения именно в «~/.fonts.conf», а пользовательские шрифты устанавливает в «~/.fonts/». И нет необходимости править ~/.fonts.conf в консоли — kwrite никто не отменял.
Хитромудрые VPN и сетевые извращения делать в GUI нужно слишком малому количеству пользователей чтобы делать поддержку всех возможных вариантов в Network Manager с пылу, с жару. Тем более в офисе, где всё делается централизованно.


Для чего статья писана — непонятно…

Вариантов с AMD нет. Нормальной клавы, как у старых ThinkPad — нет. По большому счёту, ничего нового не предложили, просто пытаются оседлать тему «ремонтопригодности».

В статье:


JA: Are there any specific parts of the kernel that you are personally most proud of?
LT: The stand-out parts I tend to point to are the VFS ("virtual filesystem") layer (and the pathname lookup in particular) and our VM code. The former because Linux just does some of those fundamental things (looking up a filename really is such a core operation in an operating system) so much better than anything else out there. And the latter mainly because we support 20+ architectures, and we still do it with a largely unified VM layer, which I think is pretty impressive.
But at the same time, this is very much a function of "what part of the kernel do you care about". The kernel is big enough that different developers (and different users) will simply have different opinions of what matters most. Some people think scheduling is the most exciting part of the kernel. Others like the nitty-gritty of device drivers (and we have a lot of those). I personally tend to be more involved in the VM and VFS areas, so I then naturally point to those.

Вот и понимай как хочешь. Но подсистема виртуальной памяти, которая очень плотно переплетена с подсистемой VFS, в ядре с незапамятных времён, а виртуалки — сравнительно, новодел. И тут он как раз про VFS говорит, что и наводит меня на мысль что VM — всё же virtual memory. Да и виртуальных машин в ядре несколько и тогда непонятно о какой конкретно речь.

Подозреваю что в ответе на вопрос о гордости Линус говорит не о «виртуальной машине», а о «виртуальной памяти». Аббревиатура «VM» в документации ядра как правило подразумевает «virtual memory». В оригинальной же статье эта аббревиатура не раскрывается и, скорее всего, речь идёт именно о памяти, тем более что как раз подсистемы файлового кеша и виртуальной памяти в ядре довольно тесно связаны.

Можно использовать IPsec в туннельном режиме и поверх него уже GRE, IPIP, XXoIP и вообще что угодно. То есть, L2TP из связки можно исключить.

А где, собственно, исследование???

Кстати, в статье от 2012 года автор как раз в WAGO 222 вставляет алюминиевый провод: «Для особо сложных случаев, когда есть несколько типов проводов, разной толщины, алюминиевые, медные и тд.». Возможно, это и дало уверенность автору нынешней статьи что всё будет нормально. Про пасту там тоже сказано, но в контексте предыдущего зажима.

Ну, я его уже и использую, чё ему в столе лежать-то. :-)
В Z1c памяти 2 гига и пока что хватает. Я наткнулся на что уже есть приложения, не поддерживающие 5-й ведроид, но с памятью пока что проблем не было. Собственно, потому и купил XZ1c — там можно обновить до 9-го, хоть мне это сейчас и не надо. Но на 5 лет, а может и дольше, мне хватит. А там, очень возможно, вернусь к связке кнопочник+планшет. Всё же использовать недопланшет в качестве телефона мне не удобно.

Это говорит лишь о том что современная экономическая модель себя изжила и требует замены. Как это и происходило с предыдущими моделями.

Я в прошлом месяце сменил свой Sony Z1 compact на Sony XZ1 compact. Причём Z1c я покупал новым году в 2015-м (может и в 2014-м, уже не помню), а XZ1c взял бэушным. Так вот брал я этот XZ1c не потому что старый Z1c меня перестал устраивать, или стал плохо работать, а про запас, чтобы ещё через пару лет не искать его «днём с огнём». Ведь нынче уже не делают нормальных аппаратов размерами не с лопату.
Так вот, к чему это всё. Что старый Z1c, что более новый XZ1c — один фиг. Да, я в курсе что и проц 64 битный, и шустрее по попугаям, и флешка у него в разы быстрее (замерял), и он новее. Но в обычном использовании — разница ближе к статпогрешности, чем «вау, как всё летает!». Причём, по удобству старый аппарат был лучше. У него и кнопка включения удобнее, и корпус менее скользкий, и заряжать его можно в кроватке не раздалбывая USB-разъём. Вот такой вот прогресс…

Есть ещё «XServer XSDL». Я его использую вместо VNC и так получается заметно шустрее.

У моторолы когда-то было то же самое, называлось Webtop. Я когда-то только ради этого вебтопа и купил Atrix2, рассчитывая в будущем докупить док в виде ноутбука, но десткопный режим оказался слишком медленным для комфортной работы.
Asus Transformer в этом плане был самым удобным. Связка из XServer XSDL и Linux Deploy давала самый обыкновенный линуксовый десктоп.

Информация

В рейтинге
Не участвует
Откуда
Минск, Минская обл., Беларусь
Дата рождения
Зарегистрирован
Активность

Специализация

System Administration, Network Engineer
Lead
Linux
Bash
Unix