diff --git a/src/func_getattr_combine.cpp b/src/func_getattr_combine.cpp index df73c829..b9527318 100644 --- a/src/func_getattr_combine.cpp +++ b/src/func_getattr_combine.cpp @@ -40,10 +40,13 @@ Func2::GetAttrCombine::operator()(const Branches &branches_, continue; } - if(st_->st_uid == 0) - st_->st_uid = tmp_st.st_uid; - if(st_->st_gid == 0) - st_->st_gid = tmp_st.st_gid; + // This upgrades the uid:gid because mergerfs now does most + // file interaction as root and relies on `default-permissions` + // to manage permissions. If the + if(tmp_st.st_uid == 0) + st_->st_uid = 0; + if(tmp_st.st_gid == 0) + st_->st_gid = 0; st_->st_atim = TimeSpec::newest(st_->st_atim,tmp_st.st_atim); st_->st_ctim = TimeSpec::newest(st_->st_ctim,tmp_st.st_ctim); st_->st_mtim = TimeSpec::newest(st_->st_mtim,tmp_st.st_mtim);