Архивы по Категориям: Linux & Unix

По ошибке выполнил chmod -R user:user /* — инструкция как вернуть назад

Когда я это сделал, сидел минут 5 не понимаю что делать и куда бежать, хотелось плакать)))

У меня на сервере — ВМ установлена Debian и панелька ISP Manager Lite, но потребовалось изменить владельца одной директории, захожу в консоль, перехожу в директорию и ввожу бездумно команду:

chmod -R user:user /*

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

Через пару минут легли все сайты.

Помогли друзья, специалисты хостинга itservices.su сделали мне аналогичный моему сервер с Debian той же сборки и максимально похожим набором софта внутри.

Друг написал пару скриптов:

Первый парсит разрешения всех файлов и папок в файл:

find -P / -not -path "/sys/*" -not -path "/proc/*" -printf '%u.%g|%p\n'> /perm.dmp

Дальше полученный файл подсовываем проблемной системе и запускаем скрипт, который применяет разрешения для файлов и папок из файла

for i in $(cat perm.dmp);do chown ${i%|*} "${i#*|}";done

Скрипт написан за 3 минуты и имеет ряд недостатков, но сайты поднять он мне помог)

  • Проблемы с путями где есть пробел в имени файла
  • Судя по всему есть ограничение если очень много строк в файле, мне пришлось разбить полученный файл на блоки по 20 000 строк

формат файла вот такой:

root.root|/
root.root|/perm.dmp
root.root|/var
root.root|/var/spool
root.root|/var/spool/cron
daemon.daemon|/var/spool/cron/atjobs
daemon.daemon|/var/spool/cron/atjobs/.SEQ
daemon.daemon|/var/spool/cron/atspool
root.crontab|/var/spool/cron/crontabs
root.crontab|/var/spool/cron/crontabs/root
root.root|/var/spool/rsyslog
Debian-exim.Debian-exim|/var/spool/exim4
Debian-exim.Debian-exim|/var/spool/exim4/input
Debian-exim.Debian-exim|/var/spool/exim4/msglog
Debian-exim.Debian-exim|/var/spool/exim4/db
root.root|/var/spool/mail
root.root|/var/log

Всем спасибо! Читать далее »

Рекурсивное применение chown отдельно на директории и файлы

2015-04-03_101233

Для рекурсивного применения разрешений в Linux можно применить команды:

Назначить всем папкам права drwxr-xr-x на запись и выполнение

find /path/to/base/dir -type d -exec chmod 755 {} +

Рекурсивно назначить всем файлам в папке права -rw-r—r— на чтение:

find /path/to/base/dir -type f -exec chmod 644 {} +

Или, если очень много файлов, то можно так:

chmod 755 $(find /path/to/base/dir -type d)
chmod 644 $(find /path/to/base/dir -type f)

Or, to reduce chmod spawning:

find /path/to/base/dir -type d -print0 | xargs -0 chmod 755
find /path/to/base/dir -type f -print0 | xargs -0 chmod 644

Читать далее »

SLES — Запуск скрипта .sh без проверки версии ядра OS

Просто перед скриптом пишем

uname26

26, в нашем случае, это версия ядра, поддерживаемая скриптом.

 

Настройка sendmail для отправки рутовых уведомлений

В общем мне надоело ходить по сервакам и читать некоторые логи, знаю что можно получать стандартные оповещения отправляемые на локальный адрес хоста руту. Что мы получаем в итоге: Нам на почту будут приходить уведомления о выполняемых Crontab и их статусе, будем получать техническую информацию о состоянии систем, служебные уведомления различных программ.

Эта инструкция применима как к опубликованным Web серверам так и к внутренним локальным серверам (ниже инструкция для FreeBSD 8.2).

Все по порядку, проверяем установлен ли sendmail (далее SM):

[cc lang=’bash’ ]

service sendmail status
sendmail_submit is running as pid 902.
sendmail_clientmqueue is running as pid 913.

[/cc]

Это означает что сервис SM присутствует и запущен. Если не запущен то делаем start. Если не установлен то скорее всего должен присутствовать другой MTA (Mail Transfer Agent), например Postfix (как в suse enterprise), его мы настроим в другой статье.

Создаем на своем почтовом сервере (например Exchange) почтовый ящик или группу рассылки для того чтобы на нее отправлять почту. Я предпочитаю делать рассылки именно через группы, для того чтобы можно было подписывать и других людей на оповещения.

В Unix системах существуют так называемые алиасы (alisses) — нужны они для сопоставления имен и адресов. Так как система отправляет всю почту через MTA в локальную папку пользователя root, то нам нужно просто перенаправить всю рутовую почту на алиас (другой почтовый адрес). Заходим в папку /etc/mail/ и открываем на редактирование файл alises.

/etc/mail/

Добавляем строчки как в скриншоте (levkin можно заменить на что угодно): Читать далее »

Команды мониторинга FreeBSD

Мониторинг FreeBSDПонимаю что баян, но не мог удержаться чтобы не сохранить у себя в блоге список нужных и полезных команд для мониторинга процессов FreeBSD. Не для кого не секрет, что эта операционная система считается очень стабильной, производительной и безопасной Unix системой для интернет приложений. А так же не секрет то, что ее настройка достаточно сложная задача, и не только потому что это происходит только в консоли. Недавно пришлось столкнуться с настройкой хостинга под один ответственный сайт, одним из этапов настройки был перенос большого количества данных с диска на диск и для этого я использовал:

cp [ -f ] [ -h ] [ -i ] [ -p ] [ -- ] { -r | -R } исходная_директория ... целевая_директория

Но при запуске этой команды она не выводит прогресс копирования файлов, поэтому можно воспользоваться некоторыми командами для мониторинга нагрузки на файловую подсистему или запустить диспетчер задач для мониторинга процессов итд. Вот список некоторых: Читать далее »

FreeNas. watchdog timeout

Привет, для тех кто не знает что такое NAS и FreeNas я расскажу об этом позже. А сейчас поделюсь опытом в устранении одной наиболее известной ошибке в работе этого устройства.

Иногда при больших нагрузках на сетевой интерфейс FreeNAS виснет (перестает отвечать на запросы по сети). В консоли в этос случае присутствуют ошибка:

В консоли FreeNAS
msk0: watchdog timeout (missed Tx interrupts) - - recovering

Выглядит это так:

watchdog timeout

Так, же при попытки инициализации контроллера, ни чего не выйдет. Наши иностранные коллеги чего только не пробуют, собственно как и русские сисадмины.

И так вот примеры решений:

  1. Отключить поддержку ACPI в биосе. Но тогда, например у меня, возникли проблемы с USB клавиатурой. Принажатии в консоли любой цифры, ее ввод автоматически повторялся неопределенное время и приходилось рестартовать FreeNAS. Но можно использовать и PS2 клаву. Читать далее »

Debian|Сброс пароля для root пользователя

Привет коллеги! Сегодня понадобилось сбросить пароль для root пользователя в Unix системе Debian т.к. его все напрочь забыли. И так:

1) Перезагружаем Debian.

2) В момент отображения grub-boot loader screen выбираем вторую строчку в которой написано загрузка в single user mode и жмем e для редактирования параметров загрузки.

3) В следующем окне выбираем строчку, начинающуюся со слова kernel, встаем на нее и снова жмем e чтобы ее отредактировать.

4) Перемещаемся в конец строки и через пробел дописываем init=/bin/bash, затем жмем Enter чтобы выйти из режима редактирования.

5) Снова перемещаемся на строчку, начинающуюся с Kernel и жмем b для загрузки в Single User mode. Проделанные модификации загрузчика позволят произвести загрузку ядра и запустить /bin/bash в рамках стандартной загрузки. Это позволит дать нам привилегии рута, а так же сменить пароль на root.

6) Вводим следующий код: Читать далее »