diff -ru pam-0.79/Linux-PAM/modules/pam_limits/limits.skel pam-0.79-patched/Linux-PAM/modules/pam_limits/limits.skel --- pam-0.79/Linux-PAM/modules/pam_limits/limits.skel 2002-09-15 16:08:50.000000000 -0400 +++ pam-0.79-patched/Linux-PAM/modules/pam_limits/limits.skel 2006-02-08 03:39:26.000000000 -0500 @@ -42,4 +42,8 @@ #ftp hard nproc 0 #@student - maxlogins 4 +@audio - nice -10 +@audio - rtprio 99 +@audio - memlock 250000 + # End of file diff -ru pam-0.79/Linux-PAM/modules/pam_limits/pam_limits.c pam-0.79-patched/Linux-PAM/modules/pam_limits/pam_limits.c --- pam-0.79/Linux-PAM/modules/pam_limits/pam_limits.c 2006-02-05 20:55:59.000000000 -0500 +++ pam-0.79-patched/Linux-PAM/modules/pam_limits/pam_limits.c 2006-02-05 20:57:24.000000000 -0500 @@ -34,6 +34,11 @@ #include #include #include +/* hack: glibc-2.3.6 doesn't yet know about these yet */ +#define RLIMIT_NICE 13 +#define RLIMIT_RTPRIO 14 +#undef RLIM_NLIMITS +#define RLIM_NLIMITS 15 #include #ifndef UT_USER /* some systems have ut_name instead of ut_user */ @@ -327,6 +332,14 @@ else if (strcmp(lim_item, "msgqueue") == 0) limit_item = RLIMIT_MSGQUEUE; #endif +#ifdef RLIMIT_RTPRIO + else if (strcmp(lim_item, "rtprio") == 0) + limit_item = RLIMIT_RTPRIO; +#endif +#ifdef RLIMIT_NICE + else if (strcmp(lim_item, "nice") == 0) + limit_item = RLIMIT_NICE; +#endif else if (strcmp(lim_item, "maxlogins") == 0) { limit_item = LIMIT_LOGIN; pl->flag_numsyslogins = 0; @@ -399,6 +412,15 @@ #endif limit_value *= 1024; break; +#ifdef RLIMIT_NICE + case RLIMIT_NICE: + if (limit_value > 19) + limit_value = 19; + if (limit_value < -20) + limit_value = -20; + limit_value = 19 - limit_value; + break; +#endif } if ( (limit_item != LIMIT_LOGIN) Only in pam-0.79-patched/Linux-PAM/modules/pam_limits: pam_limits.c.orig diff -ru pam-0.79/Linux-PAM/modules/pam_limits/README pam-0.79-patched/Linux-PAM/modules/pam_limits/README --- pam-0.79/Linux-PAM/modules/pam_limits/README 2005-01-10 05:09:51.000000000 -0500 +++ pam-0.79-patched/Linux-PAM/modules/pam_limits/README 2006-02-05 20:58:52.000000000 -0500 @@ -42,6 +42,10 @@ - sigpending - max number of pending signals (Linux 2.6 and higher) - msgqueue - max memory used by POSIX message queues (bytes) (Linux 2.6 and higher) + - nice - max nice priority allowed to raise to. (Linux 2.6.12 and higher) + - rtprio - max realtime priority allowed for non-priviledged processes + (Linux 2.6.12 and higher) + Note, if you specify a type of '-' but neglect to supply the item and value fields then the module will never enforce any limits on the