Hi Stephen, <div><br></div><div>Thanks for you reply! Another thing is that if running <span class="Apple-style-span" style>"getent passwd {shell_user}", it will not search for </span><span class="Apple-style-span" style>{shell_user}</span><span class="Apple-style-span" style> in database </span><span class="Apple-style-span" style>according to log of pgsql</span><span class="Apple-style-span" style> but only in /etc/passwd.</span></div>
<div><br></div><div>The following are the configs:</div><div><br></div><div><b>1. nsswitch.conf</b></div><div><b><br></b></div><div><div>passwd:     files pgsql #Added by GForge install</div><div>#Comment by GForge install#passwd:     files</div>
<div>shadow:     files pgsql #Added by GForge install</div><div>#Comment by GForge install#shadow:     files</div><div>group:      files pgsql #Added by GForge install</div><div>#Comment by GForge install#group:      files</div>
<div>bootparams: nisplus [NOTFOUND=return] files</div><div>ethers:     files</div><div>netmasks:   files</div><div>networks:   files</div><div>protocols:  files</div><div>rpc:        files</div><div>services:   files</div>
<div>netgroup:   nisplus</div><div>publickey:  nisplus</div><div>automount:  files nisplus</div><div>aliases:    files nisplus</div></div><div><br></div><div><b>2. nss-pgsql.conf</b></div><div><div>#----------------- DB connection</div>
<div>connectionstring  =  user=gforge dbname=gforge</div><div><br></div><div>#----------------- NSS queries</div><div>getpwnam        = SELECT login AS username,passwd,gecos,('/var/lib/gforge/chroot/home/users/' || login) AS homedir,shell,uid,gid FROM nss_passwd WHERE login = $1</div>
<div>getpwuid        = SELECT login AS username,passwd,gecos,('/var/lib/gforge/chroot/home/users/' || login) AS homedir,shell,uid,gid FROM nss_passwd WHERE uid = $1</div><div>#allusers        = SELECT login AS username,passwd,gecos,('/var/lib/gforge/chroot/home/users/' || login) AS homedir,shell,uid,gid FROM nss_passwd</div>
<div>getgroupmembersbygid = SELECT login AS username FROM nss_passwd WHERE gid = $1</div><div>getgrnam = SELECT name AS groupname,'x',gid,ARRAY(SELECT user_name FROM nss_usergroups WHERE nss_usergroups.gid = nss_groups.gid) AS members FROM nss_groups WHERE name = $1</div>
<div>getgrgid = SELECT name AS groupname,'x',gid,ARRAY(SELECT user_name FROM nss_usergroups WHERE nss_usergroups.gid = nss_groups.gid) AS members FROM nss_groups WHERE gid = $1</div><div>#allgroups = SELECT name AS groupname,'x',gid,ARRAY(SELECT user_name FROM nss_usergroups WHERE nss_usergroups.gid = nss_groups.gid) AS members FROM nss_groups </div>
<div>groups_dyn = SELECT ug.gid FROM nss_usergroups ug, nss_passwd p WHERE ug.uid = p.uid AND p.login = $1 AND ug.gid <> $2</div><div><br></div><div><b>3. nss-pgsql-root.conf</b></div><div>### NSS Configuration for Gforge</div>
<div><br></div><div>#----------------- DB connection</div><div>shadowconnectionstring =  user= dbname=gforge</div><div><br></div><div>#----------------- NSS queries</div><div>shadowbyname    = SELECT login AS shadow_name, passwd AS shadow_passwd, 14087 AS shadow_lstchg, 0 AS shadow_min, 99999 AS shadow_max, 7 AS shadow_warn, '' AS shadow_inact, '' AS shadow_expire, '' AS shadow_flag FROM nss_passwd WHERE login = $1</div>
<div>shadow          = SELECT login AS shadow_name, passwd AS shadow_passwd, 14087 AS shadow_lstchg, 0 AS shadow_min, 99999 AS shadow_max, 7 AS shadow_warn, '' AS shadow_inact, '' AS shadow_expire, '' AS shadow_flag FROM nss_passwd</div>
<div><br></div><br><div class="gmail_quote">2012/4/14 Stephen Gran <span dir="ltr"><<a href="mailto:sgran@debian.org">sgran@debian.org</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="HOEnZb"><div class="h5">This one time, at band camp, Coiby Xu said:<br>
> Hi all,<br>
><br>
> I'm using libnss_pgsql module but there's problems with it. If I exute<br>
> "getent passwd", the following messages show<br>
> in /var/lib/pgsql/data/pg_log/postgresql-Sat.log. And the system is still<br>
> using /etc/passwd and /etc/group to authenticate ssh uses.<br>
><br>
> ERROR:  syntax error at or near "FOR" at character 61<br>
> > STATEMENT:  DECLARE nss_pgsql_internal_allusers_curs SCROLL CURSOR FOR<br>
> >  FOR READ ONLY<br>
> > ERROR:  current transaction is aborted, commands ignored until end of<br>
> > transaction block<br>
> > STATEMENT:  FETCH FROM nss_pgsql_internal_allusers_curs<br>
><br>
><br>
> Eveny I modify codes nss-pgsql.conf like:<br>
><br>
> > getpwnam        = SELECT login AS<br>
> > username,passwd,gecos,('/var/lib/gforge/chroot/home/users/' || login) AS<br>
> > homedir,shell,uid,gid FROM nss_passwd WHERE login = $1<br>
><br>
> to<br>
><br>
> > getpwnam        = SELECT  AS<br>
> > ,passwd,gecos,('/var/lib/gforge/chroot/home/users/' || login) AS<br>
> > homedir,shell,uid,gid FROM nss_passwd WHERE login = $1<br>
><br>
> The previous error message  would show. I can't figure out why. Can anyone<br>
> give some advice? Thanks!<br>
<br>
</div></div>The cursor declaration is:<br>
    asprintf(&stmt, "DECLARE nss_pgsql_internal_%s_curs SCROLL CURSOR FOR "<br>
                    "%s FOR READ ONLY", what, getcfg(what));<br>
