<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>REMADMIN</title>
	<atom:link href="https://remadmin.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://remadmin.com</link>
	<description>Удалённый системный администратор</description>
	<lastBuildDate>Sun, 25 Feb 2024 11:25:06 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>Как безопасно удалить пользователя в Ubuntu Linux</title>
		<link>https://remadmin.com/blog/linux/kak-bezopasno-udalit-polzovatelya-v-ubuntu-linux/</link>
					<comments>https://remadmin.com/blog/linux/kak-bezopasno-udalit-polzovatelya-v-ubuntu-linux/#respond</comments>
		
		<dc:creator><![CDATA[REMADMIN]]></dc:creator>
		<pubDate>Thu, 29 Feb 2024 09:16:30 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[шпаргалка]]></category>
		<guid isPermaLink="false">https://remadmin.com/?p=7289</guid>

					<description><![CDATA[Умение эффективно удалять пользователей является ключевым навыком для специалистов в области системного администрирования. Устаревшие учетные записи могут представлять угрозу для безопасности сервера, поэтому их следует регулярно удалять. В данной статье мы предоставим информацию о процессе удаления пользователей в Linux Ubuntu и расскажем о необходимых шагах перед выполнением этой операции, чтобы избежать негативных последствий для системы. [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Умение эффективно удалять пользователей является ключевым навыком для специалистов в области системного администрирования. Устаревшие учетные записи могут представлять угрозу для безопасности сервера, поэтому их следует регулярно удалять. В данной статье мы предоставим информацию о процессе удаления пользователей в Linux Ubuntu и расскажем о необходимых шагах перед выполнением этой операции, чтобы избежать негативных последствий для системы.</p>
<h6>Проверяем, авторизован ли пользователь на сервере, и есть ли запущенные от него процессы</h6>
<pre class="EnlighterJSRAW" data-enlighter-language="powershell">who
sudo ps -u username</pre>
<h6>Убиваем процессы пользователя, если они есть</h6>
<pre class="EnlighterJSRAW" data-enlighter-language="powershell">sudo killall -9 -u username</pre>
<h6>Отключаем все задачи планировщика cron этого пользователя</h6>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">sudo crontab -r -u username</pre>
<h6>Собственно удаляем пользователя</h6>
<p>Если нужно удалить пользователя, но оставить его домашнюю директорию, то выполняем:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="powershell">sudo deluser username</pre>
<p>Если нужно удалить всё, включая и его домашнюю директорию, то выполняем команду:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">sudo deluser --remove-home username</pre>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://remadmin.com/blog/linux/kak-bezopasno-udalit-polzovatelya-v-ubuntu-linux/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Поиск в файлах по содержимому в Linux</title>
		<link>https://remadmin.com/blog/linux/poisk-v-fajlah-po-soderzhimomu-v-linux/</link>
					<comments>https://remadmin.com/blog/linux/poisk-v-fajlah-po-soderzhimomu-v-linux/#respond</comments>
		
		<dc:creator><![CDATA[REMADMIN]]></dc:creator>
		<pubDate>Wed, 28 Feb 2024 13:51:01 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[шпаргалка]]></category>
		<guid isPermaLink="false">https://remadmin.com/?p=7301</guid>

					<description><![CDATA[Linux, как операционная система с открытым исходным кодом, обеспечивает пользователей мощными инструментами для работы с файловой системой. Один из ключевых аспектов этой работы &#8211; поиск файлов по их содержимому. В данной статье мы рассмотрим различные методы и инструменты для проведения эффективного поиска в файлах по их содержимому в Linux. Команда grep grep является одной из [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Linux, как операционная система с открытым исходным кодом, обеспечивает пользователей мощными инструментами для работы с файловой системой. Один из ключевых аспектов этой работы &#8211; поиск файлов по их содержимому. В данной статье мы рассмотрим различные методы и инструменты для проведения эффективного поиска в файлах по их содержимому в Linux.</p>
<h5>Команда grep</h5>
<p><strong>grep</strong> является одной из наиболее популярных и мощных утилит для поиска текстовых данных в файлах. Команда <strong>grep</strong> позволяет указать строку или регулярное выражение для поиска и применяется следующим образом:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">grep "ключевое_слово" /путь/к/файлу.txt</pre>
<p>Для рекурсивного поиска в каталогах вы можете использовать опцию <strong>-r</strong>, позволяющую искать вложенные файлы и подкаталоги. Пример:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">grep -r "искомый_текст" /путь/к/каталогу</pre>
<h5>find и xargs совместно</h5>
<p>Комбинация команд <strong>find</strong> и <strong>xargs</strong> позволяет находить файлы с заданными критериями и передавать их в качестве аргументов для других команд. Пример:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">find /путь -type f -exec grep "искомый_текст" {} +</pre>
<p>В данном примере <strong>find</strong> находит все файлы (-type f) в указанном пути и передает их в <strong>grep</strong>, где производится поиск заданного текста.</p>
<h5>find и grep совместно</h5>
<p>Комбинирование <strong>find</strong> и <strong>grep</strong> позволяет более тонко настраивать поиск. Например, поиск в файлах, измененных за последние 7 дней:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">find /путь -type f -mtime -7 -exec grep "искомый_текст" {} +</pre>
<p>Поиск в файлах по содержимому в Linux может быть выполнен различными способами, и выбор зависит от конкретной задачи. Описанные инструменты предоставляют гибкость и мощь для проведения поиска в текстовых файлах, а их комбинация может быть использована для достижения оптимальных результатов. Учитывайте особенности каждого инструмента и выбирайте подходящий в зависимости от контекста использования.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://remadmin.com/blog/linux/poisk-v-fajlah-po-soderzhimomu-v-linux/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Руководство по работе с планировщиком задач cron</title>
		<link>https://remadmin.com/blog/linux/rukovodstvo-po-rabote-s-planirovshhikom-zadach-cron/</link>
					<comments>https://remadmin.com/blog/linux/rukovodstvo-po-rabote-s-planirovshhikom-zadach-cron/#respond</comments>
		
		<dc:creator><![CDATA[REMADMIN]]></dc:creator>
		<pubDate>Mon, 26 Feb 2024 11:57:07 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[cron]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[шпаргалка]]></category>
		<guid isPermaLink="false">https://remadmin.com/?p=7298</guid>

					<description><![CDATA[Linux, как операционная система, предоставляет множество инструментов для автоматизации различных задач. Один из таких инструментов — планировщик задач cron. В этой статье мы рассмотрим, как эффективно использовать планировщик в Linux для автоматизации рутинных операций. Что такое cron? Cron — это стандартный инструмент в Unix-подобных системах, предназначенный для выполнения задач в установленное время или периодически. Он [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Linux, как операционная система, предоставляет множество инструментов для автоматизации различных задач. Один из таких инструментов — планировщик задач cron. В этой статье мы рассмотрим, как эффективно использовать планировщик в Linux для автоматизации рутинных операций.</p>
<h5>Что такое cron?</h5>
<p>Cron — это стандартный инструмент в Unix-подобных системах, предназначенный для выполнения задач в установленное время или периодически. Он основан на файлах cron, в которых определены задания и их расписание. Эти файлы хранятся в каталоге <strong>/etc/cron.d/</strong> или <strong>/var/spool/cron/</strong> и обычно недоступны для редактирования напрямую.</p>
<h5>Работа с cron</h5>
<h6>Создание и редактирование cron-задач</h6>
<p>Для создания новой задачи, или редактирования существующих, используется команда:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">crontab -e</pre>
<p>Она открывает текстовый редактор, в котором можно определить расписание и команду для выполнения. Например, чтобы запустить скрипт &#8220;myscript.sh&#8221; каждый день в 2 часа ночи, добавьте следующую строку:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">0 2 * * * /путь/к/скрипту/myscript.sh</pre>
<p>Редактировать команды другого пользователя можно так:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">sudo crontab -u username -e</pre>
<h6>Листинг задач</h6>
<p>Список текущих cron-задач можно просмотреть с помощью команды:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">crontab -l</pre>
<p>Это полезно для проверки текущего расписания и быстрого определения того, что уже настроено.</p>
<p>Вывести задачи другого пользователя можно так:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">sudo crontab -u username -l</pre>
<h6>Удаление задач</h6>
<p>Эта команда удаляет все cron-задачи пользователя:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">crontab -r</pre>
<p>Если необходимо удалить конкретную задачу, используйте:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">crontab -l</pre>
<p>чтобы увидеть ее номер, а затем:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">crontab -r номер</pre>
<h5>Вывод результата в лог-файл</h5>
<p>Для записи результатов выполнения задачи в лог-файл, вы можете использовать перенаправление стандартного вывода и стандартной ошибки в файл прямо внутри команды cron. Вот пример:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">* * * * * /путь/к/вашему/скрипту.sh &gt;&gt; /путь/к/лог-файлу.log 2&gt;&amp;1</pre>
<p>Здесь <strong>&gt;&gt;</strong> используется для добавления вывода в конец файла, <strong>2&gt;&amp;1</strong> перенаправляет стандартные ошибки в стандартный вывод, чтобы они также попадали в лог-файл.</p>
<h5>Указание времени выполнения задач</h5>
<p>В планировщике задач cron в Linux время выполнения задач задается в виде пяти полей, каждый из которых представляет собой определенный аспект времени. Эти поля определяют минуты, часы, дни месяца, месяцы и дни недели. Вот структура этих полей:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">* * * * *
- - - - -
| | | | |
| | | | +----- День недели (0 - воскресенье, 1 - понедельник, ..., 6 - суббота)
| | | +------- Месяц (1 - январь, 2 - февраль, ..., 12 - декабрь)
| | +--------- День месяца (1 - 31)
| +----------- Час (0 - 23)
+------------- Минуты (0 - 59)</pre>
<p>Каждое поле может принимать определенные значения или диапазоны значений, а также знаки &#8220;*&#8221; (звездочка) и &#8220;/&#8221; (косая черта).</p>
<ul>
<li><code>*</code>: Означает &#8220;каждый&#8221;. Например, если в поле минут стоит &#8220;*&#8221;, это означает, что задача будет выполняться каждую минуту.</li>
<li><code>число</code>: Определенное значение. Например, если в поле часов стоит &#8220;3&#8221;, задача будет выполняться в 3 часа.</li>
<li><code>число-число</code>: Диапазон значений. Например, &#8220;1-5&#8221; в поле дней недели означает с понедельника по пятницу.</li>
<li><code>*/число</code>: Каждый определенный интервал. Например, &#8220;*/15&#8221; в поле минут означает каждые 15 минут.</li>
</ul>
<h6>Примеры:</h6>
<p>Запуск задачи каждый день в 3 часа утра:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">0 3 * * *</pre>
<p>Запуск задачи каждый понедельник и среду в 12:30:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">30 12 * * 1,3</pre>
<p>Запуск задачи каждый час:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">0 * * * *</pre>
<p>Запуск задачи каждый день в 5 утра и 8 вечера:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">0 5,20 * * *</pre>
<p>Таким образом, правильное указание времени выполнения задачи в cron позволяет вам гибко управлять ее расписанием, с учетом требований вашего проекта или системы.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://remadmin.com/blog/linux/rukovodstvo-po-rabote-s-planirovshhikom-zadach-cron/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Как найти большие папки и файлы в Linux</title>
		<link>https://remadmin.com/blog/linux/kak-najti-bolshie-papki-i-fajly-v-linux/</link>
					<comments>https://remadmin.com/blog/linux/kak-najti-bolshie-papki-i-fajly-v-linux/#respond</comments>
		
		<dc:creator><![CDATA[REMADMIN]]></dc:creator>
		<pubDate>Sun, 25 Feb 2024 10:44:11 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[шпаргалка]]></category>
		<guid isPermaLink="false">https://remadmin.com/?p=7294</guid>

					<description><![CDATA[Для поиска больших файлов и папок в Linux с последующей сортировкой результатов, можно использовать комбинацию команд find, du, и sort. Вот несколько примеров: Поиск больших файлов с сортировкой по убыванию, с выводом в терминал только 20 больших файлов,  в указанной папке find /путь/к/каталогу -type f -size +100M -exec du -h {} + &#124; sort -rh [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Для поиска больших файлов и папок в Linux с последующей сортировкой результатов, можно использовать комбинацию команд find, du, и sort. <span id="more-7294"></span>Вот несколько примеров:</p>
<h6>Поиск больших файлов с сортировкой по убыванию, с выводом в терминал только 20 больших файлов,  в указанной папке</h6>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">find /путь/к/каталогу -type f -size +100M -exec du -h {} + | sort -rh | head -n 20</pre>
<p>Эта команда ищет файлы размером более 100 мегабайт в указанном каталоге и его подкаталогах, затем сортирует результаты по размеру в убывающем порядке.</p>
<h6>Поиск больших файлов с сортировкой по убыванию в текущей папке</h6>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">find . -type f -size +500M -exec du -h {} + | sort -rh</pre>
<p>Эта команда ищет файлы размером более 500 мегабайт в текущем каталоге и его подкаталогах, затем сортирует результаты по размеру в убывающем порядке.</p>
<h6>Поиск больших папок с сортировкой по убыванию и выводом в терминал только 20 самых больших папок</h6>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">du -h --max-depth=1 /путь/к/каталогу | sort -rh | head -n 20</pre>
<p>Эта команда выводит размер каждой папки в указанном каталоге (включая подкаталоги) и сортирует результаты по размеру в убывающем порядке.</p>
<p><strong>Поиск папок, содержащих большое количество файлов, с сортировкой по убыванию, и выводом только 20 таких папок</strong></p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">find /путь/к/каталогу -type d -exec sh -c 'echo -n "{} " &amp;&amp; find "{}" -maxdepth 1 -type f | wc -l' \; | sort -k2 -nr | head -n 20</pre>
<p>Эта команда ищет все подкаталоги в указанном каталоге, выводит каждый подкаталог вместе с количеством файлов в нем, а затем сортирует результаты по количеству файлов в убывающем порядке.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://remadmin.com/blog/linux/kak-najti-bolshie-papki-i-fajly-v-linux/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>SSH &#8211; проброс приватного ключа</title>
		<link>https://remadmin.com/blog/linux/ssh-probros-privatnogo-kljucha/</link>
					<comments>https://remadmin.com/blog/linux/ssh-probros-privatnogo-kljucha/#respond</comments>
		
		<dc:creator><![CDATA[REMADMIN]]></dc:creator>
		<pubDate>Sat, 24 Feb 2024 07:56:04 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[шпаргалка]]></category>
		<guid isPermaLink="false">https://remadmin.com/?p=7283</guid>

					<description><![CDATA[Проброс приватного ключа SSH позволяет, будучи подключённым к одному удалённому серверу, подключаться к другим, используя один и тот же приватный ключ, находящийся на вашем компьютере. Функция может быть очень полезна, если вы, например, работаете с GIT, прямо на удалённом сервере и вам нужно отправить с него же правки в GitHub. Для проброса приватного ключа используется [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Проброс приватного ключа SSH позволяет, будучи подключённым к одному удалённому серверу, подключаться к другим, используя один и тот же приватный ключ, находящийся на вашем компьютере. Функция может быть очень полезна, если вы, например, работаете с GIT, прямо на удалённом сервере и вам нужно отправить с него же правки в GitHub.</p>
<p>Для проброса приватного ключа используется <strong>SSH Агент. </strong>Способ одинаково работает в консоли любых операционных систем Linux, macOS и Windows.</p>
<p>Первым делом проверяем, запущен ли агент, и знает ли он что-то о вашем ключе:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="powershell">ssh-add -l</pre>
<p>Если получаем ответ: <strong>Could not open a connection to your authentication agent, </strong>запускаем агент командой:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="powershell">eval 'ssh-agent'</pre>
<p>Если ответ: <strong>The agent has no identities, </strong>значит нужно сообщить ему о вашем приватном ключе, выполнив команду:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="powershell">ssh-add</pre>
<p>Если в ответе команды <strong>ssh-add -l </strong>вы видите путь к своему приватному ключу, значит всё хорошо, и вы можете подключаться к удалённому серверу по ssh, добавив при подключении опцию <strong>-A</strong>, то есть вот так:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="powershell">ssh -A user@host:port</pre>
<p>Или можно установить опцию ForwardAgent yes в файле <strong>~/.ssh/config</strong> на вашем локальном компьютере:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="raw">Host *
  ForwardAgent yes</pre>
<p>Для проверки, что всё хорошо и ключ проброшен, на удалённом сервере можно выполнить команду:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="powershell">echo "$SSH_AUTH_SOCK"</pre>
<p>Если всё ок, то она должна вернуть что-то похожее на:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="powershell">/tmp/ssh-DCIux21917/agent.21917</pre>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://remadmin.com/blog/linux/ssh-probros-privatnogo-kljucha/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Критическая уязвимость в Elementor Pro &#8211; популярном плагине WordPress</title>
		<link>https://remadmin.com/blog/vebmasteru/kriticheskaya-uyazvimost-v-elementor-pro/</link>
					<comments>https://remadmin.com/blog/vebmasteru/kriticheskaya-uyazvimost-v-elementor-pro/#respond</comments>
		
		<dc:creator><![CDATA[REMADMIN]]></dc:creator>
		<pubDate>Mon, 03 Apr 2023 11:27:28 +0000</pubDate>
				<category><![CDATA[Вебмастеру]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Уязвимость]]></category>
		<guid isPermaLink="false">https://remadmin.com/?p=7263</guid>

					<description><![CDATA[В версии, 3.11.7, плагина Elementor Pro выпущенной  22 марта 2023 года, устранена серьезная уязвимость, которая при использовании плагина WooCommerce на сайте, дает возможность авторизованному пользователю (например, подписчику или клиенту) изменять любые параметры WordPress через AJAX-действие плагина Elementor Pro. Уязвимость в Elementor Pro находилась в версиях 3.11.6 и ниже,  где отсутствовал необходимый контроль привилегий. Это дает [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>В версии, 3.11.7, плагина Elementor Pro выпущенной  22 марта 2023 года, устранена серьезная уязвимость, которая при использовании плагина WooCommerce на сайте, дает возможность авторизованному пользователю (например, подписчику или клиенту) изменять любые параметры WordPress через AJAX-действие плагина Elementor Pro. Уязвимость в Elementor Pro находилась в версиях 3.11.6 и ниже,  где отсутствовал необходимый контроль привилегий.</p>
<p>Это дает возможность злоумышленнику включить страницу регистрации (если она была отключена) и установить роль пользователя по умолчанию в качестве администратора, чтобы создать учетную запись с административными привилегиями. Таким образом  злоумышленник получает полный контроль над сайтом, может его редактировать, а так же загружать на сервер абсолютно любые файлы.</p>
<h5>Что это за плагин?.</h5>
<p><a href="https://elementor.com/products/page-builder-plugin/" rel="nofollow noopener" target="_blank">Elementor Pro</a> &#8211; это популярный плагин для WordPress, который позволяет создавать профессионально выглядящие страницы и посты на сайте под управлением WordPress без необходимости знания кодирования.</p>
<p>Он предоставляет мощный визуальный редактор, который позволяет вам создавать страницы методом drag-and-drop (перетаскивания элементов), выбирать из более чем 80 встроенных виджетов (включая текстовые блоки, кнопки, формы и графики), а также импортировать готовые шаблоны, которые могут быть адаптированы под ваши нужды.</p>
<p>Elementor Pro также предлагает множество дополнительных функций, таких как создание анимации и интерактивных элементов, интеграция с популярными службами отправки электронной почты и CRM-системами, поддержка полноэкранного просмотра и возможность создавать темы и шаблоны для вашего сайта.</p>
<p>Он предлагает функции, такие как создание областей контента и шаблонов, глобальные виджеты и управление стилями, позволяющие повторно использовать элементы на других страницах вашего сайта.</p>
<p>Elementor Pro предлагает множество функций для создания привлекательного и профессионального контента, что делает его одним из наиболее популярных плагинов для WordPress.</p>
<h5>Эксплуатация уязвимости Elementor Pro</h5>
<p>В настоящий момент наблюдаются массовые взломы сайтов на WordPress, использующих одновременно плагины WooCommerce и Elementor Pro версии ниже 3.11.7.</p>
<p>После взлома на сервере можно обнаружить новые файлы <strong>wp-resortpark.zip, wp-rate.php или lll.zip,</strong> однако естественно, могут быть файлы и с другими именами.</p>
<p>Взломанные сайты в данный момент используются для перенаправления посетителей на другие вредоносные сайты, но также могут использоваться и для других целей (атака на другие сайты, рассылка спама, фишинг и т.д).</p>
<p>Плагин используется на 12 миллионах сайтов, из-за чего компания NinTechNet, сообщившая об уязвимости, присвоила рейтинг серьезности уязвимости 8,8 из 10.</p>
<h5>Как защитить свой сайт на WordPress</h5>
<p>Необходимо обновить плагин Elementor Pro до версии не ниже 3.11.7 (на момент написания этой статьи, <a href="https://elementor.com/pro/changelog/" rel="nofollow noopener" target="_blank">актуальная версия 3.12.1</a>). Хочу заметить, что плагин является платным.</p>
<p>Если сайт уже взломан, необходимо найти и удалить на сервере все загруженные злоумышленником файлы, а так же удалить созданных им пользователей.</p>
<p><span style="color: #ff0000;">Если вам необходима помощь в устранении последствий взлома на вашем сайте, под управлением WordPress, с удалением всего вредоносного кода, вы можете обратиться ко мне, по любым, удобным для вас</span> <a href="https://remadmin.com/contact/" target="_blank" rel="noopener">контактам</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://remadmin.com/blog/vebmasteru/kriticheskaya-uyazvimost-v-elementor-pro/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Битрикс Веб-окружение и проблемы с Вебвизор Яндекс Метрики из-за заголовка X-Frame-Options</title>
		<link>https://remadmin.com/blog/vebmasteru/bitriks-veb-okruzhenie-x-frame-options/</link>
					<comments>https://remadmin.com/blog/vebmasteru/bitriks-veb-okruzhenie-x-frame-options/#respond</comments>
		
		<dc:creator><![CDATA[REMADMIN]]></dc:creator>
		<pubDate>Tue, 21 Mar 2023 08:19:25 +0000</pubDate>
				<category><![CDATA[Вебмастеру]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[Битрикс]]></category>
		<guid isPermaLink="false">https://remadmin.com/?p=7229</guid>

					<description><![CDATA[В Битрикс Веб-окружении по умолчанию в настройках Nginx прописан заголовок X-Frame-Options, который защищает сайт от показа в iframe. Соответственно, из-за этого, не будет корректно работать Вебвизор Яндекс Метрики, так как при просмотре посещений, сайт должен открываться в iframe. Статистика будет собираться, но посмотреть её будет невозможно. Решение проблемы описано в Яндекс Справке. Нам остаётся только [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>В Битрикс Веб-окружении по умолчанию в настройках Nginx прописан заголовок <strong>X-Frame-Options</strong>, который защищает сайт от показа в iframe. Соответственно, из-за этого, не будет корректно работать Вебвизор Яндекс Метрики, так как при просмотре посещений, сайт должен открываться в iframe. Статистика будет собираться, но посмотреть её будет невозможно.</p>
<p>Решение проблемы описано в <a href="https://yandex.ru/support/metrica/behavior/click-map.html#iframe" rel="nofollow noopener" target="_blank">Яндекс Справке</a>. Нам остаётся только внедрить его в настройки nginx на сервере под управлением &#8220;1С-Битрикс: Веб-окружение&#8221;.</p>
<p>Для начала уберём заголовок X-Frame-Options из файла <strong>/etc/nginx/bx/conf/general-add_header.conf</strong>. Можно просто его закомментировать:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="nginx">add_header "X-Content-Type-Options" "nosniff";
#add_header X-Frame-Options SAMEORIGIN;</pre>
<p>А теперь снова добавим его, но исключим Яндекс Метрику. Для этого в конец файла <strong>/etc/nginx/bx/conf/bitrix_general.conf</strong> добавим:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="nginx"># yandex webvisor fix
set $frame_options '';
if ($http_referer !~ '^https?:\/\/([^\/]+\.)?(yourdomain\.com|webvisor\.com|metri[ck]a\.yandex\.(com|ru|by|com\.tr))\/'){
   set $frame_options 'SAMEORIGIN';
}
add_header X-Frame-Options $frame_options;</pre>
<p>Где <strong>yourdomain\.com </strong>нужно заменить на домен вашего сайта.</p>
<p>Далее проверяем корректность синтаксиса конфигурационных файлов Nginx, выполнив в консоли команду:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="powershell">nginx -t</pre>
<p>И если всё ок, перезапускаем Nginx:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="powershell">service nginx reload</pre>
<p>Таким образом мы оставили заголовок X-Frame-Options для всех, за исключением Яндекс Метрики. Вебвизор должен корректно заработать.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://remadmin.com/blog/vebmasteru/bitriks-veb-okruzhenie-x-frame-options/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Массовый взлом сайтов на Битрикс 2023</title>
		<link>https://remadmin.com/blog/vebmasteru/massovyj-vzlom-sajtov-na-bitriks-2023/</link>
					<comments>https://remadmin.com/blog/vebmasteru/massovyj-vzlom-sajtov-na-bitriks-2023/#comments</comments>
		
		<dc:creator><![CDATA[REMADMIN]]></dc:creator>
		<pubDate>Thu, 16 Mar 2023 13:32:00 +0000</pubDate>
				<category><![CDATA[Вебмастеру]]></category>
		<category><![CDATA[Битрикс]]></category>
		<category><![CDATA[Уязвимость]]></category>
		<guid isPermaLink="false">https://remadmin.com/?p=7218</guid>

					<description><![CDATA[В последнее время ко мне массово обращаются клиенты с жалобой на взлом сайтов на Битрикс. Действительно, в старых версиях CMS Битрикс присутствует критическая уязвимость, позволяющая из-за недостаточной фильтрации данных, удалённо залить вредоносный код на сервер. Об уязвимости стало известно ещё в середине 2022 года, тогда была первая волна массовых взломов. Сейчас же наблюдается вторая волна [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>В последнее время ко мне массово обращаются клиенты с жалобой на взлом сайтов на Битрикс. Действительно, в старых версиях CMS Битрикс присутствует критическая уязвимость, позволяющая из-за недостаточной фильтрации данных, удалённо залить вредоносный код на сервер.</p>
<p>Об уязвимости стало известно ещё в середине 2022 года, тогда была первая волна массовых взломов. Сейчас же наблюдается вторая волна &#8211; страдают практически все сайты с неактуальной версией Битрикс.</p>
<p>Разработчики уязвимость <a href="https://bdu.fstec.ru/vul/2022-01141" rel="nofollow noopener" target="_blank">признали</a>, однако судя по всему уязвим не только модуль vote. Так как взламывают и те сайты, где его никогда не было. Единственное решение, которое они предложили &#8211; это обновление Битрикс до последней версии.</p>
<h5>Как определить, что ваш сайт уже взломали</h5>
<p>В админке Битрикса загляните в Агенты. Если видите там что-то подобное, значит 100%, что ваш сат подвергся взлому.</p>
<p><a href="https://remadmin.com/wp-content/uploads/2023/03/8Yt175fvTH.png" rel="lightbox[7218]"><img fetchpriority="high" decoding="async" class="aligncenter size-full wp-image-7221" src="https://remadmin.com/wp-content/uploads/2023/03/8Yt175fvTH.png" alt="Взлом битрикс" width="892" height="453" srcset="https://remadmin.com/wp-content/uploads/2023/03/8Yt175fvTH.png 892w, https://remadmin.com/wp-content/uploads/2023/03/8Yt175fvTH-300x152.png 300w, https://remadmin.com/wp-content/uploads/2023/03/8Yt175fvTH-768x390.png 768w" sizes="(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></a></p>
<p>Однако, как показала практика, &#8220;левый&#8221; агент бывает не всегда.</p>
<p>Посмотрите файлы сайта. Обычно прямо в корне могут появиться файлы с рандомными буквенно-циферными именами. Очень часто такой файл находится в папке /bitrix/admin/.</p>
<p>В нескольких случаях в каждой папке сайта на CMS Битрикс был создан файл .htaccess. На одном из сайтов я насчитал их 15000 штук <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Могут быть модифицированы .php и .js файлы сайта, в них дописан вредоносный код.</p>
<p>В нескольких случаях вредоносный код был дописан в index.php сайта, причём если удалить его оттуда, или даже удалить полностью сам файл, он тут же автоматически появлялся снова.</p>
<p>Во всех случаях на сайтах были найдены десятки вредоносных .php файлов в абсолютно рандомных папках, с рандомными именами, кодом и датой модификации.</p>
<h5>Как почистить сайт от вредоносного кода и устранить последствия взлома</h5>
<p>Если контент на вашем сайте редко обновляется, известна дата взлома и у вас есть заведомо чистая резервная копия &#8211; самый простой способ, это удалить все файлы и базу сайта, и далее восстановить их из резервной копии. Нужно делать именно так, а не восстанавливать бэкап поверх существующих файлов, так как при распаковке поверх, вредоносные файлы никуда не денутся.</p>
<p>Если же бэкапа нет, или контент сайта постоянно обновляется, то нужно:</p>
<ul>
<li>Удалить Агент в админке, если он есть.</li>
<li>Найти и удалить все вредоносные файлы, а также восстановить те, которые были модифицированы.</li>
</ul>
<p>Здесь я не могу дать общего совета как искать, так как каждый раз случай уникален. Пользуйтесь <a href="https://remadmin.com/blog/linux/find-v-linux/" target="_blank" rel="noopener">командой find</a>, ищите по дате модификации, правам, пробуйте искать .php файлы в тех папках, где их вообще не должно быть. Используйте антивирусы типа ImunifyAV, и т.д. Однако все способы нужно обязательно комбинировать. Например, тот же антивирус обычно не находит и половины вредоносных файлов.</p>
<p><strong>ВАЖНО!</strong> Восстанавливать сайт из резервной копии можно лишь в том случае, если вам достоверно известна дата первоначального взлома, и вы на 100% уверены, что имеющаяся резервная копия абсолютно чиста.  Тоже самое касается и обновлений &#8211; обновлять систему нужно только после того, как будет удалён весь вредоносный код. В противном случае взломы продолжатся, но при этом вы в несколько раз усложните себе, или специалисту, работу по поиску вредоносных файлов.</p>
<p><strong><span style="color: #ff0000;">Если вам нужна помощь с полной проверкой вашего сайта на Битрикс под ключ, с удалением всего вредоносного кода, можно обратиться ко мне, </span><a href="https://remadmin.com/contact/" target="_blank" rel="noopener">по любым удобным контактам</a><span style="color: #ff0000;">. </span></strong></p>
<p><span style="color: #ff0000;">Стоимость услуги составит 100 BYN (≈3000 RUB или $35 USD). </span></p>
<h5>Как закрыть уязвимость и предотвратить взлом сайтов на Битрикс в дальнейшем</h5>
<p>Правильный способ только один &#8211; это <strong>обновить Битрикс до последней, актуальной версии</strong>. Другого способа разработчики не предоставили. И да, для этого потребуется активная лицензия.</p>
<p>Существует и <strong>временное решение</strong>, запретить POST запросы к тем файлам сайта, через которые и происходит взлом. Этот список был вычислен при исследовании логов запросов к пострадавшим сайтам. Однако повторюсь &#8211; решение временное, оно не даёт 100% гарантии, и к тому же &#8220;ломает&#8221; часть функционала админки сайта.</p>
<p>Использовать его следует только тогда, когда прямо сейчас обновиться нет возможности. Для этого в файлы:</p>
<ul>
<li><strong>/bitrix/tools/upload.php</strong></li>
<li><strong>/bitrix/tools/mail_entry.php</strong></li>
<li><strong>/bitrix/modules/main/include/virtual_file_system.php</strong></li>
<li><strong>/bitrix/components/bitrix/sender.mail.editor/ajax.php</strong></li>
<li><strong>/bitrix/tools/vote/uf.php</strong></li>
<li><strong>/bitrix/tools/html_editor_action.php</strong></li>
<li><strong>/bitrix/admin/site_checker.php</strong></li>
</ul>
<p>(у вас могут присутствовать не все из них) в начало, перед <strong>required</strong> добавьте следующий код код:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="php">if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    header("Status: 404 Not Found");
    die();
}</pre>
<p>После обновления Битрикс, этот код из файлов нужно будет удалить.</p>
<h5>UPD 26.05.2023 &#8211; массовый взлом от лица IT ARMY of Ukraine.</h5>
<p>Сегодня снова было взломано огромное количество сайтов, на Битрикс. Была заменена главная страница сайтов, вместо неё можно было наблюдать следующее:</p>
<p><a href="https://remadmin.com/wp-content/uploads/2023/03/oPR37bvP9J.png" rel="lightbox[7218]"><img decoding="async" class="aligncenter size-full wp-image-7274" src="https://remadmin.com/wp-content/uploads/2023/03/oPR37bvP9J.png" alt="" width="1247" height="675" srcset="https://remadmin.com/wp-content/uploads/2023/03/oPR37bvP9J.png 1247w, https://remadmin.com/wp-content/uploads/2023/03/oPR37bvP9J-300x162.png 300w, https://remadmin.com/wp-content/uploads/2023/03/oPR37bvP9J-1024x554.png 1024w, https://remadmin.com/wp-content/uploads/2023/03/oPR37bvP9J-768x416.png 768w" sizes="(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></a></p>
<p>Также при этом полностью были <strong>удалены папки bitrix и upload</strong>. Взломаны были сайты на абсолютно разных версиях битрикс, даже на актуальный.</p>
<p>Однако анализ логов показал, что взлом был осуществлён через бэкдоры, оставленные ранее. То есть, например, хотя битрикс и был обновлён до новой версии, однако перед этим не были найдены все бэкдоры, оставленные на сайте. Через них и произошёл взлом.</p>
<p>В данном конкретном случае единственная возможность восстановить сайт &#8211; это восстановить его из резервной копии. А затем, обязательно найти бэкдоры, которые были заранее размещены на нём. <strong>В противном случае сайт будет взломан повторно</strong>.</p>
<p>Если вам необходима помощь, вы по прежнему можете обратиться за ней ко мне по <a href="https://remadmin.com/contact/">любым контактам с этой страницы</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://remadmin.com/blog/vebmasteru/massovyj-vzlom-sajtov-na-bitriks-2023/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Битрикс: Веб-окружение &#8211; бэкапы на удалённый FTP сервер.</title>
		<link>https://remadmin.com/blog/vebmasteru/bitriks-veb-okruzhenie-bekapy-na-udaljonnyj-ftp-server/</link>
					<comments>https://remadmin.com/blog/vebmasteru/bitriks-veb-okruzhenie-bekapy-na-udaljonnyj-ftp-server/#respond</comments>
		
		<dc:creator><![CDATA[REMADMIN]]></dc:creator>
		<pubDate>Sun, 12 Mar 2023 09:39:27 +0000</pubDate>
				<category><![CDATA[Вебмастеру]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[curlftpfs]]></category>
		<category><![CDATA[Битрикс]]></category>
		<category><![CDATA[Резервное копирование]]></category>
		<guid isPermaLink="false">https://remadmin.com/?p=7211</guid>

					<description><![CDATA[1С-Битрикс: Веб-окружение умеет создавать резервные копии только на тот же сервер, на котором непосредственно расположен сам сайт. Пользы от таких бэкапов мало, так как при серьёзных проблемах с самим сервером, вы их запросто лишитесь. Вообще любые бэкапы нужно всегда делать не просто на другой сервер, а на другой сервер, расположенный в другом дата-центре, и желательно [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>1С-Битрикс: Веб-окружение умеет создавать резервные копии только на тот же сервер, на котором непосредственно расположен сам сайт. Пользы от таких бэкапов мало, так как при серьёзных проблемах с самим сервером, вы их запросто лишитесь. Вообще любые бэкапы нужно всегда делать не просто на другой сервер, а на другой сервер, расположенный в другом дата-центре, и желательно даже в другой стране. Пожары, природные катаклизмы, войны, банкротство провайдера &#8211; это лишь несколько причин, по которым вы можете лишиться и сайта, и его резервных копий, если будете хранить бэкапы там же, где находится и сам сайт.</p>
<p>В сети не мало примеров скриптов, которые копируют бэкапы, созданные Битриксом, или Веб-окружением на удалённый сервер. Но не во всех случаях такой метод уместен, так как, эти бэкапы всё равно создаются и хранятся изначально на самом сервере с сайтом, занимая там место, которого может категорически не хватать.</p>
<p>Можно конечно написать свой собственный скрипт резервного копирования сайта сразу на удалённый FTP, но зачем изобретать велосипед, когда функционал резервного копирования уже есть в Битрикс: Веб-окружении.</p>
<blockquote><p><strong>Итак, задача:</strong> имеем сайт на Битрикс, работающий на VDS под управлением &#8220;1С-Битрикс: Веб-окружение&#8221;. Сайт большой, свободного места на сервере мало, его не достаточно для создания и хранения даже одной резервной копии. Нужно чтобы бэкапы создавались сразу на удалённый FTP сервер и хранились там же.</p></blockquote>
<p>Решить эту задачу я предлагаю максимально просто. Используя стандартный механизм резервного копирования &#8220;1С-Битрикс: Веб-окружение&#8221; в стандартную папку, в которую мы смонтируем удалённый FTP сервер.</p>
<h5>Монтируем удалённый ftp сервер, как локальную папку.</h5>
<p>Устанавливаем curlftpfs:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="powershell">yum install curlftpfs</pre>
<p>Узнаём id пользователя bitrix в системе. Обычно это 600:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="powershell">id -u bitrix</pre>
<p>В файл /etc/fstab добавляем строку:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="bash">curlftpfs#ftp://USER:PASSWORD@SERVER/ /home/bitrix/backup/archive fuse rw,uid=600,allow_other,user 0 1</pre>
<p>Где:</p>
<ul>
<li><strong>USER:PASSWORD@SERVER</strong> &#8211; данные удалённого FTP сервера.</li>
<li><strong>/home/bitrix/backup/archive</strong> &#8211; стандартная папка, в которую Веб-окружение делает резервные копии.</li>
<li><strong>600</strong> &#8211; id пользователя bitrix, который мы узнали выше.</li>
</ul>
<p>Монтируем:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="powershell">mount -a</pre>
<p>Проверяем, что всё примонтировалось корректно:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="powershell">df -h</pre>
<p>На этом этапе, у нас получилось так, что всё, что попадает в папку /home/bitrix/backup/archive хранится уже не на локальном сервере, а на удалённом FTP. И на локальном сервере не занимает абсолютно никакого места. Можете проверить этот момент, загружая в эту папку какие-нибудь файлы на сервере с сайтом. Они должны сразу же быть видны на удалённом FTP сервере. И наоборот.</p>
<h5>Настраиваем резервное копирование средствами &#8220;1С-Битрикс: Веб-окружение&#8221;</h5>
<p>Здесь всё просто и стандартно.</p>
<p>В меню &#8220;1С-Битрикс: Веб-окружение&#8221; выбираем пункт <strong>6. Configure pool sites</strong>:</p>
<p><a href="https://remadmin.com/wp-content/uploads/2023/03/nl4C0yYGkp.png" rel="lightbox[7211]"><img decoding="async" class="aligncenter size-full wp-image-7213" src="https://remadmin.com/wp-content/uploads/2023/03/nl4C0yYGkp.png" alt="Битрикс веб окружение" width="632" height="261" srcset="https://remadmin.com/wp-content/uploads/2023/03/nl4C0yYGkp.png 632w, https://remadmin.com/wp-content/uploads/2023/03/nl4C0yYGkp-300x124.png 300w" sizes="(max-width: 632px) 100vw, 632px" /></a></p>
<p>Затем снова пункт <strong>6. Change backup settings on site</strong>:</p>
<p><a href="https://remadmin.com/wp-content/uploads/2023/03/uQ0F1G1xaJ.png" rel="lightbox[7211]"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-7214" src="https://remadmin.com/wp-content/uploads/2023/03/uQ0F1G1xaJ.png" alt="Битрикс веб окружение" width="620" height="263" srcset="https://remadmin.com/wp-content/uploads/2023/03/uQ0F1G1xaJ.png 620w, https://remadmin.com/wp-content/uploads/2023/03/uQ0F1G1xaJ-300x127.png 300w" sizes="(max-width: 620px) 100vw, 620px" /></a></p>
<p>А дальше включаем резервное копирование сайта, настраиваем расписание, и т.д. Всё стандартно и в стандартную папку. Подробнее о настройке резервного копирования можно почитать на <a href="https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=37&amp;LESSON_ID=8857&amp;LESSON_PATH=3908.8809.8847.8857" rel="nofollow noopener" target="_blank">сайте Битрикса</a>.</p>
<p>На этом наша задача полностью решена. Теперь &#8220;1С-Битрикс: Веб-окружение&#8221; будет создавать резервные копии по заданному расписанию, эти резервные копии будут храниться на удалённом FTP сервере, и не будут занимать никакого места на сервере с сайтом.</p>
<p>Аналогично можно настроить резервные копии и любых других систем, которые умеют создавать бэкапы только локально.</p>
<p>Если вы в поисках, где взять удалённый FTP сервер, для хранения резервных копий за адекватную стоимость &#8211; <a href="https://remadmin.com/contact/" target="_blank" rel="noopener">обращайтесь</a>, подберу для вас варианты практически любого объёма.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://remadmin.com/blog/vebmasteru/bitriks-veb-okruzhenie-bekapy-na-udaljonnyj-ftp-server/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Команда Find в Linux &#8211; как найти и удалить файлы и папки</title>
		<link>https://remadmin.com/blog/linux/find-v-linux/</link>
					<comments>https://remadmin.com/blog/linux/find-v-linux/#respond</comments>
		
		<dc:creator><![CDATA[REMADMIN]]></dc:creator>
		<pubDate>Fri, 10 Mar 2023 11:48:38 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[ssh]]></category>
		<guid isPermaLink="false">https://remadmin.com/?p=7197</guid>

					<description><![CDATA[Команда find предназначена для поиска файлов и папок в файловой системе Linux. Она может быть использована для поиска файлов по имени, типу, размеру, дате изменения и другим критериям. Команда find может быть очень полезной в различных сценариях, например, при поиске конкретного файла в большой файловой системе или при поиске файлов, которые были изменены в течение [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Команда <strong>find</strong> предназначена для поиска файлов и папок в файловой системе Linux. Она может быть использована для поиска файлов по имени, типу, размеру, дате изменения и другим критериям. Команда <strong>find</strong> может быть очень полезной в различных сценариях, например, при поиске конкретного файла в большой файловой системе или при поиске файлов, которые были изменены в течение определенного периода времени.</p>
<h5>Как использовать команду find</h5>
<p>Команда &#8220;find&#8221; имеет следующий синтаксис:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="css">find [path] [expression]</pre>
<p>где &#8220;path&#8221; &#8211; это путь к каталогу, в котором вы хотите искать файлы, а &#8220;expression&#8221; &#8211; это выражение, которое определяет критерии поиска.</p>
<h5>Поиск по типу</h5>
<p>Параметр <strong>-type</strong> позволяет искать файлы по типу, которые бывают следующих видов:</p>
<ul>
<li><strong>f</strong> – простые файлы.</li>
<li><strong>d</strong> – каталоги.</li>
<li><strong>l</strong> – символические ссылки.</li>
<li><strong>b</strong> – блочные устройства (dev).</li>
<li><strong>c</strong> – символьные устройства (dev).</li>
<li><strong>p</strong> – именованные каналы.</li>
<li><strong>s</strong> – сокеты.</li>
</ul>
<p>Например, вот так, будут найдены только каталоги внутри текущего:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="powershell">find . -type d</pre>
<h5>Поиск по имени</h5>
<p>Для поиска по имени используется параметр <strong>-name</strong>. Например, команда для поиска всех файлов с расширением .txt в каталоге /home/ будет выглядеть так:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="powershell">find /home/ -type f -name "*.txt"</pre>
<p>Найти все папки с именем my_folder в текущем каталоге можно так:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="powershell">find . -type d -name "my_folder"</pre>
<h5>Поиск по размеру файла</h5>
<p>Для поиска по размеру используется параметр <strong>-size</strong>.</p>
<ul>
<li><strong>+</strong> &#8211; Поиск файлов больше заданного размера</li>
<li><strong>&#8211;</strong> &#8211; Поиск файлов меньше заданного размера</li>
<li>Отсутствие знака означает, что размер файлов в поиске должен полностью совпадать.</li>
</ul>
<p>Единицы измерения указываются так:</p>
<ul>
<li><strong>c</strong> — Байт</li>
<li><strong>k</strong> — Кбайт</li>
<li><strong>M</strong> — Мбайт</li>
<li><strong>G</strong> — Гбайт</li>
</ul>
<p>Например, найти все файлы, в каталоге /home/ с размером больше 100 Мбайт можно так:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">find /home/ -size +100M</pre>
<h5>Поиск пустых файлов и каталогов</h5>
<p>Для поиска пустых папок и файлов используется параметр <strong>-empty</strong>. Например, найдём все пустые файлы и папки в каталоге /home/:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="powershell">find /home/ -empty</pre>
<h5>Поиск файлов по дате</h5>
<p>Доступны следующие параметры:</p>
<ul>
<li><strong>-mtime</strong> &#8211; Время изменения файла. Указывается в днях.</li>
<li><strong>-mmin</strong> &#8211; Время изменения в минутах.</li>
<li><strong>-atime</strong> &#8211; Время последнего обращения к объекту в днях.</li>
<li><strong>-amin</strong> &#8211; Время последнего обращения в минутах.</li>
<li><strong>-ctime</strong> &#8211; Последнее изменение владельца или прав на объект в днях.</li>
<li><strong>-cmin</strong> &#8211; Последнее изменение владельца или прав в минутах.</li>
</ul>
<p>Например, найдём все файлы, изменённые в каталоге /home/ за последние 60 минут:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="powershell">find /home/ -cmin -60</pre>
<p>А если мы наоборот, хотим найти все файлы, изменённые раньше, чем час назад, то в команде минус меняем на плюс:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="powershell">find /home/ -cmin +60</pre>
<p>Можно также вывести <strong>список файлов с сортировкой по дате модификации</strong>.</p>
<p>Например, вот эта команда выведет все файлы из каталога /home/ с сортировкой по дате модификации. Файлы изменённые недавно, окажутся в начале списка:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="powershell">find /home/ -type f -printf '%TY-%Tm-%Td %TT %p\n' | sort -r</pre>
<p>А вот так, мы изменим сортировку, то есть последние изменённые файлы окажутся в конце списка:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="powershell">find /home/ -type f -printf '%TY-%Tm-%Td %TT %p\n' | sort -n</pre>
<p>А так, мы можем ограничить количество выводимых результатов. Например вывести только 50:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="powershell">find /home/ -type f -printf '%TY-%Tm-%Td %TT %p\n' | sort -n | head -n 50</pre>
<h5>Поиск по пользователю или группе</h5>
<p>Для поиска файлов принадлежащих определённому пользователю, или группе, используются параметры <strong>-user</strong> и <strong>-group</strong>. Например, найдём в каталоге /home/ все файлы, принадлежащие пользователю admin:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="powershell">find /home/ -user admin</pre>
<h5>Поиск по правам доступа</h5>
<p>Для поиска по правам доступа используется параметр <strong>-perm</strong>. Например, найдём все файлы с правами 777 в каталоге /home/:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="powershell">find /home/ -perm 777</pre>
<h5>Поиск с использованием логических операторов</h5>
<p>При поиске можно использовать логические операторы:</p>
<ul>
<li><strong>-a</strong> &#8211; Логическое И. Объединяет несколько критериев поиска.</li>
<li><strong>-o</strong> &#8211; Логическое ИЛИ. Ищем на основе одного из критериев поиска.</li>
<li><strong>-not</strong> или <strong>!</strong> &#8211; Логическое НЕ.</li>
</ul>
<p>Например, найдём в каталоге /home/ все файлы начинающиеся на sess_ или заканчивающиеся на tmp:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="powershell">find /home/ -type f -name "sess_*" -o -name "*tmp"</pre>
<h5>Исключить из поиска определённые папки</h5>
<p>При поиске с помощью команды find, можно исключать определённые каталоги. Например мы хотим найти все файлы с расширением .php, изменённые за последние 2 дня во всех папках сайта, за исключением папок /bitrix/managed_cache/ и /bitrix/cache/:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="powershell">find /home/www/ -type f -name "*.php" -mtime -1 -not -path "*/bitrix/managed_cache/*" -not -path "*/bitrix/cache/*"</pre>
<h5>Как удалить найденные файлы</h5>
<p>Для удаления найденных файлов можно использовать параметр <strong>-delete</strong>, дописав его в конце команды поиска.</p>
<p>Например, удалим из папки /tmp/ все файлы старше 10 дней:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="powershell">find /tmp/ -type f -mtime +10 -delete</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://remadmin.com/blog/linux/find-v-linux/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>