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

Переменные среды и дальнейшая настройка пользователя

У меня есть файл 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 находит классы. Есть еще проблемы со всей установкой, но они могут перейти к другим вопросам :)

Спасибо всем.