Мы заметили некоторые странности, когда некоторые приложения не работают должным образом для пользователей с существующими сетевыми учетными записями [но, см. Раздел «Сравнение пользователей», поскольку они действительно работают с тестовой сетевой учетной записью].
Например, когда я запускаю 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
это лучше всего описать как необъяснимое.
При запуске от имени существующего пользователя сетевой учетной записи появляется диалоговое окно, в котором говорится:
Не удалось синхронизировать настройки цвета из-за ошибки программы.
Не удалось создать каталог: /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
твой друг.