Я пытаюсь удалить архив tar.gz с помощью библиотеки Apache Compress (Java).
Как сохранить права доступа к файлам с помощью библиотеки Apache Compress при распаковке tar.gz?
Вы предоставляете слишком мало подробностей, поэтому я делаю предположения относительно своего ответа.
Может быть несколько причин, по которым это не работает должным образом.
Пользователь -id и идентификатор группы, указанные в tar-архиве, не существуют на целевой машине. Целевая (вспомогательная) файловая система, в которой архив не архивируется, не позволяет этим «разрешениям» придерживаться исходных. Это касается файловых систем, отличных от Unix, таких как vfat и ntfs, которые используются для целевых каталогов и файлов. Обычные пользователи вообще этого не могут сделать. Пользователь без полномочий root не может передавать права собственности на файлы и каталоги другим пользователям. Некоторые из целевых каталогов не являются реальными каталогами (например, /proc и /sys), поэтому восстановление файлов в нем не будет работать.Я не уверен, как работает «Библиотека Apache Compress», но когда мне нужно выполнить аналогичную задачу, я распакую архив с правами root, используя тот же путь, что и пункт назначения для разблокирования. Однако библиотека Apache Compress работает, если она может обрабатывать файлы tar.gz, она должна иметь возможность принимать несколько параметров, аналогичных тем, которые применяются в инструменте tar. Который я бы определенно использовал.
Что-то вроде:
sudo tar xf mytar.tar.gz -C /
гарантирует, что любой файл, который был заархивирован с абсолютным путем, будет возвращен на место с исходными разрешениями и правами собственности как sudo повысит привилегии до нужного уровня, в то время как -C / распакует файлы в нужном месте при условии, что архив tar был создан с абсолютными путями tar , что целевое восстановление необходимо
Теперь, когда вы используете библиотеку, весь процесс должен быть запущен как root, чтобы иметь возможность передать право собственности. Это, в свою очередь, может быть плохой идеей в зависимости от конкретных ограничений и вариантов использования.
Если бы вы могли вместо этого запустить процесс, выполняющий только задачу, не имеющую аналогов, вы бы позволили себе в одиночку эскалировать разрешения с помощью sudo. В этом случае я снова использую tar вместо совершенно новой программы.
Если ваши потребности ограничены правами доступа к файлу без какой-либо информации о владельце, вы можете проверить этот другой ответ мой. Имейте в виду, что разрешения простого доступа не могут работать должным образом, если не соблюдаются правильная информация о владельце.
Вы предоставляете слишком мало подробностей, поэтому я делаю предположения относительно своего ответа.
Может быть несколько причин, по которым это не работает должным образом.
Пользователь -id и идентификатор группы, указанные в tar-архиве, не существуют на целевой машине. Целевая (вспомогательная) файловая система, в которой архив не архивируется, не позволяет этим «разрешениям» придерживаться исходных. Это касается файловых систем, отличных от Unix, таких как vfat и ntfs, которые используются для целевых каталогов и файлов. Обычные пользователи вообще этого не могут сделать. Пользователь без полномочий root не может передавать права собственности на файлы и каталоги другим пользователям. Некоторые из целевых каталогов не являются реальными каталогами (например, /proc и /sys), поэтому восстановление файлов в нем не будет работать.Я не уверен, как работает «Библиотека Apache Compress», но когда мне нужно выполнить аналогичную задачу, я распакую архив с правами root, используя тот же путь, что и пункт назначения для разблокирования. Однако библиотека Apache Compress работает, если она может обрабатывать файлы tar.gz, она должна иметь возможность принимать несколько параметров, аналогичных тем, которые применяются в инструменте tar. Который я бы определенно использовал.
Что-то вроде:
sudo tar xf mytar.tar.gz -C /
гарантирует, что любой файл, который был заархивирован с абсолютным путем, будет возвращен на место с исходными разрешениями и правами собственности как sudo повысит привилегии до нужного уровня, в то время как -C / распакует файлы в нужном месте при условии, что архив tar был создан с абсолютными путями tar , что целевое восстановление необходимо
Теперь, когда вы используете библиотеку, весь процесс должен быть запущен как root, чтобы иметь возможность передать право собственности. Это, в свою очередь, может быть плохой идеей в зависимости от конкретных ограничений и вариантов использования.
Если бы вы могли вместо этого запустить процесс, выполняющий только задачу, не имеющую аналогов, вы бы позволили себе в одиночку эскалировать разрешения с помощью sudo. В этом случае я снова использую tar вместо совершенно новой программы.
Если ваши потребности ограничены правами доступа к файлу без какой-либо информации о владельце, вы можете проверить этот другой ответ мой. Имейте в виду, что разрешения простого доступа не могут работать должным образом, если не соблюдаются правильная информация о владельце.
Вы предоставляете слишком мало подробностей, поэтому я делаю предположения относительно своего ответа.
Может быть несколько причин, по которым это не работает должным образом.
Пользователь -id и идентификатор группы, указанные в tar-архиве, не существуют на целевой машине. Целевая (вспомогательная) файловая система, в которой архив не архивируется, не позволяет этим «разрешениям» придерживаться исходных. Это касается файловых систем, отличных от Unix, таких как vfat и ntfs, которые используются для целевых каталогов и файлов. Обычные пользователи вообще этого не могут сделать. Пользователь без полномочий root не может передавать права собственности на файлы и каталоги другим пользователям. Некоторые из целевых каталогов не являются реальными каталогами (например, /proc и /sys), поэтому восстановление файлов в нем не будет работать.Я не уверен, как работает «Библиотека Apache Compress», но когда мне нужно выполнить аналогичную задачу, я распакую архив с правами root, используя тот же путь, что и пункт назначения для разблокирования. Однако библиотека Apache Compress работает, если она может обрабатывать файлы tar.gz, она должна иметь возможность принимать несколько параметров, аналогичных тем, которые применяются в инструменте tar. Который я бы определенно использовал.
Что-то вроде:
sudo tar xf mytar.tar.gz -C /
гарантирует, что любой файл, который был заархивирован с абсолютным путем, будет возвращен на место с исходными разрешениями и правами собственности как sudo повысит привилегии до нужного уровня, в то время как -C / распакует файлы в нужном месте при условии, что архив tar был создан с абсолютными путями tar , что целевое восстановление необходимо
Теперь, когда вы используете библиотеку, весь процесс должен быть запущен как root, чтобы иметь возможность передать право собственности. Это, в свою очередь, может быть плохой идеей в зависимости от конкретных ограничений и вариантов использования.
Если бы вы могли вместо этого запустить процесс, выполняющий только задачу, не имеющую аналогов, вы бы позволили себе в одиночку эскалировать разрешения с помощью sudo. В этом случае я снова использую tar вместо совершенно новой программы.
Если ваши потребности ограничены правами доступа к файлу без какой-либо информации о владельце, вы можете проверить этот другой ответ мой. Имейте в виду, что разрешения простого доступа не могут работать должным образом, если не соблюдаются правильная информация о владельце.