X over ssh работает для одного пользователя, но не для другого
У меня есть сервер CentOS 6.5 со следующей ситуацией:
Я могу ssh для пользователя root этого сервера с компьютера Mac OS X. Он подключается относительно быстро и позволяет мне запускать сеансы xterm.
Я могу подключиться к другой учетной записи на этом же сервере с той же машины Mac OS X, но для подключения требуется некоторое время, и я не могу запустить сеансы xterm (с довольно распространенной ошибкой xterm Xt: Не удается открыть дисплей: localhost:10.0"ошибка).
Что мне тяжело, так это то, почему root работает идеально, а другой мой пользователь - нет. Другими словами, 1. Почему пользователь "root" быстр в соединении ssh, а другой мой пользователь ( "wmsodbc") - нет? 2. Почему пользователь "root" разрешает мне запускать xterm windows, а другой - нет?
Обратите внимание, что оба раза я подключаюсь к машине одинаково, с одинаковой конфигурацией ssh. Изменяется только пользователь ( "ssh root@server" или "ssh wmsodbc@server").
Я полагаю, что это проблема с одним из следующих, но я не знаю, как выяснить, какие:
- Настройка Mac OS X
- Общая настройка сервера CentOS 6.5
- Настройка моего другого пользователя (тот, который не работает) как-то не так
Обратите внимание, что я скопировал этого пользователя (wmsodbc) напрямую с другого, более старого сервера RedHat Enterprise, и у меня вообще нет этой проблемы на этом сервере.
Кроме того, я думаю, что на самом деле нашел причину "более медленного соединения", когда я включил отладку -vvv при выполнении соединения ssh: xauth истекает по времени, когда он пытается заблокировать файл. Все еще не возражаю против помощи в этом вопросе, но я также собираюсь искать причину истечения времени ожидания xauth - я вижу много ссылок на эту проблему через Google.
1 ответ
Хорошо, я наконец нашел проблему. Это было связано с SELinux. Если у вас когда-либо возникают подобные проблемы, простым тестом будет "setenforce 0", чтобы временно отключить его. Если он работает, когда "setenforce 0", но не работает с "setenforce 1", то проблема заключается в некоторой проблеме, связанной с SELinux. В моем случае мне нужно было выполнить следующую команду:
chcon 'unconfined_u:object_r:user_home_dir_t:s0' $HOME
Это было трудно увидеть, потому что мой "/home/wmsodbc" действительно был ссылкой на другое место:
lrwxrwxrwx. wmsodbc wms unconfined_u:object_r:home_root_t:s0 /home/wmsodbc -> /other/wmsodbc
drwx--x--x. wmsodbc wms unconfined_u:object_r:user_home_dir_t:s0 /other/wmsodbc
Может быть, это будет хорошо для кого-то еще.