SAS Restricted Options on UNIX

In a tweet by Gordon Cox last month, I was reminded of the restricted options facility available with SAS® software on UNIX platforms. This is capability where an administrator can set mandatory SAS system options at multiple levels of granularity: globally, per-group, and/or per-user. The reason for this post is that I don’t look at the documentation for this very often and every time I do it takes me a while to track it down. I always think its going to be in the UNIX companion in the Base SAS area… but it’s not! That gets me every time. Instead it’s tucked away in the Configuration Guide for SAS 9.2 Foundation for UNIX Environments (PDF) in Chapter 2 – Restricted Options. You can find this document in the Install Center section of under SAS Installation Note 36467: Documentation for a SAS® 9.2 installation on UNIX.

The context of the tweet was that the restricted options facility is another mechanism whereby a default setting of the NOXCMD option for SAS platform servers could be overridden for a subset of trusted users or groups in a SAS platform installation. The NOXCMD option is discussed in an earlier post: NOXCMD: NO eXternal CoMmanDs!

A quick summary of restricted options:

  • SAS Systems Options under UNIX set by an administrator, that cannot be changed by a user
  • Processed in the order global, group, then user. The last instance of an option is the one that wins.
  • Global restrictions are read from the file !SASROOT/misc/rstropts/rsasv9.cfg
  • Group restrictions are read from the file !SASROOT/misc/rstropts/groups/<groupname>_rsasv9.cfg
  • User restrictions are read from the file !SASROOT/misc/rstropts/users/<userid>_rsasv9.cfg

On Linux (at least) I can use the command “id -gn <userid>” to find out the effective group name for a user, given their user id. For example, “id -gn sassrv” might generate “sas“.

In my SAS 9.2 installation on Linux, whilst everyone else is still constrained by the NOXCMD option, I can ensure that the SAS Enterprise Guide user Bob Baxter, who has a user id of bob, can still use operating system commands in the SAS programs he runs on the SASApp server, by creating the file /usr/local/SAS/SASFoundation/9.2/misc/rstropts/users/bob_rsasv9.cfg with the following contents:


Of course, this only applies to SAS processes launched and run as the requesting user. Whilst it can be used to override NOXCMD for specific users/groups using a standard workspace server, it cant be used to distinguish between different users on the same stored process server, since all users will share SAS stored process server processes running under a shared identity (like sassrv). In that situation directing the users to separate SAS application servers would be more appropriate. There is an example of this in Jim Fenton & Robert Ladd’s SAS Global Forum 2010 paper 311-2010: A Practical Approach to Securing a SAS® 9.2 Intelligence Platform Deployment

Thanks to Gordon for reminding me about the restricted options facility.

Desktop Files for Launching SAS Apps on Ubuntu

Whilst I often use the command line on Linux, it’s also nice to have icons in the menus to start SAS® applications like SAS Management Console and SAS Display Manager. These days I mostly use GNOME Do as an application launcher (its a bit like Quicksilver for Mac OS X). Naturally I like to be able to launch SAS apps from GNOME Do too. One day soon I’ll give Ubuntu Unity another try, and when I do eventually make the switch I probably wont use GNOME Do any more (but I’ll remember it as good friend), so then I’ll want to launch SAS apps from Unity. Thankfully I can use the same custom .desktop files in all of these situations.

Originally I used to point and click my way through editing the menus to add a custom launchers for SAS apps, but I soon tired of that. I’m a programmer too. Pointing and clicking doesn’t stay fun for long ;)

I found out about .desktop files after delving into what happened behind the scenes when I was editing the menus using point and click methods. There’s a GNOME Dev Center tutorial on it “Desktop files: putting your application in the desktop menus“. The site also has a list of the Recognized desktop entry keys that can go into a .desktop file.

Below are some of the .desktop files that I use to launch SAS applications on my Ubuntu installation. I have only tested these on Ubuntu using GNOME but, since they are standard freedesktop files, I imagine they should also work in KDE and other Linux distros.

If you place the .desktop files into the ~/.local/share/applications directory (e.g. /home/userid/.local/share/applications) they will only be available to that single user. Alternatively, if they are placed into the /usr/share/applications directory then they will be available to all users.

The nice thing I have found about editing .desktop files is, so far at least, the changes have shown up in the menus immediately (i.e. without having to logout/login). In my installation the menu entries for these .desktop files can be found in the Ubuntu Applications > Other menu. They show up in GNOME Do too.

Here are the .desktop files I use:

SAS Management Console 9.2

This is a sas-mc-92.desktop file that I use to launch SAS Management Console 9.2 on Ubuntu.

#!/usr/bin/env xdg-open

[Desktop Entry]
Name=SAS Management Console 9.2

SAS 9.2 Display Manager

This is a sas-dms-9.2.desktop file that I (sometimes) use to launch the old SAS Display Manager System (DMS) interface on Ubuntu. If you’ve used DMS on Linux you’ll probably understand why I only use it sometimes ;). I’d love to have a native SAS Enterprise Guide like interface to SAS on Linux (without having to start Windows in VirtualBox). I know, given the numbers, it’s unlikely to ever happen, but I can’t help wishing nonetheless :).

