Всем привет
Храню домашний каталог на GlusterFS 3.4, использую Gnome 2.28 (CentOS 6.5). Свежая установка, то есть ничего пока ещё не накручено и не подкручено.
Проблема в том, что при запуске сеанса Gnome выдаёт такое сообщение:
Произошла проблема с сервером конфигурации. (/usr/libexec/gconf-sanity-check-2 завершился с состоянием 256)
После этого сессия запускается, можно работать, но настройки панели заблокированы (правой кнопкой на панели -> Свойства -> «Некоторые из этих свойств заблокированы», по факту - все).
Если запускать эту байду из консоли, предварительно корректно завершив сеанс и сделав telinit 3, получается следующее:
Ваши файлы настроек уже используются.
Возможно, вы вошли в сеанс с другого компьютера, и другой сеанс использует эти файлы.
Вы можете продолжить работу в текущем сеансе, но это может вызвать временные проблемы с настройками в другой сессии.
Хотите продолжить? Продолжить (y/n)?y
Свяжитесь со своим системным администратором для разрешения следующей проблемы:
Не удалось разрешить адрес «xml:readwrite:/home/hc/.gconf» в файле конфигурации «/etc/gconf/2/path»: Сбой: Не удалось создать каталог «/home/hc/.gconf»: Файл существует
Если удалить .gconf, то всё работает хорошо, но только один раз и настройки панели всё равно заблокированы.
[hc@localhost ~]$ ls -laZd .gconf*
drwx------. hc admin system_u:object_r:fusefs_t:s0 .gconf/
drwx------. hc admin system_u:object_r:fusefs_t:s0 .gconfd/
[hc@localhost ~]$ getenforce
Permissive
[hc@localhost ~]$ getsebool -a | grep fuse
ftpd_use_fusefs --> off
httpd_use_fusefs --> off
samba_share_fusefs --> off
sanlock_use_fusefs --> off
use_fusefs_home_dirs --> on
virt_use_fusefs --> off
В интернетах советуют проверить права на /tmp:
drwxrwxrwt. 15 root root 4096 Апр 6 17:29 /tmp/
В попытке разобраться, в чём дело, залез в код gconf. Там вот это:
# xml-backend.c
if (g_stat (root_dir, &statbuf) == 0)
{
/* Already exists, base our dir_mode on it */
dir_mode = _gconf_mode_t_to_mode (statbuf.st_mode);
/* dir_mode without search bits */
file_mode = dir_mode & (~0111);
}
else if (g_mkdir (root_dir, dir_mode) < 0)
{
/* Error out even on EEXIST - shouldn't happen anyway */
gconf_set_error (err, GCONF_ERROR_FAILED,
_("Could not make directory `%s': %s"),
(gchar *)root_dir, g_strerror (errno));
g_free (root_dir);
return NULL;
}
Что показывает strace:
stat64("/home/hc/.gconf", {st_mode=S_IFDIR|0700, st_size=6, ...}) = 0
mkdir("/home/hc/.gconf", 0700) = -1 EEXIST (File exists)
В этом месте я схватился за голову и перестал что-либо понимать.
У кого-нибудь есть какие-нибудь идеи?
Заранее спасибо