code: func UpdateFileMode(fm *os.FileMode, b PermissionBits) {
  	// Setuid, Setgid, and Sticky bits are not in the same position in the two bitmaks
  	// So we need to set their values manually
  	if b.Setuid() {
  		*fm |= os.ModeSetuid
  	} else {
  		*fm &^= os.ModeSetuid
  	}
  	if b.Setgid() {
  		*fm |= os.ModeSetgid
  	} else {
  		*fm &^= os.ModeSetgid
  	}
  	if b.Sticky() {
  		*fm |= os.ModeSticky
  	} else {
  		*fm &^= os.ModeSticky
  	}
  
  	// unset bit-values that don't map to the same position in FileMode
  	b.SetSetgid(false)
  	b.SetSetuid(false)
  	b.SetSticky(false)
  
  	// Clear the permission bitss
  	*fm &^= 0777
  
  	// Set the permission bits
  	*fm |= os.FileMode(b)
  }
docs: // Given an os.FileMode object, update it's permissions