代码之家  ›  专栏  ›  技术社区  ›  Lapsio

在Linux中更改进程所有权(uid/gid)时,已经打开的文件会发生什么情况?

  •  2
  • Lapsio  · 技术社区  · 6 年前

    可以在当前进程以编程方式运行时更改其uid/gid setresgid / setresuid 这会影响将来的文件访问权限。

    但是,已经打开的或内存映射的文件会发生什么情况?对于读/写之类的I/O操作,它们仍然可以访问吗?我在“非显式”I/O操作的上下文中提出了更多要求,这些操作由库执行,例如sqlite数据库或其他更内部地操作文件的库。在中打开的文件 DIRECT_IO 在这方面,模式声音更加不确定。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Steve Summit    6 年前

    当您更改有效的uid或gid时,它不会影响任何打开的文件描述符。

    底线:是的,一个进程完全有可能使用一个打开的文件描述符来读或写一个它(基于当前的uid/gid)无法打开的文件。


    /proc