Recommended: Granting Read Permissions
The SailPoint method of acquiring the required permissions is to use the “cap_dac_read_search” capability.
This capability allows us to bypass file read permission checks and directory read and execute permission checks.
Since Linux capabilities can be applied to files, but not to users, we will create dedicated executables that will only be used by File Access Manager.
If the SSH, SFTP or ACL packages are updated after following these steps, then the duplicated executables should be recreated, and the steps below should be repeated (except for creating the user for File Access Manager).
Using root, perform the following operations in the Linux server:
-
Create a user for File Access Manager
-
Create the user famuser
adduser famuser
-
Set password for the new user
passwd famuser
-
Make sure that famuser has the permissions as described in Mandatory Permissions.
-
-
Create a variable that contains the path of the sftp server executable:
For RHEL or CentOS distributions
sftpsrv=/usr/libexec/openssh/sftp-server
For Ubuntu
sftpsrv=/usr/lib/openssh/sftp-server
The sftp-server location could be different depending on the OS
-
Copy the sftp executable:
cp -a ${sftpsrv} ${sftpsrv}-fam
-
Make File Access Manager’s user the only user that can read and execute it.
chmod 500 ${sftpsrv}-fam
chown famuser ${sftpsrv}-fam
-
Grant capability to bypass file read permission checks and directory read and execute permission checks
/sbin/setcap cap_dac_read_search+ep ${sftpsrv}-fam
-
Next, we will create a new SSH Subsystem.
Open your SSH configuration, For OpenSSH, use the following:
nano /etc/ssh/sshd_config
-
Add the following line to the file. Make sure the path of the sftp executable matches the path described above, according to the distribution type.
There will probably be a section for subsytems, look for a line that begins with “Subsystem” near the end of the file. it is best to add the line after the other subsystems.
For RHEL or CentOS distributions
Subsystem sftp-fam /usr/libexec/openssh/sftp-server-fam
For Ubuntu
Subsystem sftp-fam /usr/lib/openssh/sftp-server-fam
-
Restart the ssh service:
systemctl restart sshd