[Nsspampgsql-devel] error with " DECLARE nss_pgsql_internal_allusers_curs SCROLL CURSOR FOR FOR READ ONLY"
Coiby Xu
coiby.xu at gmail.com
Sat Apr 14 07:11:49 UTC 2012
Hi Stephen,
Thanks for you reply! Another thing is that if running "getent passwd
{shell_user}", it will not search for {shell_user} in database according to
log of pgsql but only in /etc/passwd.
The following are the configs:
*1. nsswitch.conf*
*
*
passwd: files pgsql #Added by GForge install
#Comment by GForge install#passwd: files
shadow: files pgsql #Added by GForge install
#Comment by GForge install#shadow: files
group: files pgsql #Added by GForge install
#Comment by GForge install#group: files
bootparams: nisplus [NOTFOUND=return] files
ethers: files
netmasks: files
networks: files
protocols: files
rpc: files
services: files
netgroup: nisplus
publickey: nisplus
automount: files nisplus
aliases: files nisplus
*2. nss-pgsql.conf*
#----------------- DB connection
connectionstring = user=gforge dbname=gforge
#----------------- NSS queries
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
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
#allusers = SELECT login AS
username,passwd,gecos,('/var/lib/gforge/chroot/home/users/' || login) AS
homedir,shell,uid,gid FROM nss_passwd
getgroupmembersbygid = SELECT login AS username FROM nss_passwd WHERE gid =
$1
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
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
#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
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
*3. nss-pgsql-root.conf*
### NSS Configuration for Gforge
#----------------- DB connection
shadowconnectionstring = user= dbname=gforge
#----------------- NSS queries
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
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
2012/4/14 Stephen Gran <sgran at debian.org>
> This one time, at band camp, Coiby Xu said:
> > Hi all,
> >
> > I'm using libnss_pgsql module but there's problems with it. If I exute
> > "getent passwd", the following messages show
> > in /var/lib/pgsql/data/pg_log/postgresql-Sat.log. And the system is still
> > using /etc/passwd and /etc/group to authenticate ssh uses.
> >
> > ERROR: syntax error at or near "FOR" at character 61
> > > STATEMENT: DECLARE nss_pgsql_internal_allusers_curs SCROLL CURSOR FOR
> > > FOR READ ONLY
> > > ERROR: current transaction is aborted, commands ignored until end of
> > > transaction block
> > > STATEMENT: FETCH FROM nss_pgsql_internal_allusers_curs
> >
> >
> > Eveny I modify codes nss-pgsql.conf like:
> >
> > > 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
> >
> > to
> >
> > > getpwnam = SELECT AS
> > > ,passwd,gecos,('/var/lib/gforge/chroot/home/users/' || login) AS
> > > homedir,shell,uid,gid FROM nss_passwd WHERE login = $1
> >
> > The previous error message would show. I can't figure out why. Can
> anyone
> > give some advice? Thanks!
>
> The cursor declaration is:
> asprintf(&stmt, "DECLARE nss_pgsql_internal_%s_curs SCROLL CURSOR FOR "
> "%s FOR READ ONLY", what, getcfg(what));
>
> So, you are somehow calling `getent allusers` with no config for that.
> This sounds like a config error to me, but I can't tell without seeing
> your config.
>
> Cheers,
> --
> -----------------------------------------------------------------
> | ,''`. Stephen Gran |
> | : :' : sgran at debian.org |
> | `. `' Debian user, admin, and developer |
> | `- http://www.debian.org |
> -----------------------------------------------------------------
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.10 (GNU/Linux)
>
> iQIcBAEBCAAGBQJPiSCQAAoJELMRjO+K6o/uZuwP/Ra7/rTHDHYcfojcGbB2pbU0
> vxq/J7BZEraDZYerlo5N/HjAKerq78gemQG/KTz/BIvyeRV3Mk6S6JRrMKAA3+kq
> Qwx1fH5ktLeg227K0AcI1q25wx+8d4nb9wh8lEuzCkGOpa7xOzYclteYSb87bmZ+
> v+r3Aem3K6f9SUWZcWg9ghbLW7ZY+NXA3q+3J8KxUuHvMeHS+Y+4Jr8FtOHRhHLJ
> 0USIezJaP991k0GksfXim8MoSLyQgtsraTSGdcSp1ynjmVB6mEhW2nb7oEX05/MO
> r0AJMGK54RSxZWtpOFCl10OiZ9/JxDUAYDidE50tqHASt7aHpx2go/sL/rqMCmcs
> RlJ1bxVhCppird0hrHft6hgTmB3XXXDmlhXoz5o4ghto8D/VpPoUzDzBqe76pHVl
> rzoo/d12nNTu+f1yviFaSGIaW1oFzIyB/hqD2xfJBiQr3y2HACMB3OiV6OtfiOVP
> fY8U0UaL4VdHxUi5AL+8IUao4kUNOC7dePF8nIDXUBn+E+acicpESmLxGmoYDgVM
> DpAFmPVa9LCMiq5PfeCt7qYYJuVm6D6XiLGC76HwgbcBPXwuNhoKxHQ8DTxO9GvE
> ZbXeWiIKkqRjYJrHpdc/nkGI0mbr8969MuuspHId3ntgwEHYeX5vWLbf9pRce+vm
> TRqWJi25d8uuUhXDtIC7
> =8bUc
> -----END PGP SIGNATURE-----
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.alioth.debian.org/pipermail/nsspampgsql-devel/attachments/20120414/ee82ab81/attachment.html>
More information about the Nsspampgsql-devel
mailing list