Language Selection

English French German Italian Portuguese Spanish

Custom scripting gives users a safe-du

Filed under
HowTos

My company has a Linux cluster with a terabyte of attached storage. Over time we noticed the head node was becoming more overloaded. Inspection of the system showed that users were starting dozens of copies of the du utility to determine disk space usage. This was a natural thing for them to do, because they had a need to know how much disk space was available. A lack of disk space would cause their software builds and tests to fail. The problem was that it takes five to seven hours for a du of the entire shared filesystem. Thus, when the filesystem was nearly full (as it of course usually was), the number of du processes would increase almost exponentially.

To address this problem, we first set up automated nightly disk space reports, so that users could check the status without running du. This still did not solve the problem, as the amount of used space could fluctuate dramatically over the course of 24 hours. Users still wanted and needed to run their own du processes throughout the workday.

While adding more disk space would have solved the problem, we are using a large disk array that is already filled to maximum capacity. In general, users tend to fill up all available disk space anyway, no matter how much you give them.

We then developed a policy: users could run du on any directory they owned. In addition, user du processes would be allowed to run for a maximum of one hour of wall time. Users in the wheel group would be exempt from these restrictions.

I was given the task of developing a tool to implement this policy. Some sort of wrapper around the existing du seemed like an obvious choice: the script could validate the input, abort if an invalid path was given, and terminate the du process if it ran too long.

I wrote a basic bash script in perhaps an hour's time. Then I thought about how to run it, and that is where I ran into trouble. I had thought that I would make the script set user id (setuid) or set group id (setgid) root, i.e. when run by any user it would actually run in the root group. Then, I could change the permissions on the real du so that only root could run it. The result would be that normal users could only access the real du through the wrapper script.

Of course that would make a pretty boring article, and in reality it didn't turn out to be that simple:

Full Story.

More in Tux Machines

Google’s Nest buys Linux automation firm, adds five partners

Google’s Nest Labs acquired Revolv, a maker of Linux-based home automation devices, and announced five new Nest-compatible devices. including the Pebble. After Google acquired Nest Labs in January $3.2 billion, placing a stake in the fast-growing home automation business, Nest acquired home surveillance camera maker Dropcam in June for $555 million. Now Nest announced it has acquired another major home automation company in its purchase of Revolv. The acquisition, which was announced with no dollar amount, came shortly after the Boulder, Colo. based company announced compatibility with the Nest Learning Thermostat and Nest Protect CO/smoke detector. Read more

Android Wear Gets Its First Big Update

Google's Android Wear on Thursday got its first major update, bringing GPS support and offline music capabilities to the wearables platform. "Android Wear is great for tracking things like route, distance and speed," wrote Kenny Stoltz, Android Wear product manager. "Before today, you had to keep your phone close at hand. Starting today, Wear supports watches with GPS sensors, so you can enjoy these features regardless of where your phone's at." Read more

Positive results from Outreach Program for Women

In 2013, Debian participated in both rounds of the GNOME Outreach Program for Women (OPW). The first round was run in conjunction with GSoC and the second round was a standalone program. The publicity around these programs and the strength of the Google and Debian brands attracted a range of female candidates, many of whom were shortlisted by mentors after passing their coding tests and satisfying us that they had the capability to complete a project successfully. As there are only a limited number of places for GSoC and limited funding for OPW, only a subset of these capable candidates were actually selected. The second round of OPW, for example, was only able to select two women. Read more

Mesa 10.3.2 Has A Couple Bug-Fixes

For those living by stable Mesa releases rather than the exciting, bleeding-edge Mesa Git code for open-source Linux graphics drivers, Mesa 10.3.2 is available this Friday night. Mesa 10.3.2 has fixes for Nouveauy's GM107 Maxwell and GK110 support, a handful of Intel DRI driver fixes, and also a few R600g/RadeonSI driver fixes. Mesa stable users interested in learning more can find the 10.3.2 release announcement by Emil Velikov, the new Mesa release manager. For those after the latest Git developments, Mesa 10.4 will be declared stable in December. Read more