У меня есть файлы в каталоге. У некоторых есть корень как владелец и группа, а также некоторый пользователь (я) как владелец и группа (однако это произошло). Я побежал sudo chmod 755 -R /usr/casloader
, все мои каталоги находятся под /usr/casloader
. Все файлы: -rwxr-xr-x
.Проблема с разрешением файла javac
Я пытаюсь скомпилировать java-класс (как я пользователь) - если запустить javac в файле, который владелец/группа root
, я могу скомпилировать все. Владелец/группа скомпилированного класса становится мне. (он записывает скомпилированный класс в одну и ту же папку).
Но если я попробую скомпилировать класс, который принадлежит мне, это дает file write error: Permission Denied
.
Как это решить? Все ли должно быть root?
Это не потому, что вы являетесь владельцем группы. Вероятно, потому что файл класса уже существует с правами root. Но вы не предоставляете достаточно информации для определения. В любом случае используйте 'chown' как root, чтобы все файлы * .java, а затем удалили все * .class файлы, а затем повторите попытку. –
В сообщении четко сказано, что это проблема с записью, поэтому владение считанными файлами не имеет значения. Поскольку у вас, видимо, есть разрешение на запись в целевой каталог, вы можете удалить все существующие файлы классов, независимо от их владельца, а затем скомпилировать снова. – Holger
@Erwin @Holger, файл класса, который я пытаюсь создать, не существует, поэтому сейчас нет переписывающей ситуации (в будущем это может произойти, когда я перекомпиляция). Я 'chown' файл .java для root и смог скомпилировать (группа по-прежнему мне). Когда я попытался перекомпилировать полученную ошибку, удалите файл .class. Попытка перекомпилировать сейчас, но теперь я получаю такую же старую ошибку разрешения записи. Владелец файла - это root group me. –