Salesforce

How to set the permissions for Progress executables and database files on UNIX?

« Go Back

Information

 
TitleHow to set the permissions for Progress executables and database files on UNIX?
URL NameP100887
Article Number000133215
EnvironmentProduct: Progress
Version: 9.x
Product: OpenEdge
Version: 10.x, 11.x, 12.x
OS: UNIX
Question/Problem Description
What should the ownership and the permissions be for the Progress executables on a UNIX platform
What are the minimum permissions that the database files must have?
How to set the permissions for Progress executables and database files on UNIX?
What permissions should the database files be set to?
How Progress interacts with UNIX permissions?
What permissions need to be set in order for users to be able to access Progress without permission problems?
Steps to Reproduce
Clarifying Information
Error Message
Defect Number
Enhancement Number
Cause
Resolution

The information contained in this solution allows the system administrator to maintain security at the UNIX level in the event that users have access to the operating system shell. In order for users to start a multi-user session for Progress, the following permissions should be maintained.

The Progress executables are stored in the bin subdirectory of the Progress installation directory.  Upon a new installation, ownership and permissions are correct.  After the installation of a Patch or Service Pack it's important that those are reset to their correct value, as the installation may alter them depending on the UMASK.  Incorrect ownership and/or permissions can cause abnormal/unexpected behavior in the product.  One of the first troubleshooting steps should be to always validate the ownership and permissions of all Progress executables are correct.  The following permissions are provided as a general guideline. Security at the UNIX level can be tailored to site specific requirements and must be fully tested to assure execution and access to the OpenEdge Application environment is assured.

Progress executables:

The Progress executables should have read, write, and leverage of the group permissions for all the users that need access to the database files. If cannot use group permissions, consider the root to be the owners of the executables and enable setuid bit for users who are member of sudoer. This is accomplished with the following steps:

1.        Log in as root or switch user to root
2.        Move to the $DLC/bin directory
3.        Change Ownership and permissions:

$   chown root _*
$   chmod 4755 _*
$   chmod 755 _sql*
$   chmod 755 _waitfor


An example of what the executable bits will look like:

-rwsr-xr-x  1  root  sys   458926  Nov 13 2013 _mprosrv
-rwsr-xr-x  1  root  sys   508210  Nov 13 2013 _mprshut
-rwsr-xr-x  1  root  sys  1450549  Nov 13 2013 _progres
-rwsr-xr-x  1  root  sys   823434  Nov 13 2013 _proutil
-rwxr-xr-x  1  root  sys  8925383  Nov 13 2013 _sqlsrv2
-rwxr-xr-x  1  root  sys  2040570  Nov 13 2013 _sqlload
-rwxr-xr-x  1  root  sys  2045979  Nov 13 2013 _sqlschema
-rwxr-xr-x  1  root  sys    96283   Nov 9 2013 _waitfor

 

 

The first position tells what kind of file it is:
If the file is defined as a normal or unknown file, it has a "-". Other file types are:

d - directory file
l - link file
t - link permission for directories
  • The next 3 letters are permissions for the user.
  • The next 3 letters are permissions for the user group.
  • The next 3 letters are permissions for the other group (all users).

The first column shows permissions for the file:

r - read permission
w - write permission
x - execute permission
s - setuid bit set

The setuid bit:

  • The setuid bit allows the user that executes the file to take on the permissions of the owner of the files while running executables.
  • This allows individual users access to the database files while in Progress, but they cannot delete the files when in the UNIX shell.
  • Further discussion and clarification from the OpenEdge perspective, are provided in the following Articles:

 

OpenEdge Database files:

To prevent users from deleting database files the following permissions are recommended. These pertain to connecting to the database and also using the "CONNECT" 4GL statement:

Permissions to the Directory where the database resides:

  • The Directory should belong to root and have read, write, and execute permissions.
  • The group should be set to the group assigned to the database users and should have read and execute permissions only.
  • Other users should have no permissions set.
Example: Database Directory permissions: 
drwxr-x--- 2 root support 1024 Nov 10 09:49 <directoryname>  

       
Permissions to the database files:

  • Database files (.db, .bi, .ai, .d etc) should be read and write only.
  • Root should be the owner of the files
  • The group should be set to the group assigned to the database users.
Example: Database File permissions: 
drwxr-x---  2  root  support    1024 Nov 10 10:18 .
drwxrwxrwx  8  root  root 1       024 Nov 10 09:49 ..
-rw-rw----  1  root  support 2228224 Dec 2 16:50 demo.b1
-rw-rw----  1  root  support  770048 Dec 2 16:50 demo.d1
-rw-rw----  1  root  support   32768 Dec 2 16:50 demo.db
-rw-rw----  1  root  support     443 Dec 2 16:50 demo.lg
-rw-rw----  1  root  support      31 Dec 2 16:50 demo.st
  • The "." signifies the current working directory.
  • The ".." signifies the parent directory or next higher directory.

With these permissions set:

  • The combination of executable permissions and database permissions provides full functionality as well as the ability to provide security where needed..
  • Only the root user and all users who are part of the group may access the database
  • Only root can modify or delete the files from the UNIX shell (due to the directory permissions).


When the "CONNECT" statement is used with the use of a networked connection (using the -S and -H parameters), turning on read and write permissions for "other" is then not needed. Read and write for "owner" will then suffice.
Enabling 'other' people access to the database files is possible but if tighter security is needed then only allow database access to people who are part of the specified group.

Workaround
Notes
Keyword Phrase
Last Modified Date12/20/2024 10:37 PM

Powered by