У меня есть файл jar, который работает во многих машинах. Однако мы просто попросили нового пользователя unix установить его, и он ведет себя иначе ... интересно, может ли это быть связано с каким-то env. var.
основная идея:
WorkingUser@box$ java -jar install.jar -h
[output help instructions]
но потом
NewUser@box$ java -jar install.jar -h
The java class is not found: pkg1.pkg2.pkg3.Loader
Прежде чем кто-либо спросит, путь к классам не нужен, и да, cksum для jar в порядке. на самом деле:
$ jar tf install.jar
META-INF/
META-INF/MANIFEST.MF
pkg1/
pkg1/pkg2/
pkg1/pkg2/pkg3/
pkg1/pkg2/pkg3/script/
pkg1/pkg2/pkg3/Loader.class
pkg1/pkg2/pkg3/LoaderHelper.class
package.jar
И вы можете понять, что MANIFEST.MF
в порядке, так как он работает у других пользователей.
Я пробовал выполнять с -cp install.jar
безуспешно. Так же $CLASSPATH
для работающих и неработающих пользователей содержит только ".
".
[РЕДАКТИРОВАТЬ]
Похоже, я нашел более странные вещи об этом новом пользователе. Есть еще несколько неработающих вещей, которые могут указывать на проблему с созданием пользователя. К сожалению, я не очень разбираюсь в администрировании пользователей в AIX, поэтому надеюсь, что вы, ребята, поможете мне разобраться в этих выводах;
Я только что нашел это просто tar
нельзя создать в доме этого пользователя.
NewUser@box$ echo "thisisatest" > testfile.txt
NewUser@box$ tar cf testfile.txt.tar testfile.txt
tar: The getwd subroutine failed.
Cannot open the parent directory.
NewUser@box$ ls -l testfile*
-rw-r----- 1 user group 12 Feb 08 14:15 testfile.txt
-rw-r----- 1 user group 0 Feb 08 14:15 testfile.txt.tar
(Обратите внимание, как testfile.txt.tar
имеет 0 байты?)
Излишне говорить, что все эти команды работают с другим пользователем.
Кроме того, есть еще один небольшой симптом, связанный с scp
, WinSpc
фактически.
Соединение не работает, сначала возникает следующая ошибка:
Чтобы исправить эту ошибку, мне просто нужно настроить remote path
в конфигурации WinScp (которая, по-видимому, определяет путь к дому пользователя), и он будет работать нормально.
Я использую WinScp на другом сервере, и он отлично работает без какой-либо конфигурации - сначала я проигнорировал эту ошибку, но теперь кажется более актуальным.
Обратите внимание, что /etc/passwd
имеет все правильные параметры для этого пользователя. Это может быть какой-то хитрый конфигурация ...
Кроме того, у домашней папки есть все необходимые разрешения - я не уверен, как этот "липкий бит" к ней относится, но ... ну ...
Заранее спасибо!
Спасибо,
f.
Попробуйте скопировать файл в / tmp или / var / tmp и запустить установку оттуда. Дальше / удастся?
[РЕДАКТИРОВАТЬ]
Это было довольно близко к реальной проблеме. В итоге я провел аналогичный тест, который работал и который после некоторого тестирования привел меня к выводу, что точка крепления разрешения были неправильными, т.е. папка, в которой монтируется пользовательская fs, принадлежит корень и имел доступ 774
(нет exec для другие).
Мне всегда интересно, как неправильные разрешения на низком уровне вызывают самые неблагоприятные эффекты на верхних уровнях. У меня было (и я до сих пор не совсем уверен в этом), что разрешения точки монтирования повлияли на смонтированный fs ...
В любом случае, мы дали ему разрешение exec и вуаля, java находит классы. Есть еще проблемы со всей установкой, но они могут перейти к другим вопросам :)
Спасибо всем.