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

У сетевых пользователей проблемы с приложениями - возможная проблема с разрешениями

Мы заметили некоторые странности, когда некоторые приложения не работают должным образом для пользователей с существующими сетевыми учетными записями [но, см. Раздел «Сравнение пользователей», поскольку они действительно работают с тестовой сетевой учетной записью].

Проблемы с приложением

Adobe Bridge CS3

Например, когда я запускаю Adobe Bridge CS3 в качестве пользователя существующей сетевой учетной записи, появляются диалоговые окна, в которых говорится:

Операция не может быть выполнена.
Файл или каталог с таким именем уже существует.

за которым следует тот, который говорит:

Операция не может быть выполнена.

Он не помещает ничего полезного в системный журнал (например, какой «файл или каталог с таким же именем уже существует»). Я сравнил результаты журнала с запуском его от имени локального администратора и пользователя тестовой сети, и он делает забавное копирование:

Jul 20 08:55:23 Master-2009-07-54 [0x0-0x45045].com.adobe.bridge2[1457]: mv: rename /Applications/Adobe Bridge CS3/Bridge CS3.app/Contents/Resources/de.lproj/Adobe Bridge Opener Preferences.xml to /Applications/Adobe Bridge CS3/Bridge CS3.app/Contents/Resources/de.lproj/Adobe Bridge Opener Preferences_de.xml: Permission denied
Jul 20 08:55:23 Master-2009-07-54 [0x0-0x45045].com.adobe.bridge2[1457]: cp: /Applications/Adobe Bridge CS3/Bridge CS3.app/Contents/Resources/de.lproj/Adobe Bridge Opener Preferences.xml: Permission denied

это лучше всего описать как необъяснимое.

Adobe Photoshop Elements (6)

При запуске от имени существующего пользователя сетевой учетной записи появляется диалоговое окно, в котором говорится:

Не удалось синхронизировать настройки цвета из-за ошибки программы.

Гугл Земля

Не удалось создать каталог: /Network/Servers/ces.wwsd.net/Volumes/DataHD/CESstudents/CES_Grade_03/------wild-/Library Earth

[предположительно должен быть еще какой-то текст, обернутый сбоку от диалога, между «Библиотекой» и «Землей».]

В следующий раз, когда я попробовал запустить его, я получил следующее:

Google Планета Земля не может выполнить запись в текущий кеш или расположение файла myplaces. Значения будут установлены следующим образом:

Путь к моим местам: "/Network/Servers/ces.wwsd.net/Volumes/DataHD/CESstudents/CES_Grade_03/--- Путь кэша:" /Network/Servers/ces.wwsd.net/Volumes/DataHD/CESstudents/CES_Grade_03/ ------ w

[опять же, текст вышел за конец диалога]

Google Планета Земля записывает в системный журнал следующее:

Jul 21 10:25:40 LeopardMaster-2009-07-20 [0x0-0xfa0fa].com.Google.GoogleEarthPlus[6606]: Intrinsic Alchemy  v3.2 Beta-0303 (Dynamic/Release) 
Jul 21 10:25:40 LeopardMaster-2009-07-20 [0x0-0xfa0fa].com.Google.GoogleEarthPlus[6606]: Built by google on Tue Mar 3 17:33:00 PST 2009
Jul 21 10:25:40 LeopardMaster-2009-07-20 [0x0-0xfa0fa].com.Google.GoogleEarthPlus[6606]: Can't save ticket store (permissions problem?)
Jul 21 10:25:40 LeopardMaster-2009-07-20 [0x0-0xfa0fa].com.Google.GoogleEarthPlus[6606]: INFO: Using igOglVisualContext.
Jul 21 10:25:43 LeopardMaster-2009-07-20 com.apple.launchd[5838] ([0x0-0xfa0fa].com.Google.GoogleEarthPlus[6606]): Exited with exit code: 1

Сравнение пользователей

Я тестировал с двумя учетными записями пользователей. Один из них был студентом, здесь его называют ------ wild- или Wild332, а другого называют «cesteststudent». Первый был создан с помощью сценария почти год назад, а второй был создан вручную в Workgroup Manager сегодня утром.

Запуск id команда для обоих пользователей дает:

uid=8222(Wild332) gid=620450(CES_Students) groups=620450(CES_Students),620403(CES_Grade_03)

uid=1093(cesteststudent) gid=620450(CES_Students) groups=620450(CES_Students),620403(CES_Grade_03)

Оба выглядят одинаково. Но что любопытно, когда я запускаю перечисленные выше приложения с тестовым пользователем, у меня не возникает никаких проблем. Точно так же у меня нет проблем с приложениями, когда я работаю как локальный пользователь, с правами администратора или без них.

Я выполнил команду mount как существующий пользователь, и она включила эти две записи:

trigger on /Network/Servers/ces.wwsd.net/Volumes/DataHD/CESstudents (autofs, automounted)
afp_0SU2uk0006ow0000oM0000VU-1.2e000012 on /Network/Servers/ces.wwsd.net/Volumes/DataHD/CESstudents (afpfs, nodev, nosuid, automounted, mounted by Wild332)

Когда я бежал

touch /Network/Servers/ces.wwsd.net/Volumes/DataHD/CESstudents/CES_Grade_03/------wild-/Library/touched
ls -l /Network/Servers/ces.wwsd.net/Volumes/DataHD/CESstudents/CES_Grade_03/------wild-/Library/touched
-rw-r--r--  1 Wild332  CES_Students  0 Jul 21 10:36 

Результаты ожидаются. Для верности я побежал:

ls -l `which touch`
-r-xr-xr-x  1 root  wheel  43056 Feb  6 20:45 /usr/bin/touch
ls -l /Applications/Google\ Earth.app/Contents/MacOS/Google\ Earth 
-rwxr-xr-x  1 sysadmin  admin  32132912 May  5 02:37 /Applications/Google Earth.app/Contents/MacOS/Google Earth

Вопрос

Ну я запуталась. Похоже, что у пользователя есть доступ для чтения / записи к своим файлам. Приложение запускается от имени пользователя (не так ли?). Кажется, что приложения расстроены, потому что у них нет доступа на чтение и запись к файлам пользователей. [И они не сказали мне, к каким файлам они пытаются получить доступ.]

Кто-нибудь знает, что не так, или в каком направлении мне следует исследовать?

Спасибо.

Это было бы болезненно и утомительно, но следующий шаг, который я бы предпринял, - это запуск приложения под dtruss (или ktrace, если вы используете более старую OS X). Таким образом вы можете точно увидеть, какие вызовы не работают.

Что-то вроде этого должно помочь:

sudo dtruss -f open /Applications/Adobe Bridge CS3/Bridge CS3.app > dtruss.out 2>&1

Конечно, это работает, только если ошибки возникают во время запуска. Если они запускаются активностью после того, как приложение уже открыто, вам нужно будет определить PID работающего приложения и запустить что-то вроде этого:

sudo dtruss -f -p $PIDOFAPP > dtruss.out 2>&1

При анализе dtruss.out файл, grep -v твой друг.