
ytf
Members-
Posts
150 -
Joined
-
Last visited
-
Days Won
2
ytf last won the day on April 24 2019
ytf had the most liked content!
Recent Profile Visitors
The recent visitors block is disabled and is not being shown to other users.
ytf's Achievements
Newbie (1/14)
4
Reputation
-
Сначала нужно убедиться, что вы в домашнем каталоге. Например выполнив команду cd ~/ а после mkdir test можно перейти в него командой cd test а дальше не знаю
-
Довольно частая ошибка, но не критичная, компьютером можно пользоваться, обычно через минуту после полного запуска ОС интернет уже работает.
-
добрый день, если ввести в поиске curl: (35) gnutls_handshake() failed: Certificate is bad то можно найти некоторые подсказки, например, $ch[CURLOPT_SSLVERSION] = CURL_SSLVERSION_TLSv1_1; но сам я не пробовал
-
Автоматическое обновление браузера firefox и flash плагина
ytf replied to ytf's topic in Программирование общее
Можно запускать обновление не вручную, а по расписанию, допустим 1 раз при каждом включении пк. Если файлы сайта располагаются в директории /var/www/s1.local, то можно создать файл /var/www/s1.local/check.online.sh #!/bin/bash INTERNET_STATUS="" while [ "$INTERNET_STATUS" != "UP" ] do ping -c 1 -W 0.7 8.8.4.4 > /dev/null 2>&1 if [ $? -eq 0 ] ; then INTERNET_STATUS="UP" else sleep 4 fi done; php -q /var/www/s1.local/obnov.php >> /home/user/obnovlenie_firefox_i_flash.txt 2>&1 Открыть терминал и выполнить команду: sudo crontab -e , добавить в конец файла строку @reboot /var/www/s1.local/check.online.sh Сохранить изменения с помощью двух команд "Ctrl+O", "Ctrl+X" -
насколько я понял, приложения, написанные для виндовс, будут притормаживать в линукс, а их запуск повлечёт за собой возможность срабатывания виндовс-вирусов, поэтому не рекомендую данный путь какое приложение вы пытались установить?
-
грузиться с лив сиди, читать логи и публиковать ошибки, найденные в логах, на форумах
-
Нужна помощь с linux в целом и с kali в частности
ytf replied to Потом придумаю's topic in Общий форум
никогда не встречал книг о том, как устроены линукс-системы -
Дистрибутив CentOS для Proxmox не устанавливается xrdp
ytf replied to betepok's topic in Общий форум
Здравствуйте! к разработчику программы xrdp вы обращались? сообщили ему/ей об ошибке? -
Для обновления браузера firefox и flash плагина я написал php скрипт, который состоит из директории 777 ( всем пользователям даны права на запись в эту директорию), файла nget.php и файла obnov.php, все файлы можно разместить на одном из локальных сайтов. Содержимое файла nget.php <?php define("KURL_LOGIROVANIE", false); // true - если нужно сохранять ответы на http запросы в текстовый файл, иначе - false define("FILE_DLYA_ZAPISI_POLUCHENNYH_OTVETOV", __DIR__.'/777/curl_zaprosy.txt'); // путь к текстовому файлу, в который будут записываться URL адреса страниц, ошибки, результаты запросов define("FILE_DLYA_ZAPISI_KUKIS", __DIR__.'/777/curl_kuki.txt'); // путь к текстовому файлу, в который будут записываться кукис define("KURL_PAUZA", 50); // на какое число микросекунд скрипт засыпает перед следующим http запросом $last_curl_url = array(); // последний открытый сетевой адрес // сетевой запрос /* Параметры массива add: * yupi - строка логин:пароль для http авторизации * xml - добавляет заголовок ajax запроса * json - согласие получить в ответ json * post - массив данных, отправляемых формой * multi - массив данных, отправляемых формой в виде multipart-formdata * move - ограничить число допустимых редиректов, по умолчанию 5 * top - включать заголовок в ответ функции, по умолчанию да * save - сохранить ответ в файл с именем * proxy - прокси * ref - ссылка, с которой мы перешли * req - request запрос * nobody - получение только заголовков header */ function nget($url="",$add=array()) { file_put_contents(FILE_DLYA_ZAPISI_POLUCHENNYH_OTVETOV, $url."\n", 8); if (!function_exists("curl_init")) return fget($url,$add); if (!($curl = curl_init())) return NULL; curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_COOKIEJAR, FILE_DLYA_ZAPISI_KUKIS); curl_setopt($curl, CURLOPT_COOKIEFILE, FILE_DLYA_ZAPISI_KUKIS); curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; Linux x86_64; rv:69.0) Gecko/20100101 Firefox/69.0'); if (isset($add['yupi'])) curl_setopt($curl, CURLOPT_USERPWD, $add['yupi']); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, false); $headers = array(); if (isset($add['xml'])) { // ajax запрос $headers[] = 'X-Requested-With: XMLHttpRequest'; }; if (isset($add['nobody'])) { // header запрос curl_setopt($curl, CURLOPT_NOBODY, 1); $add['move'] = 0; $add['top'] = 1; }; if (isset($add['json'])) { // json запрос $headers[] = 'Accept: application/json'; }; if (isset($add['post'])) { // post запрос curl_setopt($curl,CURLOPT_POST, TRUE); curl_setopt($curl,CURLOPT_POSTFIELDS, http_build_query($add['post'])); }; if (isset($add['multi'])) { // post multi/part запрос curl_setopt($curl,CURLOPT_POST, TRUE); curl_setopt($curl,CURLOPT_POSTFIELDS, $add['multi']); }; if (isset($add['req'])) { // request запрос curl_setopt($curl,CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($curl,CURLOPT_POSTFIELDS, $add['req']); $headers[] = 'Content-Type: application/json'; }; if (!isset($add['move'])) $add['move'] = 5; if ($add['move']>0) { // разрешены редиректы $add['top'] = true; // включать header в ответ } if (!isset($add['top']) OR isset($add['save'])) $add['top']=false; curl_setopt($curl, CURLOPT_HEADER, $add['top']); if (isset($add['proxy'])) curl_setopt($curl, CURLOPT_PROXY, $add['proxy']); if (isset($add['ref'])) curl_setopt($curl, CURLOPT_REFERER, $add['ref']); curl_setopt($curl, CURLOPT_RETURNTRANSFER, (isset($add['save'])?false:true)); if (isset($add['save'])) { // сохранить файл в if (FALSE===($out = fopen($add['save'],"w+"))) { file_put_contents(FILE_DLYA_ZAPISI_POLUCHENNYH_OTVETOV,"failed opening of file ".$add['save']."\n",8); exit; } curl_setopt($curl, CURLOPT_FILE, $out); } curl_setopt($curl, CURLOPT_FORBID_REUSE, false); curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, isset($add['time'])?$add['time']:120); curl_setopt($curl, CURLOPT_TIMEOUT, isset($add['time'])?$add['time']:120); $no_header_params = array('xml','json','post','move','top','save','yupi','ref','proxy','multi','req','time','nobody'); if (!empty($add)) foreach ($add as $k=>$h) if (!in_array($k,$no_header_params)) $headers[] = $h; if (!empty($headers)) curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); global $last_curl_url; $last_curl_url[] = $url; while (1) { usleep(KURL_PAUZA); $data = curl_exec($curl); if (KURL_LOGIROVANIE==true) file_put_contents(FILE_DLYA_ZAPISI_POLUCHENNYH_OTVETOV, $data, 8); $curl_errno = curl_errno($curl); if ($curl_errno > 0 AND $curl_errno!=28) { file_put_contents(FILE_DLYA_ZAPISI_POLUCHENNYH_OTVETOV,'cURL Error ('.$curl_errno.'): '.curl_error($curl)." on curl ".var_export($last_curl_url,1)."\n",8); curl_close($curl); exit; } if ($add['move']<1) break; $code = curl_getinfo($curl, CURLINFO_HTTP_CODE); if ($code != 301 && $code != 302) break; $header_start = strpos($data, "\r\n")+2; $headers = substr($data, $header_start, strpos($data, "\r\n\r\n", $header_start)+2-$header_start); if (!preg_match("!\r\n(?:Location|URI): *(.*?) *\r\n!", $headers, $matches)) break; $newurl = $matches[1]; if (!strpos($newurl, "//")) { $old_url_parts=explode("//",end($last_curl_url)); $old_url_http_part=$old_url_parts[0]; $old_url_host_part=explode("/",$old_url_parts[1]); $newurl=$old_url_http_part.'//'.$old_url_host_part[0].$newurl; } curl_setopt($curl, CURLOPT_URL, $newurl); file_put_contents(FILE_DLYA_ZAPISI_POLUCHENNYH_OTVETOV, $newurl."\n", 8); $last_curl_url[] = $newurl; $add['move']--; // уменьшение числа разрешённых редиректов }; curl_close($curl); if (!$add['top']) { $ah = strpos($data, "\r\n\r\n")+4; if ($ah<200 AND substr($data,0,21)=='HTTP/1.1 100 Continue') $ah = strpos($data, "\r\n\r\n", $ah)+4; $data = substr($data, $ah); } if (isset($add['save'])) { fclose($out); return 1; } return $data; } /* аналог curl с помощью file_get_contents */ function fget($url="",$add=array()) { $arrContextOptions=array( "ssl"=>array( "verify_peer"=>false, "verify_peer_name"=>false, ), "http"=>array( "user_agent"=>'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0' ) ); $headers = array(); if (isset($add['xml'])) { // ajax запрос $headers[] = 'X-Requested-With: XMLHttpRequest'; }; if (isset($add['json'])) { // json запрос $headers[] = 'Accept: application/json'; }; if (isset($add['post'])) { // post запрос $arrContextOptions['http']['method'] = "POST"; $arrContextOptions['http']['content'] = http_build_query($add['post']); }; if (isset($add['multi'])) { // post multi/part запрос $arrContextOptions['http']['method'] = "POST"; $arrContextOptions['http']['content'] = $add['multi']; }; if (isset($add['req'])) { // request запрос $arrContextOptions['http']['method'] = "POST"; $arrContextOptions['http']['content'] = $add['req']; $headers[] = 'Content-Type: application/json'; }; if (!isset($add['move'])) $add['move'] = 5; if ($add['move']>0) { // разрешены редиректы $add['top'] = true; // включать header в ответ } if (!isset($add['top']) OR isset($add['save'])) $add['top']=false; if (isset($add['proxy'])) $arrContextOptions['http']['proxy'] = $add['proxy']; if (isset($add['ref'])) $headers[] = 'Referer: '.$add['ref']; if (isset($add['save'])) { // сохранить файл в if (FALSE===($out = fopen($add['save'],"w+"))) { file_put_contents(FILE_DLYA_ZAPISI_POLUCHENNYH_OTVETOV,"failed opening of file ".$add['save']."\n",8); exit; } } $arrContextOptions['http']['timeout'] = isset($add['time'])?$add['time']:10; $no_header_params = array('xml','json','post','move','top','save','yupi','ref','proxy','multi','req','time'); if (!empty($add)) foreach ($add as $k=>$h) if (!in_array($k,$no_header_params)) $headers[] = $h; if (isset($add['yupi'])) $headers[] = 'Authorization : Basic '.base64_encode($add['yupi']); if (!empty($headers)) $arrContextOptions['http']['header'] = $headers; global $last_curl_url; $last_curl_url[] = $url; usleep(KURL_PAUZA); $data = file_get_contents($url, false, stream_context_create($arrContextOptions)); if (KURL_LOGIROVANIE==true) file_put_contents(FILE_DLYA_ZAPISI_POLUCHENNYH_OTVETOV, $data, 8); if (isset($add['save'])) { fclose($out); return 1; } return $data; } // сетевой запрос, скачивающий файл с помощью консольной команды wget function wget($url="",$filename="") { if (function_exists('system')) { usleep(KURL_PAUZA); system('wget -O '.$filename.' '.$url,$retval); } else return false; return ($retval===0); } // найти участок кода между двух строк function iska($nachalo, $konec, $string) { if (!preg_match('/'.preg_quote($nachalo,'/').'(.*)'.preg_quote($konec,'/').'/ismU',$string,$nashli)) return ''; return $nashli[1]; } // удалить участок кода между двух строк function udal($nachalo, $konec, $string) { return preg_replace('/'.preg_quote($nachalo,'/').'.*'.preg_quote($konec,'/').'/ismU','',$string); } // очистка логов запросов function ochistka_logov_zaprosov() { file_put_contents(FILE_DLYA_ZAPISI_POLUCHENNYH_OTVETOV, ""); } // проверка, давно ли не было запросов function dolgo_ne_bylo_http_zaprosov($dolgo=50) { $a = time(); $b = filemtime(FILE_DLYA_ZAPISI_POLUCHENNYH_OTVETOV); if ( ($a-$b)>$dolgo ) return true; else return false; } Содержимое файла obnov.php <?php ignore_user_abort(true); ini_set("max_execution_time",3600); ini_set("memory_limit","1200M"); require 'nget.php'; $f=time(); $wd=__DIR__.'/777/'; // директория для записи файлов $u = "https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=ru"; var_dump($u); $h=nget($u, array('nobody'=>1)); //echo $h; $n=iska('releases/','/',$h); var_dump($n); $o=1; // обновлять ли программу if (file_exists($wd.'firefox.version')) { $pn=file_get_contents($wd.'firefox.version'); if ($pn==$n) $o=0; } file_put_contents($wd.'firefox.version',$n); if ($o) { if (preg_match("!\r\n(?:Location|URI): *(.*?) *\r\n!", $h, $matches)) { $newurl = $matches[1]; var_dump($newurl); unlink($wd.'firefox.tar.bz2'); nget($newurl, array('save'=>$wd.'firefox.tar.bz2')); $output = shell_exec('tar -vxjf '.$wd.'firefox.tar.bz2 -C /opt'); file_put_contents($wd.'firefox.output.txt',$output); } } echo 'firefox ok'; echo "\n"; $u = "https://get.adobe.com/ru/flashplayer/"; var_dump($u); $h=nget($u, array()); //echo $h; $n=trim(iska('Версия','<',$h)); var_dump($n); $o=1; // обновлять ли программу if (file_exists($wd.'flash.version')) { $pn=file_get_contents($wd.'flash.version'); if ($pn==$n) $o=0; } file_put_contents($wd.'flash.version',$n); if ($o) { $h1 = iska('case "3":','case "4":',$h); var_dump($h1); $h2 = iska('$("#buttonDownload").attr("href","','"',$h1); var_dump($h2); if ($h2!=='') { $h=nget("https://get.adobe.com/".$h2, array()); $newurl = iska("location.href = '","'",$h); sleep(2); unlink($wd.'flash.tar.gz'); var_dump($newurl); nget($newurl, array('save'=>$wd.'flash.tar.gz')); $output = shell_exec('tar -xzvf '.$wd.'flash.tar.gz -C /usr/lib/mozilla/plugins libflashplayer.so'); $output2 = shell_exec('tar -xzvf '.$wd.'flash.tar.gz -C / usr'); file_put_contents($wd.'flash.output.txt',$output."\n".$output2); } } echo 'flash ok'; echo "\n"; Для обновления браузера firefox и flash плагина достаточно в терминале выполнить команду sudo php -q /директория_в_которой_находятся_файлы_сайта/obnov.php Если php не установлен, его можно установить с помощью команды sudo apt-get install php Поскольку скрипт устанавливает программу firefox в директорию opt, для запуска firefox нужно будет использовать команду /opt/firefox/firefox -P default Если раньше firefox вы запускали с помощью другой команды, то может потребоваться изменить команду запуска в меню автозагрузки и в меню запуска приложений.
-
может вы пунто свитчер используете или другой кейлоггер?
-
значит его не обязательно создавать при разметке диска
-
под словом boot я подразумевал раздел, в который записывается загрузчик, например загрузчиком может быть grub2, то есть установщик операционной системы спрашивает "какой раздел вы хотите сделать загрузочным?" и там есть возможность выбрать жесткий диск или его раздел иногда загрузчик не помещается в первые байты жесткого диска и нужно сначала создать раздел, например 1 гб, потом создать остальные разделы, потом удалить первый раздел
-
BB-8 reacted to a post in a topic: Разбивка диска для Qubes OS
-
BB-8 reacted to a post in a topic: Teamviewer на Qubes OS
-
не знаю, но скорее всего разбивка мало отличается от других линукс ос например, в дебиан достаточно двух разделов "/ - root" и "swap" если это вторая ос на компьютере, то после установки второй ос первая может не загрузиться, в зависимости от совместимости загрузчика, разделом boot может быть дисковый накопитель, например, /dev/sda