LINUX.ORG.RU

Сообщения v4567

 

загрузить графические программы в оперативную память на этапе загрузки linux

Если оперативной памяти много - 32 Гига или 64, то при слабом использовании компьютера - сёрфинг в интернете, доковские документы, какие-то небольшие задачи в фотошопе... Оперативная память полностью не будет использоваться. Для ускорения работы можно в память, на этапе загрузки линукс, загрузить все используемые графические программы. Как это делалось в PuppyLinux, во всяком случае раньше, сейчас не знаю.
Подскажите как это сделать? Просто в скрипте, стартонуть все эти программы в фоне? А как тогда сделать что бы при закрытии программы, например libreoffice она закрывала файлы, а сама переходила в фон?
Детали как это сделано в PuppyLinux я не знаю, может там как то по другому всё реализовано. Один раз его устанавливал, libreoffice открывался мгновенно.
Может есть ещё какие нибудь варианты увеличения скорости работы линукс, про аппаратную часть я знаю - ssd, нулевой рейд и т.д. имеется ввиду программные манипуляции.

 

v4567
()

Шифрованный диск luks

Тема поднятая мной ушла далеко в прошлое, её уже и не найти, а проблему решить так и не смог. Поэтому возобновлю этот вопрос опять.
Вот описание проблемы: https://www.linux.org.ru/forum/admin/15269485?cid=15300660 (комментарий) Помогите кто может, очень надо!

 ,

v4567
()

использование linux на LUKS

Здравствуйте, форумчане.
Прошу помочь в следующем вопросе.
На флешке с не зашифрованным разделом расположен boot с ядром, initrd и ключом или паролем к шифрованному разделу, на диске в компьютере или ноутбуке корень файловой системы, но он зашифрован - LUKS. Грузим ядро с флешки, а оно уже монтирует корень, после загрузки флешку вынимаем.
Как создать зашифрованный раздел LUKS, его отформатировать, примонтировать, распаковать туда систему, я знаю. Вопрос вот в чём.
Как создать initrd, что бы он понимал LUKS? Chroot-нуться в корень и в корне командой mkinitramfs создать initrd?
Как заставить ядро понимать LUKS? Где должен находиться /etc/fstab на зашифрованном разделе или на не шифрованной флешке?
Как проинсталировать grub2 и создать для него конфиг? Просто chroot-нуться в примонтированный зашифрованный раздел и выполнить команды: grub-install с указанием диска и grub-mkconfig с указанием файла?
Хотелось бы сделать так, что бы пароль или ключ во время загрузки подкидывались автоматом, что бы не приходилось их вводить вручную.
LUKS подходит для работы, или только для хранения данных, а для работы нужно что нибудь более быстрое?
Детально как сделать то что мне нужно не нашёл, может кто подскажет где почитать. Или может кто уже делал такое, тогда пожалуйста поделитесь информацией.

 , ,

v4567
()

записать данные из субшелла в переменную

Что то всё таки не получается у меня поработать с файлами в скрипте.

Есть код:


i=0

find "/dir" -type f -print0 | while read -r -d '' per1
do
   per2="${per1##*/}"
   (( i++ ))
   dir[$i]="$per2"
done

printf "%s\n" "${dir[@]}"

printf не выведет ничего, так как read запускает свой субшелл и все данные останутся там, пробовал всякие перенаправления ничего не получается. Записывать в файл на диск нельзя. export не поможет так как он экспортирует для потомков, а не для родителей. Можно как то передать данные в переменную-массив в самом скрипте не прибегая к записи в файл на дик?

Если заменить на:


i=0

for per1 in $(find "/dir" -type f)
do
   per2="${per1##*/}"
   (( i++ ))
   dir[$i]="$per2"
done

printf "%s\n" "${dir[@]}"

То тогда если будут файлы с названиями «*, ? » и т.д. то почему то find заносит в переменную один и тот же файл несколько раз, просто команда find отрабатывает нормально, с for-ом получается какая то чепуха.

Вот такая конструкция:


i=0

for per1 in "/dir/*" "/dir/.*" -type f
do
   per2="${per1##*/}"
   (( i++ ))
   dir[$i]="$per2"
done

printf "%s\n" "${dir[@]}"

Работает просто превосходно, но совсем не просто сделать рекурсию по вложенным папкам.

 ,

v4567
()

вопрос по переменным в скрипте bash

Как быть если в процессе выполнения скрипта необходимо менять название переменной. Например переменная состоит из двух частей, одна часть название - слово, а вторая - коэффициент который должен меняться в процессе выполнения скрипта:

kof=1
per_$kof

Как такой переменной присвоить значение, на такое присвоение выдаёт ошибку:

per_$kof=22

 

v4567
()

вопрос по Globbing

