Я запускаю 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