可以在当前进程以编程方式运行时更改其uid/gid setresgid / setresuid 这会影响将来的文件访问权限。
setresgid
setresuid
但是,已经打开的或内存映射的文件会发生什么情况?对于读/写之类的I/O操作,它们仍然可以访问吗?我在“非显式”I/O操作的上下文中提出了更多要求,这些操作由库执行,例如sqlite数据库或其他更内部地操作文件的库。在中打开的文件 DIRECT_IO 在这方面,模式声音更加不确定。
DIRECT_IO
当您更改有效的uid或gid时,它不会影响任何打开的文件描述符。
底线:是的,一个进程完全有可能使用一个打开的文件描述符来读或写一个它(基于当前的uid/gid)无法打开的文件。
/proc