diff options
author | Kurt Zenker <kz@openoffice.org> | 2008-04-02 15:00:50 +0000 |
---|---|---|
committer | Kurt Zenker <kz@openoffice.org> | 2008-04-02 15:00:50 +0000 |
commit | 4a11557b3b89d676534f06f8f7d9e26bdf9929e3 (patch) | |
tree | a7400dec7844913fef79ef296f77b683c2f1ea7d /javainstaller2 | |
parent | 858467baecab512ec354775cd1c8cd268b683e15 (diff) |
INTEGRATION: CWS native135 (1.3.14); FILE MERGED
2008/03/04 14:54:18 is 1.3.14.1: #i79534# installation in sparse zones with root privileges
Diffstat (limited to 'javainstaller2')
-rwxr-xr-x | javainstaller2/src/JavaSetup/org/openoffice/setup/Util/Controller.java | 37 |
1 files changed, 35 insertions, 2 deletions
diff --git a/javainstaller2/src/JavaSetup/org/openoffice/setup/Util/Controller.java b/javainstaller2/src/JavaSetup/org/openoffice/setup/Util/Controller.java index 582fafd2bebe..bc8ec733db46 100755 --- a/javainstaller2/src/JavaSetup/org/openoffice/setup/Util/Controller.java +++ b/javainstaller2/src/JavaSetup/org/openoffice/setup/Util/Controller.java @@ -4,9 +4,9 @@ * * $RCSfile: Controller.java,v $ * - * $Revision: 1.3 $ + * $Revision: 1.4 $ * - * last change: $Author: obo $ $Date: 2008-01-07 12:33:25 $ + * last change: $Author: kz $ $Date: 2008-04-02 16:00:50 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. @@ -171,6 +171,39 @@ public class Controller { return createdDirectory; } + static public boolean reducedRootWritePrivileges() { + Vector vec = new Vector(); + File dir = new File("/usr"); + vec.add(dir); + dir = new File("/etc"); + vec.add(dir); + + boolean restrictedWritePrivilges = false; + + // Check for zones. If "zonename" is successful and the name is not "global", + // this is a "sparse zone". + // Alternative: Simply always check, if root has write access in selected directories. + + for (int i = 0; i < vec.size(); i++) { + File directory = (File)vec.get(i); + if ( directory.exists() ) { + // do we have write privileges inside the directory + String tempDirName = "temptestdir"; + File tempDir = new File(directory, tempDirName); + + if ( SystemManager.createDirectory(tempDir) ) { + SystemManager.removeDirectory(tempDir); + } else { + restrictedWritePrivilges = true; + System.err.println("Restricted Root privileges. No write access in " + directory.getPath()); + break; + } + } + } + + return restrictedWritePrivilges; + } + static public void checkForNewerVersion(InstallData installData) { LogManager.setCommandsHeaderLine("Checking change installation"); InstallChangeCtrl.checkInstallChange(installData); |