Владение остается неизменным после `sudo chown` в Ubuntu
sudo chown
сообщает, что у него есть changed ownership
но stat
показывает, что они остаются без изменений. Я абсолютно не знаю, что может быть причиной такого поведения. Команды и их вывод перечислены ниже:
iceberg@iceberg-Vostro-3446:/media/iceberg/Data3/Open_Source_Projects/container$ stat ./logs/mysql/tomcat/error.log
File: './logs/mysql/tomcat/error.log'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 802h/2050d Inode: 397758 Links: 1
Access: (0777/-rwxrwxrwx) Uid: ( 1000/ iceberg) Gid: ( 1000/ iceberg)
Access: 2017-08-03 21:53:37.845481100 +0530
Modify: 2017-08-03 21:53:37.845481100 +0530
Change: 2017-08-03 21:53:37.845481100 +0530
Birth: -
iceberg@iceberg-Vostro-3446:/media/iceberg/Data3/Open_Source_Projects/container$ sudo chown -vR 999:999 ./logs/mysql/tomcat/error.log
[sudo] password for iceberg:
changed ownership of './logs/mysql/tomcat/error.log' from iceberg:iceberg to 999:999
iceberg@iceberg-Vostro-3446:/media/iceberg/Data3/Open_Source_Projects/container$ stat ./logs/mysql/tomcat/error.log
File: './logs/mysql/tomcat/error.log'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 802h/2050d Inode: 397758 Links: 1
Access: (0777/-rwxrwxrwx) Uid: ( 1000/ iceberg) Gid: ( 1000/ iceberg)
Access: 2017-08-03 21:53:37.845481100 +0530
Modify: 2017-08-03 21:53:37.845481100 +0530
Change: 2017-08-03 21:53:37.845481100 +0530
Birth: -
Редактировать 1: Обновлена информация, связанная с расположением файлов.
Редактировать 2: Используемая файловая система - NTFS. Раздел Windows смонтирован внутри Ubuntu.
2 ответа
В комментариях вы упомянули, что файловой системой является NTFS.
Это источник вашей проблемы. Файловая система была смонтирована как пользователь iceberg
и все его файлы представлены как принадлежащие этому пользователю.
Чтобы изменить это, вам, вероятно, потребуется:
Смонтируйте файловую систему как root, используя различные опции, чтобы уважать право собственности на файл из NTFS. Может потребоваться исправить владение другими файлами после внесения этого изменения.
Смонтируйте файловую систему как пользователь 999. Это сделает все его файлы принадлежащими этому пользователю, что может быть, а может и не быть тем, что вы хотите.
Измените права доступа (не владение) к этому файлу, чтобы он мог быть записан пользователем 999.
Храните эти файлы на диске с собственной файловой системой Linux, а не храните их на диске NTFS.
Поскольку ваш вывод упоминает "контейнер", я предполагаю, что вы используете Docker...
Вы уверены, что этот файл находится в самом докере? Это может произойти, если файл пришел из смонтированного каталога извне докера.
Не могли бы вы проверить файл с хоста?
# stat /var/lib/docker/aufs/diff/<container id>/<path in container>/logs/mysql/tomcat/error.log
Если вы не видите файл здесь, он находится за пределами образа докера.
Или это также может быть файл, поступающий из верхнего слоя aufs. Попытайтесь воспроизвести его и создайте (коснитесь) новый файл, затем добавьте его.