selinux+mysql (Не отключать, а настроить)

Cent OS, Scientific Linux

Модератор: Модераторы разделов

playnet
Сообщения: 373
Статус: изучающий
ОС: CentOS, FreeBSD

selinux+mysql

Сообщение playnet »

Хочу все-таки освоить SELinux. Может кто дать быстрое введение?

Ну и проблема.
Пускаю мускуль, не стартует.
Потом делаю

Код: Выделить всё

# /usr/sbin/setenforce Permissive
# /etc/init.d/mysqld start
Starting MySQL:                                            [  OK  ]
# dmesg |tail -n 4
type=1400 audit(1281632604.113:382): avc:  denied  { search } for  pid=2454 comm="mysqld" name="/" dev=dm-0 ino=2 scontext=user_u:system_r:mysqld_t:s0 tcontext=system_u:object_r:file_t:s0 tclass=dir
type=1400 audit(1281632604.139:383): avc:  denied  { getattr } for  pid=2454 comm="mysqld" path="/var" dev=dm-0 ino=2 scontext=user_u:system_r:mysqld_t:s0 tcontext=system_u:object_r:file_t:s0 tclass=dir
type=1400 audit(1281632604.143:384): avc:  denied  { getattr } for  pid=2454 comm="mysqld" path="/var/lib/mysql" dev=dm-0 ino=1736862 scontext=user_u:system_r:mysqld_t:s0 tcontext=root:object_r:var_lib_t:s0 tclass=lnk_file
type=1400 audit(1281632604.147:385): avc:  denied  { read } for  pid=2454 comm="mysqld" name="mysql" dev=dm-0 ino=1736862 scontext=user_u:system_r:mysqld_t:s0 tcontext=root:object_r:var_lib_t:s0 tclass=lnk_file


Код: Выделить всё

# ls -Z /var/lib/mysql
-rw-rw----  mysql mysql root:object_r:mysqld_db_t:s0     ibdata1
-rw-rw----  mysql mysql root:object_r:mysqld_db_t:s0     ib_logfile0
-rw-rw----  mysql mysql root:object_r:mysqld_db_t:s0     ib_logfile1
drwx------  mysql mysql root:object_r:mysqld_db_t:s0     mysql
srwxrwxrwx  mysql mysql user_u:object_r:mysqld_var_run_t:s0 mysql.sock
drwx------  mysql mysql root:object_r:mysqld_db_t:s0     test


CentOS 5.4
Спасибо сказали:
Аватара пользователя
McLeod095
Сообщения: 477
ОС: Люблю слаку

Re: selinux+mysql

Сообщение McLeod095 »

playnet писал(а):
12.08.2010 21:12
Хочу все-таки освоить SELinux. Может кто дать быстрое введение?

Ну и проблема.
Пускаю мускуль, не стартует.
Потом делаю

Код: Выделить всё

# /usr/sbin/setenforce Permissive
# /etc/init.d/mysqld start
Starting MySQL:                                            [  OK  ]
# dmesg |tail -n 4
type=1400 audit(1281632604.113:382): avc:  denied  { search } for  pid=2454 comm="mysqld" name="/" dev=dm-0 ino=2 scontext=user_u:system_r:mysqld_t:s0 tcontext=system_u:object_r:file_t:s0 tclass=dir
type=1400 audit(1281632604.139:383): avc:  denied  { getattr } for  pid=2454 comm="mysqld" path="/var" dev=dm-0 ino=2 scontext=user_u:system_r:mysqld_t:s0 tcontext=system_u:object_r:file_t:s0 tclass=dir
type=1400 audit(1281632604.143:384): avc:  denied  { getattr } for  pid=2454 comm="mysqld" path="/var/lib/mysql" dev=dm-0 ino=1736862 scontext=user_u:system_r:mysqld_t:s0 tcontext=root:object_r:var_lib_t:s0 tclass=lnk_file
type=1400 audit(1281632604.147:385): avc:  denied  { read } for  pid=2454 comm="mysqld" name="mysql" dev=dm-0 ino=1736862 scontext=user_u:system_r:mysqld_t:s0 tcontext=root:object_r:var_lib_t:s0 tclass=lnk_file


Код: Выделить всё

