I'm sponsoring this fast track for Rob Thurlow and the CIFS client
project team.  It requests a Patch release binding and a Committed
interface taxonomy.

This case number and title were created as a placeholder during
PSARC/2005/695 - CIFS Client on Solaris for a case dependency.
The project team decided to change the actual PAM module name to
better align with other parts of the CIFS client project from
pam_smb_login as in the case title (and also in the CIFS client
opinion) to pam_smbfs_login.  I'm leaving the case name the same
for reference purposes.

The pam_smbfs_login(5) man page and a diffmarked privileges(5)
man page are in the case directory.

The timer is set for 6 Feb, 2008.

Gary..
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Background:
==========
PSARC 2005/695, the CIFS client for Solaris, implements the
"smbutil login" subcommand to store a persistent password in
the kernel so that subsequent actions for an identity can be
performed without prompting for a password.  This functionality
is meant for non-Kerberos sites.  An example is:

ecu[2]% smbutil view //thurlow at nano
Password:
Share        Type       Comment
-------------------------------
netlogon     disk       Network Logon Service
ipc$         IPC        IPC Service (Samba Server)
tmp          disk       Temporary file space
public       disk       Public Stuff
ethereal     disk       /export/ethereal
myshare      disk       Pavan's stuff
root         disk       Home Directories

7 shares listed from 7 available

ecu[3]% smbutil login
Password for WORKGROUP/THURLOW:

ecu[4]% smbutil login -c
Keychain entry exists.

ecu[5]% smbutil view //thurlow at nano
Share        Type       Comment
-------------------------------
netlogon     disk       Network Logon Service
ipc$         IPC        IPC Service (Samba Server)
tmp          disk       Temporary file space
public       disk       Public Stuff
ethereal     disk       /export/ethereal
myshare      disk       Pavan's stuff
root         disk       Home Directories

7 shares listed from 7 available

In environments where Active Directory or Kerberos are not in use,
user names and passwords can be synchronized between CIFS servers
and Solaris clients.  In such environments, it can be useful to
store the user's login password at login time.

Proposal:
========
This case proposes to add a PAM module, pam_smbfs_login(5), to
do this.  Without a separate password prompt, it behaves as
if the "smbutil login" command above had been run, storing
the CIFS LM/NTLM hash[1] of the login password in the kernel.
The module will be documented, but not configured in /etc/pam.conf
by default.

Details:
=======
The default domain is computed based on $HOME/.nsmbrc or the SMF
settings from "sharectl get smbfs"; if neither is
available, the system default "WORKGROUP" is used.  The password
is stored for the user name and corresponding UID logging in.

We are changing the name from what the initial case suggested
to be consistent with other naming in the project.

Since PAM is run as the root uid at login time and must supply a UID
other than its own to store a password for the user, it will require
the proc_owner privilege to store the password hashs.


pam_smbfs_login(5):
        Is in the case directory.

privileges(5):
     PRIV_PROC_OWNER
         Allow a process to send signals to other  processes  and
         inspect and modify the process state in other processes,
         regardless of ownership. When modifying another process,
         additional  restrictions  apply: the effective privilege
         set of the attaching process must be a superset  of  the
         target  process's  effective, permitted, and inheritable
         sets; the limit set must be a superset of  the  target's
         limit  set;  if  the target process has any UID set to 0
         all privilege must be asserted unless the effective  UID
         is  0.  Allow  a  process to bind arbitrary processes to
         CPUs.
+        If the CIFS client is configured, allows a process to set
+        CIFS password hashes regardless of ownership.

========
[1] See PSARC/2006/715/final.materials/cifs-design_1_1.pdf Appendix D for
        LM/NTLM details.

Reply via email to