With Android Studio 2.3 it seems to be impossible to use a shared and therefore read-only SDK installation.
# pwd
/opt
# chmod -R a+r Android android-studio
# find Android -type d -exec chmod 755 {} +
# find android-studio -type d -exec chmod 755 {} +
# su other
$ export ANDROID_SDK_ROOT=/opt/Android/Sdk
$ touch /opt/Android/Sdk/test
touch: cannot touch '/opt/Android/Sdk/test': Permission denied
/opt/android-studio/bin/studio.sh
Studio starts nicely but wants to download the Sdk (ANDROID_SDK_ROOT) is ignored. But anyway, we can try to set it in the SDK-Manager, but that does not work as the location is read-only (I can understand that a "Manager" does not want a read-only location). Then there is the possibility to "Configure, Project Defaults, Project Structure" and there the entry "Android SDK Location to /opt/Android/Sdk which is accepted. And this works for existing projects. But when starting a new project I see the wizard abort with the message that the Sdk Location is not writable.
Copying an empty project and starting from there works. Ubuntu 16.04.3, Oracle Jdk 1.8. Fresh Android Studio 2.3.3.