【问题标题】:Mounting log file to some other location将日志文件挂载到其他位置
【发布时间】:2014-10-03 10:51:34
【问题描述】:

我有一些日志文件每天动态生成的路径,带有时间戳和400 (-r--------)权限,因此这些文件的所有者可以查看日志。

日志路径:/dir_01/abc_01/logpath

日志文件:

-r--------    LogFile_20141001
-r--------    LogFile_20141002
-r--------    LogFile_20141003

我希望others 查看日志,但我无法授予others 的日志读取权限,并且每次都将日志复制到(eg : /dir_02/logs) 的位置并在那里授予权限,以便others可以看到,真的很难,因为日志是动态创建的。有什么办法,只要在实际日志路径中创建日志,即/dir_01/abc_01/logpath ,在 /dir_02/logs 等其他路径上更新相同,对 others 具有读取权限。安装是否对这种情况有帮助,如果有,那么如何。

【问题讨论】:

  • 阅读umask 并将您的目录权限设置为您希望文件的权限。
  • 我猜umask 会为我设置明确的权限,但我不想为我的实际日志路径文件/dir_01/abc_01/logpath 设置该权限,400 权限很好。我希望将在我的实际日志文件路径上创建的日志文件以某种方式复制到其他路径,例如/dir_02/logs,并具有readread 权限@ 987654337@,以便他们也可以查看日志。 Others 将有权访问 /dir_02/logs 路径,但不能访问实际日志路径 /dir_01/abc_01/logpath

标签: linux bash shell unix ksh


【解决方案1】:

这可以在 mouting 期间使用 umask 选项(对于某些文件系统,例如 vfat),然后在此目录中创建的所有文件都将具有所需的权限,但绝对更好的选择是使用扩展 acls,然后是在目录中创建的所有文件(s) 将根据您的要求设置权限。

Umask 系统调用(不是 umask 挂载选项)设置权限但仅用于调用进程。这意味着,如果另一个具有另一个 umask 的进程创建文件/目录 - 权限将不适合您的要求。

我不知道这些文件是否相同:

/dir_01/abc_01/logpath
/dir_02/logs

但是如果你想在创建文件的那一刻做某事,那么你需要 notify 来监视 dir(捕捉事件)并在创建文件时执行另一个动作。

【讨论】:

  • 我猜umask 会为我设置一个明确的权限,但我不想为我的实际日志路径文件/dir_01/abc_01/logpath 设置该权限,400 权限很好。我希望以某种方式将在我的实际日志文件路径上创建的日志文件复制到其他路径,例如/dir_02/logs,并具有readread 权限@ 987654327@,以便他们也可以查看日志。 Others 将有权访问 /dir_02/logs 路径,但不能访问实际日志路径 /dir_01/abc_01/logpath
  • 所以我猜你是通过外部工具将文件从原始位置复制到另一个位置。然后我建议你使用 rsync 和 --chmod 选项,然后你可以在 chmod 选项中设置任何你想要的目录和文件的权限。
猜你喜欢
  • 2020-07-12
  • 1970-01-01
  • 1970-01-01
  • 2019-01-13
  • 1970-01-01
  • 1970-01-01
  • 2018-06-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多