<br>
So, you are somehow calling `getent allusers` with no config for that.<br>
This sounds like a config error to me, but I can't tell without seeing<br>
your config.<br>
<br>
Cheers,<br>
<span class="HOEnZb"><font color="#888888">--<br>
 -----------------------------------------------------------------<br>
|   ,''`.                                            Stephen Gran |<br>
|  : :' :                                        <a href="mailto:sgran@debian.org">sgran@debian.org</a> |<br>
|  `. `'                        Debian user, admin, and developer |<br>
|    `-                                     <a href="http://www.debian.org" target="_blank">http://www.debian.org</a> |<br>
 -----------------------------------------------------------------<br>
</font></span><br>-----BEGIN PGP SIGNATURE-----<br>
Version: GnuPG v1.4.10 (GNU/Linux)<br>
<br>
iQIcBAEBCAAGBQJPiSCQAAoJELMRjO+K6o/uZuwP/Ra7/rTHDHYcfojcGbB2pbU0<br>
vxq/J7BZEraDZYerlo5N/HjAKerq78gemQG/KTz/BIvyeRV3Mk6S6JRrMKAA3+kq<br>
Qwx1fH5ktLeg227K0AcI1q25wx+8d4nb9wh8lEuzCkGOpa7xOzYclteYSb87bmZ+<br>
v+r3Aem3K6f9SUWZcWg9ghbLW7ZY+NXA3q+3J8KxUuHvMeHS+Y+4Jr8FtOHRhHLJ<br>
0USIezJaP991k0GksfXim8MoSLyQgtsraTSGdcSp1ynjmVB6mEhW2nb7oEX05/MO<br>
r0AJMGK54RSxZWtpOFCl10OiZ9/JxDUAYDidE50tqHASt7aHpx2go/sL/rqMCmcs<br>
RlJ1bxVhCppird0hrHft6hgTmB3XXXDmlhXoz5o4ghto8D/VpPoUzDzBqe76pHVl<br>
rzoo/d12nNTu+f1yviFaSGIaW1oFzIyB/hqD2xfJBiQr3y2HACMB3OiV6OtfiOVP<br>
fY8U0UaL4VdHxUi5AL+8IUao4kUNOC7dePF8nIDXUBn+E+acicpESmLxGmoYDgVM<br>
DpAFmPVa9LCMiq5PfeCt7qYYJuVm6D6XiLGC76HwgbcBPXwuNhoKxHQ8DTxO9GvE<br>
ZbXeWiIKkqRjYJrHpdc/nkGI0mbr8969MuuspHId3ntgwEHYeX5vWLbf9pRce+vm<br>
TRqWJi25d8uuUhXDtIC7<br>
=8bUc<br>
-----END PGP SIGNATURE-----<br>
<br></blockquote></div><br></div>