deadlymercury
An original idea. That can't be too hard. The library must be full of them. (c)Stephen Fry
Жалоба - "не работает plesk (500 internal server error), спасите-помогите!"
Ну, на момент, когда руки дошли - посмотреть, что там случилось с плеском, не получилось. Контейнер не отвечал в принципе и не пинговался. Захожу внутрь - не запущен сетевой интефрейс. Пожал плечами, запустил. Вроде там что-то про "ребут поможет?" в заявке было, ну да ладно. Так, а вот и ошибка плеска. А вот лог службы, которая отвечает за его работу:

[root@3346 /]# tail /var/log/sw-cp-server/error_log
/usr/share/sw-cp-server/applications-conf.sh: line 4: /etc/sw-cp-server/applications.d/*.conf: Permission denied
Cannot find config item ["global/SERVERsocket==:8443", ".php", 0]
2014-08-06 10:16:57: (mod_fastcgi.c.1068) the fastcgi-backend /usr/bin/sw-engine-cgi -c /usr/local/psa/admin/conf/php.ini -d auto_prepend_file=auth.php3 -u psaadm failed to start:
2014-08-06 10:16:57: (mod_fastcgi.c.1072) child exited with status 1 /usr/bin/sw-engine-cgi -c /usr/local/psa/admin/conf/php.ini -d auto_prepend_file=auth.php3 -u psaadm
2014-08-06 10:16:57: (mod_fastcgi.c.1075) If you're trying to run your app as a FastCGI backend, make sure you're using the FastCGI-enabled version.
If this is PHP on Gentoo, add 'fastcgi' to the USE flags.
2014-08-06 10:16:57: (mod_fastcgi.c.1171) [ERROR]: spawning fcgi failed.

Хм, понятного мало, но хоть понятно, как воспроизвести :)
[root@3346 /]# /usr/bin/sw-engine-cgi -c /usr/local/psa/admin/conf/php.ini -d auto_prepend_file=auth.php3 -u psaadm
Could not open Repository at "/etc/sw/keys": Cannot open file
PHP Warning: file(/etc/psa/psa.conf) [function.file]: failed to open stream: Permission denied in /usr/local/psa/admin/plib/class.Conf.php3 on line 27
Content-type: text/html
Unable to read Control Panel configuration file: date_default_timezone_get() [function.date-default-timezone-get]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Volgograd' for 'VOLST/4.0/DST' instead

Эээ... эээ? Не, с правами к конфигу psa.conf все в порядке, а вот права на /etc/psa/ - 0664. Странно. Ладно, поправим. Так, а что это за ругать на /etc/sw/keys/? С keys опять все в порядке, а вот /etc/sw/ - права 0664. Хм, странно, но поправим. А еще на что-то ругань была... А, "/etc/sw-cp-server/applications.d/*.conf". Хм, и опять с конфигами все в порядке. А /etc/sw-cp-server/ - 0664. Окей, попра...
"Штирлиц долго смотрел в одну точку... Потом в другую... - Двоеточие! - наконец-то догадался Штирлиц."

Ну да, в /etc/ все обладает правами 0664. Не удивительно, что ничего не работает :) Ну что ж, поправим, подглядев у соседнего сервера.

[root@3346 /]# find /etc -maxdepth 1 -type d -exec chmod 0755 {} \;
[root@3346 /]# chmod 0700 /etc/cron.d
[root@3346 /]# chmod 0750 /etc/audisp /etc/audit
[root@3346 /]# find /etc -maxdepth 1 -type f -exec chmod 0644 {} \;
[root@3346 /]# chmod 0600 /etc/securetty /etc/shadow- /etc/passwd- /etc/.pwd.lock /etc/group- /etc/inittab
[root@3346 /]# chmod 0400 /etc/shadow
[root@3346 /]# chmod 0440 /etc/sudoers
[root@3346 /]# chmod 0640 /etc/libaudit.conf

Вроде все? Ребут для проверки и... все лежит, ничего не запускается. Что такое?
читать дальше

А, ну да, про линки забыл. Из-за них и не работает init, из-за этого и после ребута на сервере отсутствовала сетка.
[root@3346 /]# chmod 0755 /etc/rc.d/*
[root@3346 /]# chmod 0644 /usr/share/zoneinfo/Europe/Volgograd
[root@3346 /]# chmod 0644 /var/named/run-root/etc/named.conf
[root@3346 /]# chmod 0644 /usr/local/Zend/etc/php.ini
[root@3346 /]# chmod 0644 /var/named/run-root/etc/rndc.conf

Вот теперь все работает :) В любом случае до сих пор не известно, что именно сподвигло человека на выполнение команды вида " chmod 0664 /etc/* ".

@темы: будни, маразмы