root执行用户专属权限脚本时,日志文件的权限、归属及umask问题
root执行用户脚本后日志文件的相关权限问题
日志文件的所有者:是root。因为脚本由root启动执行,进程的有效用户ID为root,新创建的文件会继承这个进程的有效UID,所以日志文件的所有者和所属组默认都是root(除非脚本里显式调用
chown修改)。采用哪个用户的umask:使用root用户的umask。umask是进程级的属性,执行脚本的进程由root发起,会直接继承root的umask配置,和脚本原所有者的umask无关。
日志文件的权限:分两种常见情况:
- 如果脚本用标准方式创建文件(比如
echo "log content" > app.log),文件基础权限位是666,再减去root的umask值(默认root的umask为022),最终权限就是644(所有者读/写,组和其他用户读)。 - 如果脚本通过系统调用(比如
open())显式指定了权限位,那最终权限是指定的权限位减去root的umask值。
- 如果脚本用标准方式创建文件(比如
内容的提问来源于stack exchange,提问作者user1929905
相关产品推荐
相关产品推荐

