在 ubuntu 中,使用“sudo chown”后所有权保持不变

在 ubuntu 中,使用“sudo chown”后所有权保持不变

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内部。

答案1

在评论中,您提到文件系统是 NTFS。

这就是问题的根源。文件系统以用户身份挂载iceberg,并且其所有文件都表示为该用户所有。

要改变这种情况,您可能需要:

  • 使用不同的选项以 root 身份挂载文件系统,以便尊重 NTFS 的文件所有权。进行此更改后,您可能需要修复其他文件的所有权。

  • 以用户 999 的身份挂载文件系统。这将使其所有文件都归该用户所有,这可能是也可能不是您想要的。

  • 更改该文件的权限(而不是所有权),以允许用户 999 写入它。

  • 将这些文件存储在具有本机 Linux 文件系统的磁盘上,而不是存储在 NTFS 驱动器上。

答案2

由于您的输出提到“容器”,我假设您正在使用docker ...

你确定这个文件在你的docker中吗?如果文件来自docker外部的挂载目录,就会发生这种情况。

您能检查一下主机的文件吗?

# stat /var/lib/docker/aufs/diff/<container id>/<path in container>/logs/mysql/tomcat/error.log

如果您在这里看不到该文件,则它来自 docker 镜像之外。

或者也可能是来自上层 aufs 的文件。尝试 rm 它并创建(touch)一个新文件,然后 chown 它。

相关内容