Как запретить удаление файла в Linux, даже для Root

В Unix-подобных операционных системах, включая Linux, root — это имя учетной записи или пользователя, который по умолчанию может изменять все каталоги и файлы в системе. В этой статье мы покажем, как сделать каталоги или файлы в Linux недоступными для удаления даже пользователем root.

Чтобы сделать файл неуязвимым для любого пользователя системы, включая root, вам необходимо сделать его неизменяемым с помощью команды chattr. Эта команда изменяет атрибуты файлов в файловой системе Linux.

Приведенная ниже команда делает файл /backups/passwd файл неизменяемым. Это означает, что файл нельзя изменить любым образом: его нельзя удалить или переименовать. Вы даже не можете создать ссылку на него, и никакие данные также не могут быть записаны в файл.

Обратите внимание, что вам нужны привилегии суперпользователя, чтобы установить или удалить этот атрибут:

sudo chattr +i /backups/passwd

или

sudo chattr +i -V /backups/passwd

Для просмотра атрибутов файла используется команда lsattr, как показано ниже:

lsattr /backups/passwd

Теперь попробуйте удалить неизменяемый файл, как от имени обычного пользователя, так и как root.

rm /backups/passwd
sudo rm /backups/passwd

Используя флаг -R, вы можете рекурсивно изменять атрибуты каталогов и их содержимого.

sudo chattr +i -RV /backups/

Чтобы снова изменить файл, используйте флаг -i, чтобы удалить вышеуказанный атрибут, как показано ниже.

sudo chattr -i /backups/ passwd

10 полезных утилит для мониторинга Linux-сервера

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

Читать далее «10 полезных утилит для мониторинга Linux-сервера»

УСТАНОВКА PERLBREW И УПРАВЛЕНИЕ ВЕРСИЯМИ PERL 5 В CENTOS 7

Perl 5 – это зрелый, полнофункциональный язык программирования. Он используется в проектах всех типов, включая критически важные бизнес-системы. Программный пакет Perlbrew позволяет устанавливать, удалять и переключаться между версиями языка программирования Perl 5.

Perlbrew устанавливает Perl в домашнем каталоге. Каждая установленная версия Perl не зависит от других. Это позволяет протестировать код в нескольких версиях Perl. Perlbrew по умолчанию включает пакет Perl для текущей операционной системы (обычно устаревший).

Этот мануал поможет установить Perlbrew и освоить управление версиями Perl 5.

Читать далее «УСТАНОВКА PERLBREW И УПРАВЛЕНИЕ ВЕРСИЯМИ PERL 5 В CENTOS 7»

Mysql 5.7 группировка по старому

Многие столкнулись с проблемой, что в версии MySQL 5.7 не возможно использовать привычную группировку GROUP BY и это сильно мешает при переходе старых сайтов на новую базу данных.

Но решение есть, открываем файл my.cfg и добавляем в него следующую строчку:

sql-mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

и перезагружаем базу

systemctl restart mysqld

Настоящий стресс-тест процессора для Linux

СТРЕСС ТЕСТ
CENTOS

Чтобы максимально загрузить процессор компьютера или сервера на Linux, нужно воспользоваться программой stress. Пакет есть во всех пакетных менеджерах. В примере ниже я использую CentOS

yum install stress

Программа очень маленькая, поэтому установится очень быстро.

Чтобы запустить стресс-тест в linux и нагрузить наш CPU на 100%, нужно выполнить команду:

stress --cpu 8

Где 8 – это количество ядер центрального процессора.

Стресс-тест запускается моментально. Для его остановки давим кнопки Ctrl+С.

Установка DLNA на домашний сервер

DLNA-сервер позволяет организовать удобный просмотр медиа контента по протоколу DLNA/UPnP и его централизацию. В одной домашней сети сможете просматривать видео, фото и слушать музыку по сети, даже через wi-fi.

Репозиторий EPEL:
yum install epel-release

cd /opt/ — в этот каталог обычно закачивают инсталяционные пакеты теперь воспользуемся пакетом wget если его нет то ставим yum install wget выполним команду

Репозиторий NUX (здесь minidlna — сервер, транслирующий скаченный контент в локальную сеть):
rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
rpm -Uvh http://li.nux.ro/download/nux/dextop/el6/i386/nux-dextop-release-0-3.el6.nux.noarch.rpm

wget http://downloads.sourceforge.net/project/minidlna/minidlna/1.0.24/minidlna_1.0.24_src.tar.gz

в каталоге появится файл minidlna_1.0.24_src.tar.gz распакуем его

tar -zxvf ./minidlna_1.0.24_src.tar.gz

появится каталог minidlna-1.0.24 заходим в него

Читать далее «Установка DLNA на домашний сервер»

Просматриваем список пользователей в Linux

Полный список пользователей

cat /etc/passwd

Если ИД у пользователя имеет меньше четырех цифр, то это системные данные, в которые вносить изменения крайне нежелательно. Дело в том, что они создаются самой ОС в процессе установки для обеспечения наиболее безопасной работы большинства сервисов.

Читать далее «Просматриваем список пользователей в Linux»

Настройка синхронизация времени по NTP в CentOS

Вы можете настроить автоматическую синхронизацию времени на вашем сервере с внешним NTP (Network Time Protocol) сервером. Для этого нужно установить сервис ntp. Например, в CentOS 7 установка выполняется через yum:

yum install ntp -y

После установки, нужно запустить сервис ntpd и добавить его в автозагрузку:

service ntpd start
или
systemctl start ntpd.service
systemctl enable ntpd.service

Добавим в автозагрузку

chkconfig --levels 235 ntpd on

В файле /etc/ntp.conf нужно указать сервера, с которыми нужно синхронизировать время:

server 0.pool.ntp.org
server 1.pool.ntp.org
server 2.pool.ntp.org

Синхронизация времени выполняется последовательно. Если недоступен первый NTP сервер, идет обращение ко второму и т.д.

Можно вручную синхронизировать время с указанным NTP сервером командой:

ntpdate 192.168.1.100

По умолчанию, ntpd включает в системе режим “11 minute mode”, то есть время будет синхронизироваться каждые 11 минут. Если вы не можете использовать демон ntpd, вы можете настроить синхронизацию времени по крону, добавьте в крон следующую команду:

/usr/sbin/ntpdate 0.centos.pool.ntp.org

MySQL: вставить запись, если она не существует в таблице

CREATE TABLE `table_listnames` (
  `id` int(11) NOT NULL auto_increment,
  `name` varchar(255) NOT NULL,
  `address` varchar(255) NOT NULL,
  `tele` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB;

Вставить запись:

Читать далее «MySQL: вставить запись, если она не существует в таблице»