summaryrefslogtreecommitdiff
path: root/javainstaller2
diff options
context:
space:
mode:
authorKurt Zenker <kz@openoffice.org>2008-04-02 15:00:50 +0000
committerKurt Zenker <kz@openoffice.org>2008-04-02 15:00:50 +0000
commit4a11557b3b89d676534f06f8f7d9e26bdf9929e3 (patch)
treea7400dec7844913fef79ef296f77b683c2f1ea7d /javainstaller2
parent858467baecab512ec354775cd1c8cd268b683e15 (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-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Util/Controller.java37
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);