I have a similar problem as decribed below;
I can start postgresql manually. But when started upon boot in runlevel default it fails with;
su: Cannot drop the controlling terminal
The following file(s) are not readable by 'postgres':
Obviously they are readable by postgres, and a /etc/init.d/postgresql-9.1 start, does work. shadow-4.1.5-r2 is installed. I have tried to disable acl, by noacl in the kernel, doesn't make any difference.
Try downgrading shadow back to stable. (sys-apps/shadow-126.96.36.199)
As mentioned in one of the threads, there's a regression in su.
PostgreSQL's initscript uses 'start-stop-daemon' instead of 'su' now. (It has for a while, actually.)
This issue is not singular to PostgreSQL, though.