#!/usr/bin/env xdg-open

[Desktop Entry]
Name=SAS Display Manager 9.2

You wont find the /usr/local/SAS/sas-logo-48×48.png file in your installation so you should substitute that with the path to an appropriate icon available in your installation.

SAS Management Console 9.1

This is a sas-mc-913.desktop file that I use to launch SAS Management Console 9.1 on Ubuntu.

#!/usr/bin/env xdg-open

[Desktop Entry]
Name=SAS Management Console 9.1

If you are a SAS user on Linux then I hope you find these useful too. If you have any info/experiences to share regarding .desktop files launching SAS apps in other desktop environments (KDE, Xfce etc.) or other distros (RHEL, Fedora etc.) then please leave a comment.

Disabling the Ubuntu Login Screen (GDM) User Pick List

I’m used to typing in both my userid and my password when I log in to computers. I have never been a fan of the user pick lists that now seem to be common to many operating systems. I can see how they can be convenient for family machines at home, but the idea of advertising a list of potential accounts to compromise doesn’t sit well with me, so my preference is to disable the pick list and go back to the traditional typed userid & password form.

I run SAS on Ubuntu and recent Ubuntu versions (I forget which one it started with) now have a user pick list by default. The method for disabling the user pick list in Ubuntu is not that obvious and I find myself googling it every time I need it. A good article that provides both command line and GUI methods of disabling the user list can be found at Disabling the Login Screen User List in Ubuntu

The command line version is:

sudo -u gdm gconftool-2 --set --type boolean /apps/gdm/simple-greeter/disable_user_list true

This can be followed by a quick restart of GDM:

restart gdm

.. and the user pick list is no more.

With Lucid (Ubuntu 10.04 LTS) there is still a redundant login button that needs to be clicked before you get to type your user id, but it’s still better than before. There has been a bug lodged for this behaviour (GDM without user list requires that you click Log In) and it appears to have been fixed so I look forward to seeing it when I next upgrade.

Installing VirtualBox Guest Additions in Ubuntu

What, you might be wondering, is a post about VirtualBox and Ubuntu doing on a blog that is primarily about SAS® platform administration and metadata?

The answer to that question is that VirtualBox and Ubuntu are both platforms where I run SAS for the purposes of development, testing and exploration/learning. So, whilst not specifically related to SAS platform administration itself, these topics are related to the administration of a platform that underpins a SAS installation I use, plus this blog is a place for me to put things so I don’t forget them later. I guess it’s also possible these posts might be of use to a small niche out there that might be trying to install SAS on Ubuntu in a VirtualBox environment for non-production purposes?

I’m a big fan of VirtualBox for desktop virtualization on Linux hosts and my primary desktop/notebook operating system has been Ubuntu for a few years. Whilst I have been a VMware Workstation user for many years, I find that VirtualBox works better for me on Linux desktop hosts at the moment. VMware is definitely my virtualization application of choice on Windows and Mac OS X desktops, but when it comes to running VMware Workstation on Linux I found there were just enough annoyances (you could use the term paper cut too) when using VMware on a Linux desktop that I was prompted to look elsewhere. VirtualBox ticked most of the boxes for me.

So, down the the subject of the post, I needed to install the VirtualBox Guest Additions in a brand new Ubuntu 10.04 Server guest installation and these were the steps I needed to take.

The installation of the guest additions requires a compilation/build environment which was not present on a fresh Ubuntu server installation.

sudo apt-get install build-essential linux-headers-`uname -r`

With the build tools now available I could load the Guest Additions software CD via the VirtualBox menu items Devices > Install Guest Additions…, mount the CD and then run the installer for 64-bit Linux platforms:

sudo mount /dev/sr0 /mnt/cdrom
cd /mnt/cdrom
sudo ./

Sudo with no password prompt

DISCLAIMER: This is definitely not recommended for any type of real environment that you rely on to be secure, but sometimes when you are setting up demo/sandpit/throwaway environments you want to be able to execute commands on Linux as root using sudo without getting prompted for your password. You could just work in a root shell all the time, but perhaps you still want to use sudo so you can use your normal account mostly and save yourself from potential accidents by only using sudo when you have to.

So, disclaimer out of the way, here’s how you can set yourself up as a no-password-sudoer (assuming you start out with sudo/root access to begin with):

Add your userid to an appropriate admin group:
sudo gpasswd -a youruserid youradmingroup

Edit the sudoers file:
sudo visudo

… to add an entry to allow your admin group to execute any command via sudo with no password requirement:
%youradmingroup ALL=NOPASSWD: ALL

BTW – visudo on Ubuntu defaults to the nano editor. If you prefer vi/vim you can switch default editor with:

sudo update-alternatives --config editor

.. and select the /usr/bin/vim.basic entry.

There’s more info about sudo on Ubuntu in the community documentation: RootSudo, Sudoers and RootSudoTimeout.

That’s it… sometimes handy but also dangerous … don’t say I didn’t warn you ;)