2016-11-28 6 views
0

У меня есть файлы в каталоге. У некоторых есть корень как владелец и группа, а также некоторый пользователь (я) как владелец и группа (однако это произошло). Я побежал sudo chmod 755 -R /usr/casloader, все мои каталоги находятся под /usr/casloader. Все файлы: -rwxr-xr-x.Проблема с разрешением файла javac

Я пытаюсь скомпилировать java-класс (как я пользователь) - если запустить javac в файле, который владелец/группа root, я могу скомпилировать все. Владелец/группа скомпилированного класса становится мне. (он записывает скомпилированный класс в одну и ту же папку).

Но если я попробую скомпилировать класс, который принадлежит мне, это дает file write error: Permission Denied.

Как это решить? Все ли должно быть root?

+0

Это не потому, что вы являетесь владельцем группы. Вероятно, потому что файл класса уже существует с правами root. Но вы не предоставляете достаточно информации для определения. В любом случае используйте 'chown' как root, чтобы все файлы * .java, а затем удалили все * .class файлы, а затем повторите попытку. –

+0

В сообщении четко сказано, что это проблема с записью, поэтому владение считанными файлами не имеет значения. Поскольку у вас, видимо, есть разрешение на запись в целевой каталог, вы можете удалить все существующие файлы классов, независимо от их владельца, а затем скомпилировать снова. – Holger

+0

@Erwin @Holger, файл класса, который я пытаюсь создать, не существует, поэтому сейчас нет переписывающей ситуации (в будущем это может произойти, когда я перекомпиляция). Я 'chown' файл .java для root и смог скомпилировать (группа по-прежнему мне). Когда я попытался перекомпилировать полученную ошибку, удалите файл .class. Попытка перекомпилировать сейчас, но теперь я получаю такую ​​же старую ошибку разрешения записи. Владелец файла - это root group me. –

ответ

0

Я просто сделал g + w, o + w с -R. поэтому у меня есть rwxrwxrwx - поэтому проблема решена. (Не уверен, что это наиболее оптимальное решение.)