diff --git a/modules/juce_core/native/juce_posix_SharedCode.h b/modules/juce_core/native/juce_posix_SharedCode.h index 111b5818b8..033e4378b6 100644 --- a/modules/juce_core/native/juce_posix_SharedCode.h +++ b/modules/juce_core/native/juce_posix_SharedCode.h @@ -332,11 +332,21 @@ uint64 File::getFileIdentifier() const return juce_stat (fullPath, info) ? (uint64) info.st_ino : 0; } +static bool hasEffectiveRootFilePermissions() +{ + #if JUCE_LINUX + return (geteuid() == 0); + #else + return false; + #endif +} + //============================================================================== bool File::hasWriteAccess() const { if (exists()) - return access (fullPath.toUTF8(), W_OK) == 0; + return (hasEffectiveRootFilePermissions() + || access (fullPath.toUTF8(), W_OK) == 0); if ((! isDirectory()) && fullPath.containsChar (separator)) return getParentDirectory().hasWriteAccess();