Назад | Перейти на главную страницу

SELinux блокирует список каталогов Samba

Я запускаю Samba на сервере CentOS, и у меня возникла проблема, когда он позволяет мне подключиться к серверу и увидеть общий ресурс, но показывает общий ресурс как пустой каталог. Мне такое поведение кажется странным.

Вот строфа в моем smb.conf для данного ресурса:

[seanm]
    path = /home/seanm
    writeable = yes
    valid users = seanm, root
    read only = No

Вот что я вижу на стороне сервера:

[seanm@server ~]$ ls -l
-rw-r--r-- 1 seanm seanm 40 Jan  4 13:45 pangram.txt 

И все еще:

[seanm@client ~]$ smbclient //server/seanm -U seanm -W WORKGROUP
Enter seanm's password:
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.33-3.29.el5_5.1]
smb: \> ls
  .                                   D        0  Fri Jan  7 10:08:55 2011
  ..                                  D        0  Fri Jan  7 07:58:31 2011
            58994 blocks of size 262144. 50356 blocks available

Такое поведение присутствует как в клиенте Windows, так и в клиентской системе Linux. Такое поведение присутствует при включенном и выключенном брандмауэре, так что это не так. Ни в / var / log / messages, ни в / var / log / secure нет претензий к Samba. Если я mkdir a каталог в общей папке, которая появляется, а также в подкаталогах, но файлы до сих пор не появляются.

Сомневаюсь, что SELinux - это проблема: на всякий случай вот соответствующие настройки.

[root@server ~]# getsebool -a | grep samba
    samba_domain_controller --> off
    samba_enable_home_dirs --> on
    samba_export_all_ro --> off
    samba_export_all_rw --> off
    samba_share_fusefs --> off
    samba_share_nfs --> off
    use_samba_home_dirs --> on
    virt_use_samba --> off

Что я здесь делаю не так и что я могу сделать, чтобы это исправить?


Изменить: SELinux, вероятно, является проблемой, судя по тому факту, что проблема исчезает, когда я устанавливаю SELinux на «разрешающий» или setsebool -P samba_export_all_rw on - и то, и другое неприемлемо для производственной среды. Какой, черт возьми, контекст должен иметь каталог, чтобы пользователи Samba могли получать из него файлы? я полагаю сворачивание собственных правил и / или контекста быть глубоко неоптимальным.

Проблема вроде бы решена. Это был SELinux; контекст для домашнего каталога был установлен неправильно.

[seanm@server /home]$ ls -alZ
    drwx------  larry stooges  system_u:object_r:home_root_t    larry
    drwx------  seanm seanm    system_u:object_r:home_root_t    seanm

Проблема выставлена.

[seanm@server /home]$ chcon -hR system_u:object_r:user_home_dir_t /home/seanm
[seanm@server /home]$ restorecon -Rv /home/seanm
[seanm@server /home]$ ls -alZ
    drwx------  larry stooges  system_u:object_r:home_root_t        larry
    drwx------  seanm seanm    system_u:object_r:user_home_dir_t    seanm

Задача не выставляется для seanm, но выставляется для larry.

Я предполагаю, что это что-то с Cobbler: 'larry' и 'seanm' были созданы в процессе установки с Cobbler, и я заметил, что system_u на самом деле не совсем подходящий контекст для них, поскольку это не то, что пользователи создали с помощью useradd получить:

[root@server /home]# useradd selinuxtest
[seanm@server /home]$ ls -alZ
    drwx------  larry       stooges     system_u:object_r:home_root_t        larry
    drwx------  seanm       seanm       system_u:object_r:user_home_dir_t    seanm
    drwx------  selinuxtest selinuxtest user_u:object_r:user_home_dir_t      setest

Думаю, пора просмотреть документацию по Cobbler.

Ты пробовал ....

browseable = yes