Перехожу в папку с файлами и в командной строке выполняю:

for per in * ; do echo "$per" ; done
и не вижу скрытых файлов, а вот так:
for per in .* ; do echo "$per" ; done
вижу только скрытые файлы.

Скорее всего я ошибаюсь, но на сколько я знаю:

for per in * ; do echo "$per" ; done
должно показать все файлы и скрытые в том числе.

 ,

v4567
()

вопрос по горячим клавишам и кирилице

Когда в mcedit переключаю на русский язык то перестают реагировать alt+«клавиша с буквой», а ctrl+«клавиша с буквой» работает как и ранее. Ctrl то же ведь не должна работать при переключении на русский, или я ошибаюсь?

 

v4567
()

mcedit проверка орфографии

В версии 4.8.21 по умолчанию проверка орфографии работает, а в версии 4.8.18 нет. Настройки идентичны, aspell, aspell-ru установлены, зависимые библиотеки идентичны. В версии 4.8.18 даже есть две которых нет в версии 4.8.21 - libext2fs.so.2 и libcom_err.so.2. Как проверить собран mc с поддержкой aspell или нет?
Вроде как раньше в mcedit сделали проверку орфографии налету, или я ошибаюсь?
Подкинул hotlist от старой версии (не помню уже от какой) в папку ~/.config/mc и в версии 4.8.18 и в 4.8.21 он не работает В новых версия у него уже другой формат?
В новых версиях ещё не работает история хождения по папкам.

 ,

v4567
()

восстановление данных

В разделе файловая система ext4. Пытался восстановить данные testdisk-ком, но после записи резервной таблицы разделов и монтировании этого раздела, он как был пустой так и пустым остался, ни папок ни файлов, вообще ничего нет. Данные в большинстве своём были в резервных копиях, но некоторых в резерве не было, это некоторые фото - jpg, несколько doc файлов и немного текстовых файлов в кодировке utf8. Если в testdisk-е посмотреть список файлов, то он покажет все папки которые были в корне, при входе в папку, пишет вот что:
No file found, filesystem may be damaged.
Я так понимаю информации в таблице раздела о файлах нет? Использование программы autopsy дало тот же результат, папки в корне она видит, всё что дальше нет.
Потом открыл диск в hexedit и в поиске ancii кодировкой набрал номер телефона (он был в одном текстовом файле) и он нашёлся, мало того рядом был написан и второй номер телефона из этого файла.
В связи с этим у форумчан, хотел уяснить некоторые вопросы.
Если в таблице раздела и в резервных таблицах этого раздела удалить информацию о файлах, то testdisk их уже не увидит?
Можно такие файлы собрать из инодов разбросанных по диску? Есть ли информация в заголовках этих инодов о том какие принадлежат каким файлам в каком порядке они расположенных в файле и их количество?
Для текстовых файлов я так понимаю никакой информации в инодах не будет и получается их не собрать?
Есть ли такие программы в которых можно открыть диск и которые бы показали всю информацию в кодировке utf8, типа как hexedit, только не в 16-ричном выводе, а в текстовм - utf8, я бы тогда просто выбрал текстовую информацию которая нужна и пересохранил в другом файле, если есть такие, то как они называются?
За помощь заранее благодарен!

 

v4567
()

восстановить раздел при помощи testdisk

Пытаюсь при помощи testdisk восстановить раздел. testdisk находит резервныую таблицу разела, в меню выбираю записать, он вроде как переписывает таблицу, выхожу, монтирую - пустая папка. Хотя в командной строке testdisk-а выбирая просмотр все папки в восстанавливаемом разделе вижу, только в папки войтине могу. Файловая система в разделе который пытаюсь восстановить - ext4. Может есть другие средства восстановления или, я что то в testdisk-е делаю не так?

 

v4567
()

использовате hdmi на вход

Можно ли на ноутбуке использовать hdmi на вход, а не на выход? Подключить смартфон с андроидом через переходник микро usb -> hdmi к ноутбуку с linux и на ноутбуке увидеть изображение экрана смартфона. Если так можно сделать, то пожалуйста подскажите как это сделать, или хотя бы приблизительно где про это почитать?

 

v4567
()

пробросить порт

Есть шлюз с внешним интерфейсом например eth0 5.5.5.5 и внутренним интерфейсом eth1 10.10.10.254

На внешнем интерфейсе работает openvpn на порту 5555.

Есть ноутбук на котором настроен openvpn клиент с подключением к внешнему интерфейсу. Этот ноутбук сейчас подключён во внутренней сети с ip 10.10.10.10. Он будет выноситься и у него будет внешний ip.

Хочу сейчас проверить работу openvpn, собственно конект к openvpn серверу.

На сетевом фильтре шлюза настроил проброс.

-A FORWARD -i eth1 -o eth0 -p udp -s 10.10.10.10 -m state --state NEW,ESTABLISHED -j ACCEPT
-A FORWARD -i eth1 -o eth0 -p tcp -s 10.10.10.10 -m state --state NEW,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o eth1 -p udp -d 10.01.10.10 -m state --state NEW,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o eth1 -p tcp -d 10.10.10.10 -m state --state NEW,ESTABLISHED -j ACCEPT

Проверяю приходят ли пакеты на внутренний интерфейс:

tcpdump -i eth1 -n -nn host 10.10.10.10

Да пакеты приходят.

Проверяю на внешний:

tcpdump -i eth0 -n -nn host 10.10.10.10

Не приходят.

Проверяю проходят ли они цепочку форвад на сетевом фильтре:

watch "iptables -nvL | grep -w 10.10.10.10

Пакетов в форварде нет.

По логике вещей они должны попадать в форвапрд и доходить до внешнего интерфейса, но получается что это не правильно.

Не пойму почему?

 

v4567
()

клиентские ключи ssl для сервера jabberd2

Запутался совсем с созданием клиентских ключей для сервера jabberd2

В документации рассказано как создавать серверные ключи для работы модулей jabberd2 между собой и для работы серверов между собой. Для работы клиента и сервера как создать ключи не сказано.

В конфиге для этого есть закоментированный блок, но необходимо создать файл с ключами и сертификатом.

Я так понимаю что в jabberd с этими клиентскими ключами и сертификатами должно быть всё аналогично как в почтовом сервере.

Правильно ли я понял, что в файле pem должен быть закрытый ключ сервера, открытый ключ для клиента и самоподписной сертификат.

Работа осуществляется следующим образом, клиент принимает самоподписной сертификат сервера, после этого сервер передаёт клиенту открытый ключ? Если это так то как тогда создать эти ключи и сертификаты? Если кто сталкивался с этим или создавал подобные ключи и сертификаты для почтового сервера, помогите пожалуйста.

 ,

v4567
()

проброс broadcast через шлюз

Есть устройство преобразующее com порт в ethernet и обратно, а так же программка под виндовс для создания вирутального com порта. Она посылает broadcast 255.255.255.255 в сеть, устройство ей отвечает. Во внутренней сети всё работает хорошо.

Для работы этой программы извне настроил openvpn, вижу внутреннюю сеть, работает rdp, а вот broadcast на openvpn-новском интерфейс приходит, а на внутреннем его нет. Маршрут настроил:

255.255.255.255 0.0.0.0         255.255.255.255 UH    0      0        0 eth1

Правила на сетевом фильтре открыл. Может надо в ядре специально для broadcast разрешить, типа как для форвардинга:

net.ipv4.ip_forward=1

 

v4567
()

не работает репозиторий ubuntu

Есть сервер:

uname -a
Linux ukemp.ukrkran.local 4.4.0-97-generic #120-Ubuntu SMP Tue Sep 19 17:27:07 UTC 2017 i686 i686 i686 GNU/Linux

apt-get, apt, aptitude прекрасно работали.

Был установлен bind который отвечает за локальную зону и в котором прописаны фарвардом днс провайдера. Он слушает udp 127.0.0.1:53 и свой ip 192.168.5.254 из внутренней сети.

Вот /etc/resolv.conf

cat /etc/resolv.conf
domain xxxx.xxx
search xxxx.xxx yyyyy.yyy
nameserver 127.0.0.1

Убунтовские репозитории прекрасно резолвятся:

nslookup
> server 127.0.0.1
Default server: 127.0.0.1
Address: 127.0.0.1#53
> ru.archive.ubuntu.com
Server:         127.0.0.1
Address:        127.0.0.1#53

Non-authoritative answer:
ru.archive.ubuntu.com   canonical name = mirror.yandex.ru.
Name:   mirror.yandex.ru
Address: 213.180.204.183
> security.ubuntu.com
Server:         127.0.0.1
Address:        127.0.0.1#53

Non-authoritative answer:
Name:   security.ubuntu.com
Address: 91.189.91.23
Name:   security.ubuntu.com
Address: 91.189.88.152
Name:   security.ubuntu.com
Address: 91.189.88.149
Name:   security.ubuntu.com
Address: 91.189.88.161
Name:   security.ubuntu.com
Address: 91.189.91.26
Name:   security.ubuntu.com
Address: 91.189.88.162
> old-releases.ubuntu.com
Server:         127.0.0.1
Address:        127.0.0.1#53

Non-authoritative answer:
Name:   old-releases.ubuntu.com
Address: 91.189.88.17

Причём по 213.180.204.183 открывается (не знаю чей) репозиторий в котором есть папка ubuntu.

Запускаю apt-get update и вот что получаю:

apt-get update
Ошк:1 http://old-releases.ubuntu.com/ubuntu oneiric InRelease
  Не удалось найти IP-адрес для «old-releases.ubuntu.com»
Ошк:2 http://old-releases.ubuntu.com/ubuntu oneiric-updates InRelease
  Не удалось найти IP-адрес для «old-releases.ubuntu.com»
Ошк:3 http://old-releases.ubuntu.com/ubuntu oneiric-backports InRelease
  Не удалось найти IP-адрес для «old-releases.ubuntu.com»
Ошк:4 http://ru.archive.ubuntu.com/ubuntu xenial InRelease
  Не удалось найти IP-адрес для «ru.archive.ubuntu.com»
Ошк:5 http://ru.archive.ubuntu.com/ubuntu xenial-updates InRelease
  Не удалось найти IP-адрес для «ru.archive.ubuntu.com»
Ошк:6 http://ru.archive.ubuntu.com/ubuntu xenial-backports InRelease
  Не удалось найти IP-адрес для «ru.archive.ubuntu.com»
Ошк:7 http://security.ubuntu.com/ubuntu xenial-security InRelease
  Не удалось найти IP-адрес для «security.ubuntu.com»
Чтение списков пакетов… Готово
W: Не удалось получить http://ru.archive.ubuntu.com/ubuntu/dists/xenial/InRelease  Не удалось найти IP-адрес для «ru.archive.ubuntu.com»
W: Не удалось получить http://ru.archive.ubuntu.com/ubuntu/dists/xenial-updates/InRelease  Не удалось найти IP-адрес для «ru.archive.ubuntu.com»
W: Не удалось получить http://ru.archive.ubuntu.com/ubuntu/dists/xenial-backports/InRelease  Не удалось найти IP-адрес для «ru.archive.ubuntu.com»
W: Не удалось получить http://security.ubuntu.com/ubuntu/dists/xenial-security/InRelease  Не удалось найти IP-адрес для «security.ubuntu.com»
W: Не удалось получить http://old-releases.ubuntu.com/ubuntu/dists/oneiric/InRelease  Не удалось найти IP-адрес для «old-releases.ubuntu.com»
W: Не удалось получить http://old-releases.ubuntu.com/ubuntu/dists/oneiric-updates/InRelease  Не удалось найти IP-адрес для «old-releases.ubuntu.com»
W: Не удалось получить http://old-releases.ubuntu.com/ubuntu/dists/oneiric-backports/InRelease  Не удалось найти IP-адрес для «old-releases.ubuntu.com»
W: Некоторые индексные файлы не скачались. Они были проигнорированы или вместо них были использованы старые версии.

Смотрю в логи бинда:

13-Oct-2017 12:30:49.364 queries: client 127.0.0.1#43781 (_http._tcp.security.ubuntu.com): query: _http._tcp.security.ubuntu.com IN SRV + (127.0.0.1)
13-Oct-2017 12:30:49.365 queries: client 127.0.0.1#48775 (_http._tcp.old-releases.ubuntu.com): query: _http._tcp.old-releases.ubuntu.com IN SRV + (127.0.0.1)
13-Oct-2017 12:30:49.367 queries: client 127.0.0.1#45577 (_http._tcp.old-releases.ubuntu.com): query: _http._tcp.old-releases.ubuntu.com IN SRV + (127.0.0.1)
13-Oct-2017 12:30:49.367 queries: client 127.0.0.1#40874 (_http._tcp.ru.archive.ubuntu.com): query: _http._tcp.ru.archive.ubuntu.com IN SRV + (127.0.0.1)
13-Oct-2017 12:30:49.367 queries: client 127.0.0.1#34851 (_http._tcp.old-releases.ubuntu.com): query: _http._tcp.old-releases.ubuntu.com IN SRV + (127.0.0.1)
13-Oct-2017 12:30:49.370 queries: client 127.0.0.1#53811 (_http._tcp.ru.archive.ubuntu.com): query: _http._tcp.ru.archive.ubuntu.com IN SRV + (127.0.0.1)
13-Oct-2017 12:30:49.371 queries: client 127.0.0.1#43290 (_http._tcp.ru.archive.ubuntu.com): query: _http._tcp.ru.archive.ubuntu.com IN SRV + (127.0.0.1)

Откуда взялось _http._tcp ?

aptitude то же самое.

запускаю apt-get update на другом сервере, предварительно в resolv.conf прописав днс первого сервера.

uname -a
Linux xxxx.xxx 3.0.0-14-generic #23-Ubuntu SMP Mon Nov 21 20:34:47 UTC 2011 i686 i686 i386 GNU/Linux

на нём всё работает кроме security.ubuntu.com

вот куски его вывода

Получено:37 http://ru.archive.ubuntu.com xenial-backports/universe i386 Packages [5 896 B]                                                                    
Получено:38 http://ru.archive.ubuntu.com xenial-backports/multiverse i386 Packages [64 B]                                                                     
Получено:39 http://ru.archive.ubuntu.com xenial-backports/main TranslationIndex [201 B]                                                                       
Получено:40 http://ru.archive.ubuntu.com xenial-backports/multiverse TranslationIndex [192 B]                                                                 
Получено:41 http://ru.archive.ubuntu.com xenial-backports/restricted TranslationIndex [192 B]                                                                 
Получено:42 http://ru.archive.ubuntu.com xenial-backports/universe TranslationIndex [198 B]                                                                   
Получено:43 http://ru.archive.ubuntu.com xenial/main Translation-ru [411 kB]
Получено:66 http://old-releases.ubuntu.com oneiric/restricted TranslationIndex [2 263 B]                                                                      
Получено:67 http://old-releases.ubuntu.com oneiric/universe TranslationIndex [2 640 B]                                                                        
Получено:68 http://old-releases.ubuntu.com oneiric-updates/main Sources [180 kB]                                                                              
Получено:69 http://old-releases.ubuntu.com oneiric-updates/restricted Sources [3 349 B]                                                                       
Получено:70 http://old-releases.ubuntu.com oneiric-updates/universe Sources [72,0 kB]

W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/oneiric-security/main/source/Sources  404  Not Found [IP: 91.189.88.152 80]

W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/oneiric-security/restricted/source/Sources  404  Not Found [IP: 91.189.88.152 80]

W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/oneiric-security/universe/source/Sources  404  Not Found [IP: 91.189.88.152 80]

W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/oneiric-security/multiverse/source/Sources  404  Not Found [IP: 91.189.88.152 80]

W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/oneiric-security/main/binary-i386/Packages  404  Not Found [IP: 91.189.88.152 80]

W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/oneiric-security/restricted/binary-i386/Packages  404  Not Found [IP: 91.189.88.152 80]

W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/oneiric-security/universe/binary-i386/Packages  404  Not Found [IP: 91.189.88.152 80]

W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/oneiric-security/multiverse/binary-i386/Packages  404  Not Found [IP: 91.189.88.152 80]

W: Failed to fetch http://extras.ubuntu.com/ubuntu/dists/oneiric/main/source/Sources  404  Not Found

W: Failed to fetch http://extras.ubuntu.com/ubuntu/dists/oneiric/main/binary-i386/Packages  404  Not Found

E: Some index files failed to download. They have been ignored, or old ones used instead.

Смотрю в логи днс первого сервера:

13-Oct-2017 12:36:08.964 queries: client 192.168.5.100#45878 (security.ubuntu.com): query: security.ubuntu.com IN A + (192.168.5.254)
13-Oct-2017 12:36:08.964 queries: client 192.168.5.100#44244 (old-releases.ubuntu.com): query: old-releases.ubuntu.com IN A + (192.168.5.254)
13-Oct-2017 12:36:08.964 queries: client 192.168.5.100#44942 (ru.archive.ubuntu.com): query: ru.archive.ubuntu.com IN A + (192.168.5.254)
13-Oct-2017 12:36:08.965 queries: client 192.168.5.100#34880 (extras.ubuntu.com): query: extras.ubuntu.com IN A + (192.168.5.254)

Как видно old-releases.ubuntu.com ru.archive.ubuntu.com extras.ubuntu.com как видно нормальные записи, никаких _http._tcp нету, откуда они берутся в apt-get первого сервера. Я обыскал весь сервер на предмет записи *tcp.ru.archive.ubuntu.com её нет ни в каких файлах.

В resolv.conf прописываю днс 8.8.8.8 ничего не изменилось. 8.8.8.8 то же не может разрезолвить такие имена _http._tcp.ru.archive.ubuntu.com _http._tcp.old-releases.ubuntu.com Не понятно откуда на первом сервере apt-get подставляет этот _http._tcp

Вот файл /etc/apt/sources.list первого сервера:

