From nobody Wed Mar 16 05:12:49 2022 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 3B7051A11E39 for ; Wed, 16 Mar 2022 05:12:59 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from CAN01-TO1-obe.outbound.protection.outlook.com (mail-eopbgr670088.outbound.protection.outlook.com [40.107.67.88]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "DigiCert Cloud Services CA-1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4KJJLx3jDMz4WG6; Wed, 16 Mar 2022 05:12:57 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aEDfiofVHRuUBcvjOV3qHCYrKM/xdhutOmhgnI0JmRNaPLXo07bNKkYMjkQFPgyXHEuWzWwA6sNHliWst1D1Do89XTxihuhGvQQoBK3Szmm1MFYYcJrCCB28KHOBR8OYHZXK02ZXO497WRMXY5jl6HP15GocmpmU/SAiqQOQuM2kmomk9EF5xKFZ2gFPG4eTWJ/7kthccF76vUNLqojkO0tafBNxJkh5uQV6LfLjpgz2hupjF1C7QoiVToMLgIsrvmULGZ0AyjfmlXx/WYypbTXDShcumLB/pMXQ6K2HzgATnNLXVd+VmBX+7MQo+vsH2HR+1e6B9CaUJIkQ6EIV3w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=r2HjXRmASc16VgjXDtncU1OqshLt3ZWnujKlvGPC798=; b=laR3M+FwI58dIFlLx+qPSZJgoUKkD2GjcmqymZt5EiZTCXjHPAHDvS432Vg8Qu3GtRz0xnU2g9DpSxyCqyXf9ndqRnlHufzWbVF6x0kjVXhl0h28FeWOqnBvMVNowUrOvtAT5KvcETlKrRR7XtFie5GbBaXObc0u186w6aKPLz4sUGGUWhk+qAOEy7Lk8C0Aj2+EsA1Mb1Y8bQuXlDOFFe9e9uVcO0J+Igz1eOGmIbh0HwK69qfcRinkU/dpSL/WwP3YKRtU6MXPzi6b6gXWEiL4J+Tl/Zp6CfrTu8t6BmBkntYWjfh2B4XX+ueTJy6Yv7i7EzEYeWzYlM4U8inRdA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=uoguelph.ca; dmarc=pass action=none header.from=uoguelph.ca; dkim=pass header.d=uoguelph.ca; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=uoguelph.ca; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=r2HjXRmASc16VgjXDtncU1OqshLt3ZWnujKlvGPC798=; b=gupqfjiRPnCtJ3tZJSMNxRS4ouOzylVmQlcXAa2ilVG0IWlk9x575RhBhUKBLhyQWV7Rbia67qGm+Je3glm1ACFVrh7yA08ae7rWAWQWsgmtH/zR8mUinXnhRwpbJXzQsLNzBf1hzxymyhfO+2JHyrPH9Trf3SEI9nrmsxU0Alh5DgEfRDvkx8qIAcwND/ebpJm5SKh8D2Gkahq18mElLxL56FGps+KTUxFbOL5X40fp60nhEtG80elCsM9l+iJ6fSN5n1kc/8y+BU9BIa+sdlB9/Iz72vGxbPsS3uFJLJGqEL8CQ8DSzviwpprustj+fQot08V9qA3qKFs9hEA+mg== Received: from YT2PR01MB9730.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:de::14) by YT2PR01MB9956.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:d8::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.15; Wed, 16 Mar 2022 05:12:49 +0000 Received: from YT2PR01MB9730.CANPRD01.PROD.OUTLOOK.COM ([fe80::cdc2:3e87:371d:8d2c]) by YT2PR01MB9730.CANPRD01.PROD.OUTLOOK.COM ([fe80::cdc2:3e87:371d:8d2c%8]) with mapi id 15.20.5081.014; Wed, 16 Mar 2022 05:12:49 +0000 From: Rick Macklem To: Yasuhiro Kimura , "freebsd-current@freebsd.org" Subject: Re: getnetgrent(3) fails to parse long netgroup entry if it is stored in NIS Thread-Topic: getnetgrent(3) fails to parse long netgroup entry if it is stored in NIS Thread-Index: AQHYOI1LJULR+AKWHUq8CUSOjSq7OqzBdwsR Date: Wed, 16 Mar 2022 05:12:49 +0000 Message-ID: References: <20220316.014814.1921859297745365117.yasu@FreeBSD.org> In-Reply-To: <20220316.014814.1921859297745365117.yasu@FreeBSD.org> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: suggested_attachment_session_id: 2611b7c1-b30a-75b6-4aef-52061bec0062 x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 7c856012-ed93-4332-eabd-08da070b9d9d x-ms-traffictypediagnostic: YT2PR01MB9956:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: e6HPwjDP6zf8bHerIn9Zt9gZ5h3kXTHU8FV9629tm9Bw5r0yY9q+JzruDn9NxNlzyBcC735t8N24/pCGiYno50VUY2H3IlJfcObmD4gfURA/4sJYG3tIGZKsEKPwcIZV5FVmLjwwlbjHW8Uazj+tQn/TwPaWG2Q4gBMfnF+MaBcmRrNgKRRfRt2kv+rFnDE3Z9CLBu5WCx5Ac3ynnDHD991Az+9ddt+jz4b/1RQKI/MlWO6BqhajdXLM0TicEraSTrtlB28pm9/dENz4RYnODBVbm6kd8zfn3bLvHwdLYXHrKqX+E6IXG4BX1a4dz3LED8cyOVbMo02L8vUBxi1uxw+0Ov/duPS9pZG7KJgyaSfrbJIzr+88n6M0s3pXAnSssQH3bW52VOtuOCDcoFzQkNjyBmAYIeKNtRm3bOVTL5iqFZE9YHOVSwhsXWWGuL7ooVnyij4N45K/vtV5Tj2BcAFjHgRV8r/FgSRLIITnRRDOrySYokAtSxyJ6ZNXUb9zXCGEuUtTV7Jc1b0DZyc7Wu49b63nENC6oCeK4ZBvWhopBFnJcsKvAgsf/CgYch+zEPGIzDhO8txTQTtDjxR29dyC7hKykFFFcuRvZLtLzW71FEnuZclqDIO4t+Ch7Q1XfIhyQNu6Au9X/7NKnpP2oxZTlBWnAYH9zlhtV4lHBnUqO6rxhdoT8JPskF6YGuimsS6GyG+zmypL7vwPtdWZrX/DfATxA6RiKZpHxwhXIDCXMubZFfeZu5BBUqHjLhEGML1x3n5GKHZRM63Q9ChMpHaU3+94s8YiZl0R87iWG/4= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:YT2PR01MB9730.CANPRD01.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230001)(366004)(55016003)(30864003)(2906002)(5660300002)(52536014)(508600001)(53546011)(86362001)(7696005)(6506007)(9686003)(64756008)(38100700002)(66556008)(66946007)(76116006)(66476007)(66446008)(91956017)(450100002)(71200400001)(8676002)(84970400001)(33656002)(186003)(122000001)(8936002)(38070700005)(110136005)(83380400001)(316002)(786003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?LZ6v1f3O/58VuRVwLeKiyGFNylWqiyAkckE3NN6bIfLjixEPJqXI/2Jb+Kdn?= =?us-ascii?Q?Ps0BJgX6TNKmKZz6rZV3P53H8cVHv9YM2p6d7pVzg/J9fmOD6ou1xG2slZVb?= =?us-ascii?Q?uxmXcsHBjbVhzvlumVuBnwg3bLdBAeIeezwuipnpzB1Io+jWL3obX5wY3SN8?= =?us-ascii?Q?Gpfs9FVNQnqEQJN0jorjOt2gLd6hxchKLIs1Wa/UYjSs/nRvHmTYizlzyXYY?= =?us-ascii?Q?hfD8qMPRicnjQpUz3iGKYA0o3/C1Z43etrVPsR2E+QaLZja2URc05U/T5bKG?= =?us-ascii?Q?u9E+LXmuXjF+cH79XvK2zAEJgFdwkoeRf7p0ASA8BWWrpWqPe4y0Enu5k2td?= =?us-ascii?Q?vD7lI5JwBELf9xq36UO0qJoGYP6BsyFoaGLpUqGFcVjqRKgiS6wFi8AV5XC4?= =?us-ascii?Q?w66Xx2mT0cnhrFaO3r2lJq5ARqPMHNmfqRFVcKDZMpBIqWM9QmeAEWk6faIH?= =?us-ascii?Q?SuKP4pz6ywvwwmZVqbMeUUa+bxBg8s9/Glsj6MJnxCNBR6NbwCZFu2cjCP/Y?= =?us-ascii?Q?NeZHZdLG9mJGFK+EPk1fQCwGG1WHWL7Iw/oJSVOCwWl6YMr3nH4Nv8M0IaX6?= =?us-ascii?Q?slmZNdxKJqi+UvqlU8SfZdD7hGEY1qxbmnaQiU93cr9Q3P2d8k34aO654kZL?= =?us-ascii?Q?iWClXBv1BIP0+5r9dRtFDJ6iF8Lb+H94yBsYG6qVCAZVwbHBs8bj1w0M4yqd?= =?us-ascii?Q?JjmlVDxLu33c89G1PXmpqwBY1RCRGnafl0afNyxHdYnuBR2NmWOOb6LcnwIA?= =?us-ascii?Q?Z59sYEq+EQF5fDW9drLY82NBbdDhccZSM0l0XOq76qbQ4h1LabuO+AOTpIjI?= =?us-ascii?Q?fhRj8PmPmql1SMQPQ+3YIp49nh65YflpuKFLXgUGfsJg93bVoTIjIO5et9k0?= =?us-ascii?Q?ZmTvEkOAamHMaEkc45b6MHd78Z1Vk2LOzOdfMfTFvcFIRXk9ZJavJfnI33Es?= =?us-ascii?Q?V9N5E9QI7sbv+OLfr0yC6oXBI8swqEEnLYaXWkqlsAwRBxaDP6/benIRoBVA?= =?us-ascii?Q?Nuf/11e9sjy16uR93DO9OoIxCEDJrlUbOlHBEA9CCkkUb0y+57KkBfT4KG5l?= =?us-ascii?Q?JzWVghbhlJDwd0WMmSDakoqkS+1+/mdOPyrOJQo9xA6ZzGtiH86T9g8T6MOg?= =?us-ascii?Q?EWtaAiCcv3tIqkuFrSNpa+qH1VvOsEscInZqWKU7dAX9aDFksuVgMM39BC8H?= =?us-ascii?Q?IPpaVyomsyzM+M+v8VyW10AKq2CDRk0lBJoRKQgfdh5d4RV6iYxZ5Vc+w/yC?= =?us-ascii?Q?YO1oHAQzWSsYoc7EaFNwV779xyT0ZlnPYPu8qpU0UTQGp9vlWItYZiDvDopu?= =?us-ascii?Q?0y9nhdteFwQBsqxO2LTylNOUV2A0SPwlf/owk5TooEZfmlDeLragys5mLYnG?= =?us-ascii?Q?2QtEFHEE28g/+5OhNrgNXKgODp6cpNVooj2p7O3qF6604cCbxc8JTcqD8FE8?= =?us-ascii?Q?0d5zoGXlxBIek5jUC4oVNn+s/s85YYlMCtsdNfr+ty1OeVcB4o2qdAJP1mFS?= =?us-ascii?Q?sM8CLOGdG5J4i4ewO2EME1dIApffeCNZmUOh?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@freebsd.org MIME-Version: 1.0 X-OriginatorOrg: uoguelph.ca X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: YT2PR01MB9730.CANPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 7c856012-ed93-4332-eabd-08da070b9d9d X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Mar 2022 05:12:49.6285 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: be62a12b-2cad-49a1-a5fa-85f4f3156a7d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: JFwHqHK0Ip8sJP1mRgmAnVzmx/qC2GLyzxAdjXqWTWX0CyqeZ9o7puQ8Rlj/73z6MpR7czanxJ7LhtYTVB7fjw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: YT2PR01MB9956 X-Rspamd-Queue-Id: 4KJJLx3jDMz4WG6 X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=uoguelph.ca header.s=selector2 header.b=gupqfjiR; arc=pass ("microsoft.com:s=arcselector9901:i=1"); dmarc=pass (policy=none) header.from=uoguelph.ca; spf=pass (mx1.freebsd.org: domain of rmacklem@uoguelph.ca designates 40.107.67.88 as permitted sender) smtp.mailfrom=rmacklem@uoguelph.ca X-Spamd-Result: default: False [-6.00 / 15.00]; TO_DN_EQ_ADDR_SOME(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; R_DKIM_ALLOW(-0.20)[uoguelph.ca:s=selector2]; FREEFALL_USER(0.00)[rmacklem]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:40.107.0.0/16]; MIME_GOOD(-0.10)[text/plain]; NEURAL_HAM_LONG(-1.00)[-1.000]; DWL_DNSWL_LOW(-1.00)[uoguelph.ca:dkim]; RCVD_COUNT_THREE(0.00)[3]; DKIM_TRACE(0.00)[uoguelph.ca:+]; RCPT_COUNT_TWO(0.00)[2]; DMARC_POLICY_ALLOW(-0.50)[uoguelph.ca,none]; RCVD_IN_DNSWL_NONE(0.00)[40.107.67.88:from]; MLMMJ_DEST(0.00)[freebsd-current]; NEURAL_HAM_SHORT(-1.00)[-1.000]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_TLS_LAST(0.00)[]; ASN(0.00)[asn:8075, ipnet:40.104.0.0/14, country:US]; ARC_ALLOW(-1.00)[microsoft.com:s=arcselector9901:i=1]; RWL_MAILSPIKE_POSSIBLE(0.00)[40.107.67.88:from] X-ThisMailContainsUnwantedMimeParts: N Oh, and you can have netgroups in netgroups, so you can do something like... net0 net1,net2 net1 (host1,,),(host2,,) net2 (host3,,),(host4,,) then net0 has all 4 hosts in it. I think you need to break the large netgroup up into sub netgroups where each one is <=3D 1024 bytes long. rick ________________________________________ From: owner-freebsd-current@freebsd.org = on behalf of Yasuhiro Kimura Sent: Tuesday, March 15, 2022 12:48 PM To: freebsd-current@freebsd.org Subject: getnetgrent(3) fails to parse long netgroup entry if it is stored = in NIS CAUTION: This email originated from outside of the University of Guelph. Do= not click links or open attachments unless you recognize the sender and kn= ow the content is safe. If in doubt, forward suspicious emails to IThelp@uo= guelph.ca Hello, I use netgroup stored in NIS database to control access to NFS server. Recently I added some hosts to netgroup that access to NFS server is permitted. And after that mountd(8) writes such messages as following to syslog. Mar 15 17:16:59 server mountd[4276]: can't get address info for host host34= .nfs. Mar 15 17:16:59 server mountd[4276]: bad host host34.nfs. in netgroup permi= tted_nfs_clients, skipping The netgroup entry used to control access to NFS server includes a lot of host such as following ---------------------------------------------------------------------- yasu@server[1002]% ypmatch -k permitted_nfs_clients netgroup permitted_nfs_clients: (host01.nfs.example.com,,) (ho= st02.nfs.example.com,,) (host03.nfs.example.com,,) = (host04.nfs.example.com,,) (host05.nf= s.example.com,,) (host06.nfs.example.com,,) = (host07.nfs.example.com,,) (host08.nfs.example= .com,,) (host09.nfs.example.com,,) = (host10.nfs.example.com,,) (host11.nfs.example.com,,= ) (host12.nfs.example.com,,) (host1= 3.nfs.example.com,,) (host14.nfs.example.com,,) = (host15.nfs.example.com,,) (host16.nfs.= example.com,,) (host17.nfs.example.com,,) = (host18.nfs.example.com,,) (host19.nfs.example= .com,,) (host20.nfs.example.com,,) = (host21.nfs.example.com,,) (host22.nfs.example.com,,)= (host23.nfs.example.com,,) (host2= 4.nfs.example.com,,) (host25.nfs.example.com,,) = (host26.nfs.example.com,,) (host27.nfs.e= xample.com,,) (host28.nfs.example.com,,) = (host29.nfs.example.com,,) (host30.nfs.example.= com,,) (host31.nfs.example.com,,) = (host32.nfs.example.com,,) (host33.nfs.example.com,,) = (host34.nfs.example.com,,) (host35= .nfs.example.com,,) (host36.nfs.example.com,,) = (host37.nfs.example.com,,) (host38.nfs.exam= ple.com,,) (host39.nfs.example.com,,) = (host40.nfs.example.com,,) (host41.nfs.example.co= m,,) (host42.nfs.example.com,,) (ho= st43.nfs.example.com,,) (host44.nfs.example.com,,) = (host45.nfs.example.com,,) (host46.n= fs.example.com,,) (host47.nfs.example.com,,) = (host48.nfs.example.com,,) (host49.nfs.exam= ple.com,,) (host50.nfs.example.com,,) yasu@server[1054]% ---------------------------------------------------------------------- And if I remove host34.nfs.example.com from permitted_nfs_clients, then syslog messages of mountd(1) changes as following. Mar 15 17:16:59 server mountd[4276]: can't get address info for host host35= .nfs. Mar 15 17:16:59 server mountd[4276]: bad host host35.nfs. in netgroup permi= tted_nfs_clients, skipping It seems to stop parsing the value of the netgroup entry in its middle if the length is longer than a certain value. I checked usr.sbin/mountd/mountd.c and found it uses getnetgrent(3) to parse the value of netgroup entry. So I wrote following program to check its behavior. ---------------------------------------------------------------------- yasu@server[1152]% cat list_netgroup_entry.c #include #include #include int main(int argc, char **argv) { if (argc !=3D 2) { fprintf(stderr, "Usage: %s NameOfNetgroup\n", basename(argv[0])); return 1; } setnetgrent(argv[1]); printf("netgroup: %s\n", argv[1]); char *host, *user, *domain; while (getnetgrent(&host, &user, &domain)) printf("\thost: %s, user: %s, domain: %s\n", host, user, domain); endnetgrent(); return 0; } yasu@server[1152]% ---------------------------------------------------------------------- If netgroup entry is stored in /etc/netgroup, then the value is parsed properly. ---------------------------------------------------------------------- yasu@server[1061]% cat /etc/netgroup very_long_file_entry (host1.long.long.long.example.com,,) \ (host2.long.long.long.example.com,,) \ (host3.long.long.long.example.com,,) \ (host4.long.long.long.example.com,,) \ (host5.long.long.long.example.com,,) \ (host6.long.long.long.example.com,,) \ (host7.long.long.long.example.com,,) \ (host8.long.long.long.example.com,,) \ (host9.long.long.long.example.com,,) \ (host10.long.long.long.example.com,,) \ (host11.long.long.long.example.com,,) \ (host12.long.long.long.example.com,,) \ (host13.long.long.long.example.com,,) \ (host14.long.long.long.example.com,,) \ (host15.long.long.long.example.com,,) \ (host16.long.long.long.example.com,,) \ (host17.long.long.long.example.com,,) \ (host18.long.long.long.example.com,,) \ (host19.long.long.long.example.com,,) \ (host20.long.long.long.example.com,,) \ (host21.long.long.long.example.com,,) \ (host22.long.long.long.example.com,,) \ (host23.long.long.long.example.com,,) \ (host24.long.long.long.example.com,,) \ (host25.long.long.long.example.com,,) \ (host26.long.long.long.example.com,,) \ (host27.long.long.long.example.com,,) \ (host28.long.long.long.example.com,,) \ (host29.long.long.long.example.com,,) \ (host30.long.long.long.example.com,,) + yasu@server[1062]% ./list_netgroup_entry very_long_file_entry netgroup: very_long_file_entry host: host30.long.long.long.example.com, user: , domain: host: host29.long.long.long.example.com, user: , domain: host: host28.long.long.long.example.com, user: , domain: host: host27.long.long.long.example.com, user: , domain: host: host26.long.long.long.example.com, user: , domain: host: host25.long.long.long.example.com, user: , domain: host: host24.long.long.long.example.com, user: , domain: host: host23.long.long.long.example.com, user: , domain: host: host22.long.long.long.example.com, user: , domain: host: host21.long.long.long.example.com, user: , domain: host: host20.long.long.long.example.com, user: , domain: host: host19.long.long.long.example.com, user: , domain: host: host18.long.long.long.example.com, user: , domain: host: host17.long.long.long.example.com, user: , domain: host: host16.long.long.long.example.com, user: , domain: host: host15.long.long.long.example.com, user: , domain: host: host14.long.long.long.example.com, user: , domain: host: host13.long.long.long.example.com, user: , domain: host: host12.long.long.long.example.com, user: , domain: host: host11.long.long.long.example.com, user: , domain: host: host10.long.long.long.example.com, user: , domain: host: host9.long.long.long.example.com, user: , domain: host: host8.long.long.long.example.com, user: , domain: host: host7.long.long.long.example.com, user: , domain: host: host6.long.long.long.example.com, user: , domain: host: host5.long.long.long.example.com, user: , domain: host: host4.long.long.long.example.com, user: , domain: host: host3.long.long.long.example.com, user: , domain: host: host2.long.long.long.example.com, user: , domain: host: host1.long.long.long.example.com, user: , domain: yasu@server[1063]% ---------------------------------------------------------------------- But if it is stored in NIS database, then parsing stops at the middle of it. ---------------------------------------------------------------------- yasu@server[1063]% ypmatch -k very_long_nis_entry netgroup very_long_nis_entry: (host1.long.long.long.example.com,,) = (host2.long.long.long.example.com,,) (host3.long.long.long.example.co= m,,) (host4.long.long.long.example.com,,) = (host5.long.long.long.example.com,,) (host6.long.lo= ng.long.example.com,,) (host7.long.long.long.example.com= ,,) (host8.long.long.long.example.com,,) = (host9.long.long.long.example.com,,) (host10.long.long= .long.example.com,,) (host11.long.long.long.example.com,,= ) (host12.long.long.long.example.com,,) = (host13.long.long.long.example.com,,) (host14.long.long.long.example.com,,)= (host15.long.long.long.example.com,,) = (host16.long.long.long.example.com,,) (host17.long.long.l= ong.example.com,,) (host18.long.long.long.example.com,,) = (host19.long.long.long.example.com,,) (h= ost20.long.long.long.example.com,,) (host21.long.long.long= .example.com,,) (host22.long.long.long.example.com,,) = (host23.long.long.long.example.com,,) (host= 24.long.long.long.example.com,,) (host25.long.long.long.example.com,,) = (host26.long.long.long.example.com,,) (hos= t27.long.long.long.example.com,,) (host28.long.long.long.e= xample.com,,) (host29.long.long.long.example.com,,) = (host30.long.long.long.example.com,,) yasu@server[1064]% ./list_netgroup_entry very_long_nis_entry netgroup: very_long_nis_entry host: host25.long.long.long.examp, user: , domain: host: host24.long.long.long.example.com, user: , domain: host: host23.long.long.long.example.com, user: , domain: host: host22.long.long.long.example.com, user: , domain: host: host21.long.long.long.example.com, user: , domain: host: host20.long.long.long.example.com, user: , domain: host: host19.long.long.long.example.com, user: , domain: host: host18.long.long.long.example.com, user: , domain: host: host17.long.long.long.example.com, user: , domain: host: host16.long.long.long.example.com, user: , domain: host: host15.long.long.long.example.com, user: , domain: host: host14.long.long.long.example.com, user: , domain: host: host13.long.long.long.example.com, user: , domain: host: host12.long.long.long.example.com, user: , domain: host: host11.long.long.long.example.com, user: , domain: host: host10.long.long.long.example.com, user: , domain: host: host9.long.long.long.example.com, user: , domain: host: host8.long.long.long.example.com, user: , domain: host: host7.long.long.long.example.com, user: , domain: host: host6.long.long.long.example.com, user: , domain: host: host5.long.long.long.example.com, user: , domain: host: host4.long.long.long.example.com, user: , domain: host: host3.long.long.long.example.com, user: , domain: host: host2.long.long.long.example.com, user: , domain: host: host1.long.long.long.example.com, user: , domain: yasu@server[1065]% ---------------------------------------------------------------------- So it seems getnetgrent(3) fails to parse long netgroup entry if it is stored in NIS. --- Yasuhiro Kimura