[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: sufficient account management checking for locally definedusers
- From: "Martin Schwenke" <martin meltin net>
- To: pam-list redhat com
- Subject: Re: sufficient account management checking for locally definedusers
- Date: Fri, 19 Apr 2002 14:36:05 +1000
>>>>> "Sam" == Sam Hartman <hartmans@mit.edu> writes:
Sam> [I suspect Martin knows what I think quite well, but thought
Sam> I'd bring up my thought for the list.]
Yep... :-)
Martin> things in the wrong direction...
Martin> I have 2 sets of users:
Martin> * Locally defined users in /etc/{passwd,shadow}.
Martin> * Remotely defined users in an LDAP directory.
Martin> [...]
Martin> Therefore, I want to do this:
Martin> account sufficient pam_unix.so
Sam> [...]
Sam> The pam_unix account module is designed to apply restrictions
Sam> to any unix authentication. It has nothing to do with local
Sam> users; pam_unix can be used for any user that NSS can find.
Sam> You seem to be asking for a pam module that does two distinct
Sam> things. First, it applies the restrictions that pam_unix
Sam> would apply if the user is local. Then, it succeeds only for
Sam> local users.
That would be easy to add to pam_unix (via a "local_only" option) and
would avoid the need for a new module. I would also be happy with a
PAM module that only handles local users. However, currently pam_unix
is the closest thing I have.
Sam> Why not split these two distinct checks into two modules.
Sam> Have pam_unix do the checks for pam_unix. Then have another
Sam> module that determines whether you want to bypass
Sam> network-based checks for the current user.
That's what I'm doing right now. It contorts the logic and introduces
an unnecessary inefficiency.
Sam> Such a second module could either be a pam_is_local module or
Sam> could be something like pam_access that checked to see if the
Sam> user was a member of a group. I actually like the second
Sam> option better because it's really hard to determine where NSS
Sam> is getting a particular user from. The concept of local user
Sam> is very configuration dependent.
Which is why, as a system administrator, I should be free to make
policy and PAM should be flexible enough to implement it... without me
needing to write a stack of code... :-)
Sam> So you could have:
Sam> account required pam_unix.so
Sam> account sufficient pam_access.so (or something more specialized)
Sam> account required pam_ldap.so
pam_access uses NSS functions, although it shouldn't if I point it at
a locally defined group...
The problem with using a pam_access + a group is that I have to
complicate my user management process and increase my system
administration load by adding locally defined users to a group, and
make sure that I don't use that group for remotely defined users.
It's extra work and it complicates the configuration. Shouldn't my
security configuration be as simple as possible?
In this particular case (and, I suspect, many others) it is much
easier to let the system do the work of checking if a user is locally
defined, instead of requiring me to define whether each user is
locally defined or not.
Sam> P.S. You're doomed on the whole not dependening on network
Sam> front if nss_ldap appears anywhere in your group nsswitch
Sam> configuration.
"getent passwd root", "getent group root" and "ls -l /root" don't
generate any LDAP traffic. If they did, I'd argue that NSS is broken.
The only LDAP traffic I see when I try to login as root looks to be
generated by pam_unix! :-(
[Right now I can't confirm that, because I don't have a working ltrace
on the boxes where I'm using pam_ldap. I should have a working
ltrace some time today... if the LDAP traffic doesn't come from
somewhere in pam_unix then I'll post a correction...]
Having said all that, I think we're getting closer to a solution. If
pam_localuser is accepted into Linux-PAM and then makes its way into
Debian, I'll be happy enough... even though it isn't the most
efficient solution.
peace & happiness,
martin
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
[]