deb http://ru.archive.ubuntu.com/ubuntu/ xenial main restricted
deb http://ru.archive.ubuntu.com/ubuntu/ xenial-updates main restricted
deb http://ru.archive.ubuntu.com/ubuntu/ xenial universe
deb http://ru.archive.ubuntu.com/ubuntu/ xenial-updates universe
deb http://ru.archive.ubuntu.com/ubuntu/ xenial multiverse
deb http://ru.archive.ubuntu.com/ubuntu/ xenial-updates multiverse
deb http://ru.archive.ubuntu.com/ubuntu/ xenial-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu xenial-security main restricted
deb http://security.ubuntu.com/ubuntu xenial-security universe
deb http://security.ubuntu.com/ubuntu xenial-security multiverse
deb http://old-releases.ubuntu.com/ubuntu/ oneiric main restricted
deb http://old-releases.ubuntu.com/ubuntu/ oneiric-updates main restricted
deb http://old-releases.ubuntu.com/ubuntu/ oneiric universe
deb http://old-releases.ubuntu.com/ubuntu/ oneiric-updates universe
deb http://old-releases.ubuntu.com/ubuntu/ oneiric multiverse
deb http://old-releases.ubuntu.com/ubuntu/ oneiric-updates multiverse
deb http://old-releases.ubuntu.com/ubuntu/ oneiric-backports main restricted universe multiverse

Если кто сталкивался с подобной проблемой помогите пожалуйста. В интернете не нашёл ответа.

Что интересно раньше apt-get прекрасно работал, я не уловил после каких манипуляций он перестал работать. Были поставлены ntp, bind9,mysql,php,apache, всё он прекрасно поставил, а сегодня вот такой казус.

 , ,

v4567
()

с сайта не могу отправить письмо mail - php

Есть тестовая страничка:

<?php
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 'On');
ini_set('display_startup_errors', 'On');
if (mail("user@ukr.net", "1234test1234", "12qwerty34"))
{
 echo "Почта работает.";
}
else
{
 echo "Почта не работает.";
}
echo phpinfo();
?>

Открываю её и письмо не отправляется.

Установлен apache2 и к немо следующие пакеты php:

apt-get -y install php7.0
apt-get -y install php7.0-common
apt-get -y install php7.0-curl
apt-get -y install php7.0-mysql
apt-get -y install php7.0-cli
apt-get -y install libapache2-mod-php7.0
apt-get -y install php7.0-gd

После установки этих пакетов была выполнена команда a2enmod php7 и потом запущен апач.

uname -a
Linux ukemp.ukrkran.local 4.4.0-96-generic #119-Ubuntu SMP Tue Sep 12 14:58:51 UTC 2017 i686 i686 i686 GNU/Linux

apache2 -version
Server version: Apache/2.4.18 (Ubuntu)
Server built:   2017-09-18T15:09:02

php --version
PHP 7.0.22-0ubuntu0.16.04.1 (cli) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.0.22-0ubuntu0.16.04.1, Copyright (c) 1999-2017, by Zend Technologies

ldd /usr/lib/apache2/modules/libphp7.0.so
       linux-gate.so.1 =>  (0xb7745000)
        libresolv.so.2 => /lib/i386-linux-gnu/libresolv.so.2 (0xb733d000)
        libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xb7322000)
        libpcre.so.3 => /lib/i386-linux-gnu/libpcre.so.3 (0xb72ad000)
        libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb7258000)
        libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb7253000)
        libxml2.so.2 => /usr/lib/i386-linux-gnu/libxml2.so.2 (0xb7072000)
        libssl.so.1.0.0 => /lib/i386-linux-gnu/libssl.so.1.0.0 (0xb7008000)
        libcrypto.so.1.0.0 => /lib/i386-linux-gnu/libcrypto.so.1.0.0 (0xb6e1b000)
        libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb6c65000)
        libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb6c48000)
        /lib/ld-linux.so.2 (0xb7746000)
        libicuuc.so.55 => /usr/lib/i386-linux-gnu/libicuuc.so.55 (0xb6ab2000)
        liblzma.so.5 => /lib/i386-linux-gnu/liblzma.so.5 (0xb6a8c000)
        libicudata.so.55 => /usr/lib/i386-linux-gnu/libicudata.so.55 (0xb51d3000)
        libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb505c000)
        libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb503f000)

В качестве мта использую ssmtp

Вот часть конфига apache1.conf относящегося к открываемому сайту с которого должно отправляться письмо:

<VirtualHost 192.168.5.254:80>
 DocumentRoot /data/web/apache/www/sait2.ru
 ServerName sait2.ru
 ServerAlias www.sait2.ru
 <Directory /data/web/apache/www/sait2.ru>
  Options Includes
  AllowOverride all
 </Directory>
 ErrorLog /var/log/apache2/sait2.ru/error.log
 CustomLog /var/log/apache2/sait2.ru/access.log combined
</VirtualHost>

Вот содержимое файлов

/etc/apache2/mods-available/php7.0.conf

<FilesMatch ".+\.ph(p[3457]?|t|tml)$">
    SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch ".+\.phps$">
    SetHandler application/x-httpd-php-source
    # Deny access to raw php sources by default
    # To re-enable it's recommended to enable access to the files
    # only in specific virtual host or directory
    Require all denied
