[23105] in Source-Commits
/svn/athena r22768 - in trunk/debathena: config/nsswitch-config/debian debathena/libnss-nonlocal debathena/libnss-nonlocal/debian
daemon@ATHENA.MIT.EDU (tabbott@MIT.EDU)
Mon Feb 25 21:28:00 2008
Date: Mon, 25 Feb 2008 21:27:32 -0500 (EST)
From: tabbott@MIT.EDU
Message-Id: <200802260227.VAA05117@drugstore.mit.edu>
To: source-commits@MIT.EDU
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Author: tabbott
Date: 2008-02-25 21:27:31 -0500 (Mon, 25 Feb 2008)
New Revision: 22768
Added:
trunk/debathena/config/nsswitch-config/debian/addgroup.debathena
trunk/debathena/config/nsswitch-config/debian/adduser.debathena
trunk/debathena/config/nsswitch-config/debian/debathena-nsswitch-config.install
trunk/debathena/config/nsswitch-config/debian/dpkg.debathena
trunk/debathena/config/nsswitch-config/debian/groupadd.debathena
trunk/debathena/config/nsswitch-config/debian/useradd.debathena
Modified:
trunk/debathena/config/nsswitch-config/debian/changelog
trunk/debathena/config/nsswitch-config/debian/rules
trunk/debathena/debathena/libnss-nonlocal/debian/changelog
trunk/debathena/debathena/libnss-nonlocal/nonlocal-group.c
trunk/debathena/debathena/libnss-nonlocal/nonlocal-passwd.c
trunk/debathena/debathena/libnss-nonlocal/nonlocal.h
Log:
Make it possible to add new users/groups with the same name as Athena
users and groups.
* debathena/libnss-nonlocal/: If NSS_NONLOCAL_IGNORE is set, pretend
that nonlocal information doesn't exist.
* config/nsswitch-config/debian/: Divert and wrap adduser, useradd,
groupadd, addgroup, dpkg to set NSS_NONLOCAL_IGNORE when adding new
accounts both manually and when installing new packages.
Added: trunk/debathena/config/nsswitch-config/debian/addgroup.debathena
Added: trunk/debathena/config/nsswitch-config/debian/adduser.debathena
Modified: trunk/debathena/config/nsswitch-config/debian/changelog
===================================================================
--- trunk/debathena/config/nsswitch-config/debian/changelog 2008-02-22 23:12:49 UTC (rev 22767)
+++ trunk/debathena/config/nsswitch-config/debian/changelog 2008-02-26 02:27:31 UTC (rev 22768)
@@ -1,3 +1,10 @@
+debathena-nsswitch-config (1.4debathena1) unstable; urgency=low
+
+ * Divert dpkg, adduser, useradd, addgroup, groupadd to wrap them with
+ setting NSS_NONLOCAL_IGNORE=ignore
+
+ -- Tim Abbott <tabbott@mit.edu> Mon, 25 Feb 2008 19:49:38 -0500
+
debathena-nsswitch-config (1.3debathena2) unstable; urgency=low
* Use debathena-replace-conffiles interface from config-build-common
Added: trunk/debathena/config/nsswitch-config/debian/debathena-nsswitch-config.install
Added: trunk/debathena/config/nsswitch-config/debian/dpkg.debathena
Added: trunk/debathena/config/nsswitch-config/debian/groupadd.debathena
Modified: trunk/debathena/config/nsswitch-config/debian/rules
===================================================================
--- trunk/debathena/config/nsswitch-config/debian/rules 2008-02-22 23:12:49 UTC (rev 22767)
+++ trunk/debathena/config/nsswitch-config/debian/rules 2008-02-26 02:27:31 UTC (rev 22768)
@@ -7,7 +7,22 @@
DEBATHENA_CHECK_CONFFILES_SOURCE_/etc/nsswitch.conf.debathena = \
/usr/share/base-files/nsswitch.conf
endif
-
+DEBATHENA_DIVERT_FILES_debathena-nsswitch-config += \
+ /usr/sbin/adduser \
+ /usr/sbin/groupadd \
+ /usr/sbin/addgroup \
+ /usr/sbin/useradd \
+ /usr/bin/dpkg
+DEB_DH_LINK_ARGS += /usr/share/man/man8/adduser.8.gz /usr/share/man/man8/adduser.debathena.8.gz \
+ /usr/share/man/man8/adduser.8.gz /usr/share/man/man8/adduser.debathena-orig.8.gz \
+ /usr/share/man/man8/addgroup.8.gz /usr/share/man/man8/addgroup.debathena.8.gz \
+ /usr/share/man/man8/addgroup.8.gz /usr/share/man/man8/addgroup.debathena-orig.8.gz \
+ /usr/share/man/man8/useradd.8.gz /usr/share/man/man8/useradd.debathena.8.gz \
+ /usr/share/man/man8/useradd.8.gz /usr/share/man/man8/useradd.debathena-orig.8.gz \
+ /usr/share/man/man8/groupadd.8.gz /usr/share/man/man8/groupadd.debathena.8.gz \
+ /usr/share/man/man8/groupadd.8.gz /usr/share/man/man8/groupadd.debathena-orig.8.gz \
+ /usr/share/man/man8/dpkg.8.gz /usr/share/man/man8/dpkg.debathena.8.gz \
+ /usr/share/man/man8/dpkg.8.gz /usr/share/man/man8/dpkg.debathena-orig.8.gz
include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/rules/debathena-replace-conffiles.mk
Added: trunk/debathena/config/nsswitch-config/debian/useradd.debathena
Modified: trunk/debathena/debathena/libnss-nonlocal/debian/changelog
===================================================================
--- trunk/debathena/debathena/libnss-nonlocal/debian/changelog 2008-02-22 23:12:49 UTC (rev 22767)
+++ trunk/debathena/debathena/libnss-nonlocal/debian/changelog 2008-02-26 02:27:31 UTC (rev 22768)
@@ -1,3 +1,12 @@
+libnss-nonlocal (1.5-0debathena1) unstable; urgency=low
+
+ * Add support for NSS_NONLOCAL_IGNORE environment variable, which
+ causes nss_nonlocal to pretend there are no nonlocal users. This
+ allows us to support letting adduser add users and groups with the
+ same name as a nonlocal user/group.
+
+ -- Tim Abbott <tabbott@mit.edu> Mon, 25 Feb 2008 19:12:30 -0500
+
libnss-nonlocal (1.4-0debathena1) unstable; urgency=low
* Bug fixes and cleanups.
Modified: trunk/debathena/debathena/libnss-nonlocal/nonlocal-group.c
===================================================================
--- trunk/debathena/debathena/libnss-nonlocal/nonlocal-group.c 2008-02-22 23:12:49 UTC (rev 22767)
+++ trunk/debathena/debathena/libnss-nonlocal/nonlocal-group.c 2008-02-26 02:27:31 UTC (rev 22768)
@@ -223,6 +223,12 @@
int *errnop)
{
enum nss_status status;
+
+ char *nonlocal_ignore = getenv(NONLOCAL_IGNORE_ENV);
+ if (buflen == MAGIC_LOCAL_GR_BUFLEN ||
+ (nonlocal_ignore != NULL && nonlocal_ignore[0] != '\0'))
+ return NSS_STATUS_UNAVAIL;
+
if (grent_nip == NULL) {
status = _nss_nonlocal_setgrent(0);
if (status != NSS_STATUS_SUCCESS)
@@ -264,7 +270,9 @@
void *ptr;
} fct;
- if (buflen == MAGIC_LOCAL_GR_BUFLEN)
+ char *nonlocal_ignore = getenv(NONLOCAL_IGNORE_ENV);
+ if (buflen == MAGIC_LOCAL_GR_BUFLEN ||
+ (nonlocal_ignore != NULL && nonlocal_ignore[0] != '\0'))
return NSS_STATUS_UNAVAIL;
nip = nss_group_nonlocal_database();
@@ -301,7 +309,9 @@
void *ptr;
} fct;
- if (buflen == MAGIC_LOCAL_GR_BUFLEN)
+ char *nonlocal_ignore = getenv(NONLOCAL_IGNORE_ENV);
+ if (buflen == MAGIC_LOCAL_GR_BUFLEN ||
+ (nonlocal_ignore != NULL && nonlocal_ignore[0] != '\0'))
return NSS_STATUS_UNAVAIL;
nip = nss_group_nonlocal_database();
Modified: trunk/debathena/debathena/libnss-nonlocal/nonlocal-passwd.c
===================================================================
--- trunk/debathena/debathena/libnss-nonlocal/nonlocal-passwd.c 2008-02-22 23:12:49 UTC (rev 22767)
+++ trunk/debathena/debathena/libnss-nonlocal/nonlocal-passwd.c 2008-02-26 02:27:31 UTC (rev 22768)
@@ -192,6 +192,12 @@
int *errnop)
{
enum nss_status status;
+
+ char *nonlocal_ignore = getenv(NONLOCAL_IGNORE_ENV);
+ if (buflen == MAGIC_LOCAL_PW_BUFLEN ||
+ (nonlocal_ignore != NULL && nonlocal_ignore[0] != '\0'))
+ return NSS_STATUS_UNAVAIL;
+
if (pwent_nip == NULL) {
status = _nss_nonlocal_setpwent(0);
if (status != NSS_STATUS_SUCCESS)
@@ -203,7 +209,7 @@
else {
int nonlocal_errno;
do
- status = DL_CALL_FCT(pwent_fct.l, (pwd, buffer, buflen, errnop));
+ status = DL_CALL_FCT(pwent_fct.l, (pwd, buffer, buflen, errnop));
while (status == NSS_STATUS_SUCCESS &&
check_nonlocal_uid(pwd->pw_name, pwd->pw_uid, &nonlocal_errno) != NSS_STATUS_SUCCESS);
}
@@ -234,7 +240,9 @@
} fct;
int group_errno;
- if (buflen == MAGIC_LOCAL_PW_BUFLEN)
+ char *nonlocal_ignore = getenv(NONLOCAL_IGNORE_ENV);
+ if (buflen == MAGIC_LOCAL_PW_BUFLEN ||
+ (nonlocal_ignore != NULL && nonlocal_ignore[0] != '\0'))
return NSS_STATUS_UNAVAIL;
nip = nss_passwd_nonlocal_database();
@@ -279,7 +287,9 @@
} fct;
int group_errno;
- if (buflen == MAGIC_LOCAL_PW_BUFLEN)
+ char *nonlocal_ignore = getenv(NONLOCAL_IGNORE_ENV);
+ if (buflen == MAGIC_LOCAL_PW_BUFLEN ||
+ (nonlocal_ignore != NULL && nonlocal_ignore[0] != '\0'))
return NSS_STATUS_UNAVAIL;
nip = nss_passwd_nonlocal_database();
Modified: trunk/debathena/debathena/libnss-nonlocal/nonlocal.h
===================================================================
--- trunk/debathena/debathena/libnss-nonlocal/nonlocal.h 2008-02-22 23:12:49 UTC (rev 22767)
+++ trunk/debathena/debathena/libnss-nonlocal/nonlocal.h 2008-02-26 02:27:31 UTC (rev 22768)
@@ -3,4 +3,5 @@
enum nss_status check_nonlocal_uid(const char *user, uid_t uid, int *errnop);
enum nss_status check_nonlocal_gid(const char *user, gid_t gid, int *errnop);
enum nss_status check_nonlocal_user(const char *user, int *errnop);
+#define NONLOCAL_IGNORE_ENV "NSS_NONLOCAL_IGNORE"
#endif /* NON_LOCAL_H */