Back: A.1.2 Support for other devices Forward: A.3 Preparing for installation   FastBack: A. Installation Up: A. Installation FastForward: B. Device Reference         Top: fsc2 Contents: Table of Contents Index: Index About: About This Document

A.2 Security issues

To be able to read from and write to the device files for the devices fsc2 is supposed to control it needs permissions that often only the root account has. Therefore fsc2 per default gets installed setuid'ed to root (i.e. it starts running with the privileges of the root account, i.e. with the user and group ID of the root account). But most of the time fsc2 drops those privileges and runs with only the effective user ID (EUID) and effective group ID (EGID) of the users that started fsc2, i.e. with the permissions that user normally has. Care has been taken drop the extra privileges the root account has except for the few places where either device files are accessed or log files get written to.

Ig you feel uneasy about running a program setuid'ed to root (and I fully sympathize with you if you do, I also don't do that;-) there are alternatives, but which may requires some extra work. There are two variables in the Makefile, OWNER and GROUP, that can be used to avoid running fsc2 with the full permissions of the root account. If both are set the program runs with the UID and GID of the account and group specified by these variables in all situations were it otherwise would run with root permissions. (Only if neither of them is set then they default to root and the program gets setuid'ed to root, i.e. as in the default case discussed above.) But if only GROUP is set then the program becomes setgid'ed to this group, i.e. it will run with the UID of the user but with the GID of the group specified by GROUP - this may already give it high enough access permissions for the device files if the device files are set up accordingly (i.e. their permission bits are set to allow read and write access to members of this group). It's also possible to specify OWNER alone and in this case the program runs with the UID of that process but the GID of the user.

In the most simple case where you didn't set these variables (or both to root) and fsc2 has in principle all permissions the root account has you don't have to care about the permission settings for the device files.

In all other cases you have to make sure that either the account the program belongs to or the group it belongs to has the necessary permissions to read and write the required device files. If both OWNER and GROUP are set, the device files must be readable and writable by either that account or that group (or both). If only OWNER but not GROUP is set they must be accessible by the account specified by OWNER. And if only GROUP but not OWNER is set they must be readable and writable by that group. Please note that if you change the access permissions of the device files on some systems they may get reset by the system to what it believes to be more secure, e.g. on a reboot or as part of some daily system maintenance tasks etc. Moreover, on most modern Linux systems udev is used and the device files get deleted on shutdown and re-created on boot - but this can be handled by setting up udev to create the device files with the necessary permissions and ownerships, typically by creating a 'rules' file in `/etc/udev/rules.d/''.

One possible scenario is to create an account for fsc2 with extremely low permissions (even logging in can be disabled) - or use an already existing low permission account like nobody - and set USER to that account, but set GROUP to a group that has read and write access permissions for the device files that are going to be required. This could be the uucp (or dialout) group that typically has the necessary permissions for the accessing the device files for the serial ports. Of course, you need to allow read and write access for all other device files (e.g. GPIB card, PCI data acquisition cards etc.) for this group or make the account fsc2 is running under member of the groups that have read and write access permissions to these device files.


Back: A.1.2 Support for other devices Forward: A.3 Preparing for installation   FastBack: A. Installation Up: A. Installation FastForward: B. Device Reference

This document was generated by Jens Thoms Toerring on September 6, 2017 using texi2html 1.82.