Как вернуть root права при неправильном присвоении прав на системные папки в FreeBSD

FreeBSD

Не так давно, создавая пользователя для удаленного подключения по ssh на своем сервере FreeBSD, я в виду невнимательности и частичной занятости на работе передал рекурсивно права на ново зарегистрированного пользователя. Суть команды была примерно в следующем:

#su root chown -R newuser:wheel /

Через некоторое время мой ssh терминал отключился. Выяснить в чем причина удаленно – не получилось. Вернувшись домой (сервер у меня расположен дома) и подключив монитор с клавиатурой к серверной машине я увидел следующее: система FreeBSD частично загружалась, однако всяческая попытка залогиниться под root не увенчалась успехом. Терминал настойчиво выдавал следующие ошибки:

/etc/login.conf «Permission denied for root»

Перезапустив машину в Single User mod я видел следующее: часть системных папок принадлежало новому пользователю, часть root. Проверить это можно командой:

#ls –l /etc/login.conf

В данном случае вы увидите следующее:

-rw-r—r—r—  18 newuser  wheel    512 29 авг 17:10 /etc/login.conf

Права доступа (аналог chmod 644), пользователь, группа, размер в байтах, дата последнего изменения, имя папки\файла

Для изменения пользователя к папке в FreeBSD и других Unix-подобных системах необходимо выполнить следующие действия:

  • Загрузить машину в Single User mod
  • Производим проверку целостности файловой системы и интерактивное восстановление: #fsck -y
  • Обновляем монтирование файловых систем по корню:

#mount -u /

  • Рекурсивно передаем все права на пользователя root по корню системы:

#chown -R root:wheel /

  • Перезагружаем машину:

#reboot

В принципе данных мероприятий достаточно для того, чтобы на FreeBSD опять заработал SSH доступ, и появилась вообще возможность войти в системы. Т.к. у меня на сервере установлен apache в связке с php и MySQL, то мне пришлось вернуть права на СуБД, сделал я это командой:

#chown -R mysql:mysql /var/db/mysql

И перезагрузкой apache сервера:

#apachectl restart

Для того, чтобы убедиться, что все нормально еще раз перезагрузил Freebsd и увидел последнюю не критичную для работы моего сервера ошибку:

can not chdir var/spool/clientmqueue permission denied freebsd

Решение очень простое:

#chown -R root:smmsp /var/spool
#chmod 770 /var/spool
#chmod 770 /var/spool/clientmqueue

 

Выходит, плохой из меня системный администратор, т.к. на решение данной проблемы я потратил два с половиной вечера. В любом случае ценой моей невнимательности явилась данная статья о том, как не надо давать права пользователям в OS FreeBSD и о том, как вернуть все на круги своя без загрузочных дисков в стиле Live CD и т.п.

Если у вас есть дополнения к данной статье — добро пожаловать в комментарии.

Понравилась статья? - поделись с друзьями!

Категория: ВебДев