</FilesMatch>
# Deny access to files without filename (e.g. '.php')
<FilesMatch "^\.ph(p[3457]?|t|tml|ps)$">
    Require all denied
</FilesMatch>

# Running PHP scripts in user directories is disabled by default
#.
# To re-enable PHP in user directories comment the following lines
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.
<IfModule mod_userdir.c>
    <Directory /home/*/public_html>
        php_admin_flag engine Off
    </Directory>
</IfModule>

/etc/apache2/mods-available/php7.0.load

# Conflicts: php5
LoadModule php7_module /usr/lib/apache2/modules/libphp7.0.so

Они стандартные.

Вот некоторое содержимое файлов:

/etc/php/7.0/apache2/php.ini /etc/php/7.0/cgi/php.ini /etc/php/7.0/cli/php.ini /etc/php/7.0/fpm/php.ini

display_errors = On
display_startup_errors = On
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
SMTP = localhost
smtp_port = 465
sendmail_path = /usr/sbin/ssmtp -t
mail.add_x_header = On
mail.log = /var/log/php/php_mail.log
date.timezone = Europe/Kiev

ssmtp настроен правильно и из командной строки письмо прекрасно отправляется, мало того если в консоли выполнить команду:

php /data/web/apache/www/sait2.ru/index.php

то письмо то же прекрасно отправляется!

В этот файл я в последствии включил phpinfo()

и сравнил вывод информации в браузере и в консоли, они отличались только тем, что когда страницу открываю в браузере используется конфиг /etc/php/7.0/apache2/php.ini, а когда использую выше приведённую команду, то конфиг /etc/php/7.0/cli/php.ini

Я сравнил эти файлы и они оказали различны, вот различия:

diff /root/php/php.ini /etc/php/7.0/cli/php.ini
299c299
< disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
---
> disable_functions =
359c359
< expose_php = Off
---
> expose_php = On
389c389
< memory_limit = 128M
---
> memory_limit = -1
462c462
< display_errors = Off
---
> display_errors = On
473c473
< display_startup_errors = Off
---
> display_startup_errors = On
484d483
<

Я взял и скопировал файл /etc/php/7.0/cli/php.ini в папки /etc/php/7.0/apache2/ /etc/php/7.0/cgi/ /etc/php/7.0/fpm/ Поэтому в этих папках фалы php.ini стали одинаковы, перезапустил апач, открыл страницу но письмо не отправилось, причём при удачной отправке письма по команде php /data/web/apache/www/sait2.ru/index.php и при открытии страницы в логах /var/log/php/php_mail.log одна и та же запись:

[11-Oct-2017 12:05:07 Europe/Kiev] mail() on [/data/web/apache/www/sait2.ru/index.php:5]: To: user@ukr.net -- Headers:.

Файл /var/log/php/php_errors.log пустой

Я подумал что проблема в модуле для апача /usr/lib/apache2/modules/libphp7.0.so

У меня для другой системы был ранее собран из исходников модуль для апача пятой версии, по размерам он был в 6 раз больше чем этот. Этот модуль точно работает, так как на другой системе письмо прекрасно отправляется. Я взял его (к нему не хватало нескольких библиотек, я их просто скопировал после чего выполнил команду ldconfig), проверил библиотеки были все. Запустил апач, он запустился нормально. Открываю сайт, но письмо не отправляется. В браузер никаких ошибок не пишет, хотя как видно я вывод включал. Просто срабатывает if и пишет, что почта не работает и письмо действительно не отправляется. Получается, что дело не в этом модуле, тогда не понятно где, конфиги одинаковы для апача и клиента, ошибок не пишет. Может кто подскажет как подробное логирование включить.

В логаг апача вот что:

Запуск апача: /usr/sbin/apache2 -k start

ps axu | grep apache
root      6266  0.7  1.3 136500 28196 ?        Ss   12:37   0:00 /usr/sbin/apache2 -k start
apache    6267  0.0  0.3 136524  7984 ?        S    12:37   0:00 /usr/sbin/apache2 -k start
apache    6268  0.0  0.3 136524  7984 ?        S    12:37   0:00 /usr/sbin/apache2 -k start
apache    6269  0.0  0.3 136524  7984 ?        S    12:37   0:00 /usr/sbin/apache2 -k start
apache    6270  0.0  0.3 136524  7984 ?        S    12:37   0:00 /usr/sbin/apache2 -k start
apache    6271  0.0  0.3 136524  7984 ?        S    12:37   0:00 /usr/sbin/apache2 -k start
root      6273  0.0  0.0   5100   900 pts/0    S+   12:38   0:00 grep apache

/var/log/apache2/access.log пустой

в /var/log/apache2/error.log вот что:

[Wed Oct 11 12:37:58.188215 2017] [mpm_prefork:notice] [pid 6266] AH00163: Apache/2.4.18 (Ubuntu) PHP/7.0.22-0ubuntu0.16.04.1 configured -- resuming normal operations
[Wed Oct 11 12:37:58.188374 2017] [core:notice] [pid 6266] AH00094: Command line: '/usr/sbin/apache2'

открываю сайт, пробую двумя браузерами, очень старой оперой и свежим firefox-сом

/var/log/apache2/sait2.ru/error.log пустой

в /var/log/apache2/sait2.ru/access.log вот что:

192.168.5.226 - - [11/Oct/2017:12:40:39 +0300] "GET / HTTP/1.1" 200 90683 "-" "Opera/9.80 (X11; Linux i686) Presto/2.12.388 Version/12.15"
192.168.5.226 - - [11/Oct/2017:12:42:36 +0300] "GET / HTTP/1.1" 200 90646 "-" "Mozilla/5.0 (X11; Linux i686; rv:52.0) Gecko/20100101 Firefox/52.0"

В чём причина не работы функции mail и как включить очень подробное логирование так и не знаю.

За помощь заранее благодарен!

 ,

v4567
()

пересылка почты между почтовыми серверами

Например есть почтовый сервер host1.com который является нулевой mx записью для этого домена - host1.com. Когда мы отправляем письмо от пользователя user1@host1.com к пользователю user2@host1.com то всё понятно. Пользователь user1@host1.com должен пройти авторизацию (при правильной настройке почтового сервера) и только после этого он может отправить письмо пользователю user2@host1.com
Но представим, что второй пользователь заведён на другом почтовом сервере - user2@host2.com который так же является нулевой mx записью для своего домена host2.com. Теперь попытаемся отправить письмо от первого пользователя user1@host1.com ко второму пользователю user2@host2.com.
Произойдёт следующее, первый авторизуется на своём почтовом сервере host1.com, потом этот сервер свяжется со вторым почтовым сервером host2.com и передаст ему письмо для второго пользователя user2@host2.com
Теперь представим что на самом деле никакого первого пользователя и первого почтового сервера нет, я беру и соединяюсь телнетом по 25 порту со вторым почтовым сервером. mail from: указываю user1@host1.com rcpt to: указываю user2@host2.com, при этом второй почтовый сервер host2.com никак не сможет проверить есть на самом деле пользователь user1@host1.com или его нет, host1.com на самом ли деле является почтовым сервером или нет. По идее он просто должен принять письмо для пользователя user2@host2.com и всё.
В результате получается так что для рассылки спама не надо искать серверов с открытым релеем или взламывать чей то почтовый ящик. Но на самом деле таким образом отправить письмо не удалось, написало что нет авторизации, только не понятно какого пользователя первого или второго.
Если кто знает подскажите пожалуйста почему не получается таким образом отправить письмо, где я не прав?

 

v4567
()

настроить cups

Не могу найти в файлах настройку cups - sides=one-sided обшарил всю папку /etc/cups - не нашёл. Папки ~/.cups нету.

 

v4567
()

посмотреть неправильные пароли при логировании

Как посмотреть пароли которые вводят, при попытке входа по ssh? Попытался посмотреть командой lastb но файл /var/log/btmp пустой хотя в файле /var/log/auth.log видно что пытаются войти.

 

v4567
()

не могу второй раз отправить в фон скрипт

Есть скрипт, в нём устанавливаю свои обработчики сигналов, в частности сигнал Ctrl+z отправки в фон.


trap 'fynk ; kill -TSTP $$' SIGTSTP

В функции fynk возвращаю сигналы обратно в систему, командой:


trap - SIGTSTP

Как видно после выполнения функции fynk и в результате возврата сигнала в систему, выполняется команда:


kill -TSTP $$

которая опять посылает сигнал отправки в фон нашему скрипту (без этой команды после отправки в фон командная строка не возвращается).

В фон скрипт отправляется отлицно и после командная строка работает нормально. Возвращается из фона скрипт то же нормально. Естественно после возврата из фона я опять устанавливаю свои обработчики сигналов. Второй раз скрипт уже не отправляется в фон. Почему не могу понять, ведь обработчики сигналов я опять установил свои.

Добавлено через 28 минут Например вот такой скрипт во второй раз в фон не отправляется:

#!/bin/bash
 
 
fynk1()
{
 
 trap - SIGTSTP
 return 0
 
}
 
fynk2()
{
 
 trap 'fynk1 ; kill -TSTP $$' SIGTSTP
 trap 'fynk2' SIGCONT
 echo "2222222222222"
 return 0
 
}
 
fynk2
 
while true
 do
   sleep 0
done

Почему то он не убивается и по ctrl+c.

 

v4567
()

RSS подписка на новые темы