# ls -Z /var/lib/mysql
-rw-rw----  mysql mysql root:object_r:mysqld_db_t:s0     ibdata1
-rw-rw----  mysql mysql root:object_r:mysqld_db_t:s0     ib_logfile0
-rw-rw----  mysql mysql root:object_r:mysqld_db_t:s0     ib_logfile1
drwx------  mysql mysql root:object_r:mysqld_db_t:s0     mysql
srwxrwxrwx  mysql mysql user_u:object_r:mysqld_var_run_t:s0 mysql.sock
drwx------  mysql mysql root:object_r:mysqld_db_t:s0     test


CentOS 5.4



Так а в чем трабла???
У Вас как я понял все запустилось и все работает.
Ну а если уж разбираться то тогда полностью всю инфу
ls -laZ /var/lib | grep mysql
mount | grep mysql

То есть все что связано с мускулем в студию

Ну и в довесок все действия выполнять при
setenforce 1
"Work PC" E6750/2GB/Asus P5B Deluxe/2x250GB/6600GT 128/Slackware Current (Win 2003 in VmWare)
New Work: E6400/3GB/Arch
Home Book: Asus W6k00A/Arch, Asus 701/Arch
Спасибо сказали:
playnet
Сообщения: 373
Статус: изучающий
ОС: CentOS, FreeBSD

Re: selinux+mysql

Сообщение playnet »

McLeod095 писал(а):
16.08.2010 12:19
Так а в чем трабла???
У Вас как я понял все запустилось и все работает.

В том, что в режиме Enforsing старт заканчивается [FAILED].

Ну а если уж разбираться то тогда полностью всю инфу
ls -laZ /var/lib | grep mysql
mount | grep mysql

Код: Выделить всё

[root@centos www]# ls -laZ /var/lib | grep mysql
lrwxrwxrwx  root   root    root:object_r:var_lib_t:s0       mysql

Код: Выделить всё

[root@centos www]# mount | grep mysql
[root@centos www]#


То есть все что связано с мускулем в студию

Ну и в довесок все действия выполнять при
setenforce 1

да, еще момент, сделанный хостером

Код: Выделить всё

[root@centos www]# ls -la /var/lib/|grep mysql
lrwxrwxrwx  1 root   root      11 Aug 12 19:30 mysql -> /home/mysql

Что сделать, чтобы при такой схеме работало?

и вопрос напоследок )
Был / с полной структурой, создал раздел для /var
Как теперь скопировать данные так, чтобы получить полную копию, включая selinux-флаги? просто данные перекинул уже через rsync -av /var/ /var-new
Спасибо сказали:
Аватара пользователя
McLeod095
Сообщения: 477
ОС: Люблю слаку

Re: selinux+mysql

Сообщение McLeod095 »

playnet писал(а):
16.08.2010 15:26
McLeod095 писал(а):
16.08.2010 12:19
Так а в чем трабла???
У Вас как я понял все запустилось и все работает.

В том, что в режиме Enforsing старт заканчивается [FAILED].

Ну а если уж разбираться то тогда полностью всю инфу
ls -laZ /var/lib | grep mysql
mount | grep mysql

Код: Выделить всё

[root@centos www]# ls -laZ /var/lib | grep mysql
lrwxrwxrwx  root   root    root:object_r:var_lib_t:s0       mysql

Код: Выделить всё

[root@centos www]# mount | grep mysql
[root@centos www]#


То есть все что связано с мускулем в студию

Ну и в довесок все действия выполнять при
setenforce 1

да, еще момент, сделанный хостером

Код: Выделить всё

[root@centos www]# ls -la /var/lib/|grep mysql
lrwxrwxrwx  1 root   root      11 Aug 12 19:30 mysql -> /home/mysql

Что сделать, чтобы при такой схеме работало?

и вопрос напоследок )
Был / с полной структурой, создал раздел для /var
Как теперь скопировать данные так, чтобы получить полную копию, включая selinux-флаги? просто данные перекинул уже через rsync -av /var/ /var-new


Ну могу посоветовать тока вот это
chcon -t mysqld_db_t /home/mysql
на этот каталог естественно дать права
chown mysql.mysql /home/mysql
chmod 0755 /home/mysql
после чего попробовать стартануть службу
если не поможет то будем копать дальше

по поводу var
chcon -t var_t /var
ну и после чего
cp -ac old_var/ /var
"Work PC" E6750/2GB/Asus P5B Deluxe/2x250GB/6600GT 128/Slackware Current (Win 2003 in VmWare)
New Work: E6400/3GB/Arch
Home Book: Asus W6k00A/Arch, Asus 701/Arch
Спасибо сказали: