FAQs - CentOS 7 - CentOS Wiki

Поломалась база RPM

При обновлении выдает такие сообщения:
 

[root@centos ~]# yum update
ошибка: rpmdb: BDB0113 Thread/process 13709/140468900747072 failed: BDB1507 Thread died in Berkeley DB library
ошибка: ошибка(5) db-30973 из dbenv->failchk: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery
ошибка: невозможно открыть индекс Packages используя db5 -  (-30973)
ошибка: не могу открыть базу данных Packages в /var/lib/rpm
CRITICAL:yum.main:

Error: rpmdb open failed

 

Решение

rm -f /var/lib/rpm/__db.*
rpm -vv --rebuilddb

Проблемы при обновлении CentOS 7.6 -> 7.7

При выполнении yum update - вываливается ошибка

Error: Package: 1:grub2-tools-2.02-0.65.el7.centos.2.x86_64 (@CentOS-Updates)

Лечится

yum remove grub2 grub2-common grub2-pc grub2-pc-modules grub2-tools grub2-tools-efi grub2-tools-extra grub2-tools-minimal

yum install grub2 grub2-common grub2-pc grub2-pc-modules grub2-tools grub2-tools-efi grub2-tools-extra grub2-tools-minimal

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

yum list installed

У меня сайт использует nginx в качестве веб-сервера. При включенном selinux не работает и в лог /var/log/audit/audit.log пишет:

type=AVC msg=audit(1493885790.745:101): avc:  denied  { name_connect } for  pid=950 comm="php-fpm" dest=6379 
scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:redis_port_t:s0 tclass=tcp_socket

type=SYSCALL msg=audit(1493885790.745:101): arch=c000003e syscall=42 success=no exit=-13 a0=6 a1=7f2ba3c67060 
a2=10 a3=590ae35e items=0 ppid=684 pid=950 auid=4294967295 uid=995 gid=993 euid=995 suid=995 fsuid=995 egid=993 
sgid=993 fsgid=993 tty=(none) ses=4294967295 comm="php-fpm" exe="usr/sbin/php-fpm" 
subj=system_u:system_r:httpd_t:s0 key=(null)

Посмотреть политики можно командой 

getsebool -a

abrt_anon_write --> off
abrt_handle_event --> off
abrt_upload_watch_anon_write --> on
antivirus_can_scan_system --> off
antivirus_use_jit --> off
auditadm_exec_content --> on
authlogin_nsswitch_use_ldap --> off
...

 

Попробуйте для начала разрешить доступ к портам системы:

setsebool -P httpd_can_network_connect on

На CentOS 7 работает сервер баз данных postgresql. В pg_hba.conf доступ разрешен, но selinux не пускает.

[root@6c ~]# tail -f /var/log/audit/audit.log

Попробуйте выставить разрешения.

setsebool -P httpd_can_network_connect_db 1
setsebool -P httpd_can_network_db 1

В Centos 7 не могу найти команды semanage?

Semanage инструмент для управления политиками в selinux. Чтобы установить его, выполните:

yum install policycoreutils-python

 

Selinux, по умолчанию, разрешает файлы для веб сервера хранить в определенных местах, например /var/www/html. У меня размер диска под корень меньше чем раздел для домашних директорий, как selinux донести, что корень сайта в другом будет месте?

Создаем новую директорию, для примера:

mkdir /var/www
mkdir /var/www/html

далее в конфигурационном файле вашего веб сервера (apache, nginx ...) прописываете путь до новой директории и:

setsebool -P httpd_enable_homedirs 1
chcon -R -t httpd_sys_content_t /home/www/html

Полезность 

Новая проблема, форма на сайте загружает файлы на сервер в папку - /home/www/html/upload/files, но включенный selinux запрещает это сыпя проклятиями в лог /var/log/audit/audit.log

Укажем selinux папку, в которую разрешено из вне закачивать файлы:

chcon -R -h -t httpd_sys_script_rw_t /home/www/html/upload/files

Как перезапустить GNOME 3

service gdm status
service gdm stop
service gdm start

Как перезапустить X-ы

Для начала перейдите в консоль (на F1 работают X) - например Ctrl+Alt+F2.

Залогинтесь под root.

init 3 && init 5

то есть - погасить иксы и, если успешно, запустить иксы.

Как в консоли centos 7 настроить сеть?

Можно использовать утилиту nmtui

Установить утилиту:

yum install NetworkManager-tui

Cписок сетевых адаптеров можно получить командой:

nmcli device status

Полезная статья на habrahabr

Мониторинг диска в консоли centos 7

yum install smartmontools

Информация о диске:

smartctl -i /dev/sda

Включить S.M.A.R.T. диска

smartctl -i /dev/sda

Просмотр значений S.M.A.R.T. для устройства /dev/sda

smartctl -A /dev/sda

Проверка "по быстрому"

smartctl -H /dev/sda

CentOS 7 как локаль русскую сделать

Имеем:

# localectl
   System Locale: LANG=en_US.UTF-8
       VC Keymap: us
      X11 Layout: n/a

даем команды:

localectl set-locale LANG=ru_RU.UTF-8
localectl set-keymap ru

получаем:

# localectl
   System Locale: LANG=ru_RU.UTF-8
       VC Keymap: ru
      X11 Layout: ru,us
       X11 Model: pc105
     X11 Options: terminate:ctrl_alt_bksp,grp:shifts_toggle,grp_led:scroll

 

Включение и отключение запуска графической оболочки при старте системы в CentOS 7

Описание на странице

 

Как поменять HOSTNAME в CentOS 7?

Просмотр:

hostnamectl

Изменить:

hostnamectl set-hostname ваш_новый_hostname

Хотел обновиться, выдает ошибку

yum update
..
--> Проверка зависимостей окончена
Ошибка: kernel conflicts with selinux-policy-targeted-3.13.1-192.el7_5.6.noarch
 Вы можете попробовать --skip-broken чтобы обойти проблему

 

Посмотрим что за версии пакетов установлены

rpm -qa kernel selinux-policy-targeted

kernel-3.10.0-862.2.3.el7.x86_64
kernel-3.10.0-862.14.4.el7.x86_64
kernel-3.10.0-862.6.3.el7.x86_64
kernel-3.10.0-862.11.6.el7.x86_64
selinux-policy-targeted-3.13.1-192.el7_5.6.noarch
kernel-3.10.0-862.3.3.el7.x86_64
selinux-policy-targeted-3.13.1-229.el7_6.6.noarch

 

Удалим старый пакет selinux-policy и перезагрузим систему

yum remove selinux-policy-targeted-3.13.1-192.el7_5.6.noarch

shgutdown -r 0

Далее yum update -y отработало нормально!

Selinux, когда включен не позволяет nginx проксировать proxy_pass контент

Чтобы не отключать selinux - выполните команду в консоли под root:

setsebool httpd_can_network_connect 1 -P

Selinux не пускает NGINX к порту

Запустил простенький веб-сервер на питоне:

python3 -m http.server 8888

в браузере отображается, а NGINX как обратный прокси его не видит.

NGINX по умолчанию доступ разрешен 80 и 443 портам, поэтому надо выполнить:

setsebool -P httpd_can_network_connect 1

 

worker_processes  1;

events {
    worker_connections  1024; 
}
    
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;

        location / {
	    proxy_pass http://localhost:8888/;
            index  index.html index.htm;
            } # end location
        } # end server
    } # end http

Автор: Александр