Re: [PATCH] cifs-utils: Add uid/gid to SID mapping functions (try #4)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I did a review early this month and Shirish seems to have incorporated the
feedback so I plan to rereview the kernel part of the patchset after
the ntlmv2 and FindFirst patches are done/tested/merged

On Thu, Aug 25, 2011 at 12:54 PM, Jeff Layton <jlayton@xxxxxxxxx> wrote:
> On Thu, 25 Aug 2011 06:44:29 -0500
> Shirish Pargaonkar <shirishpargaonkar@xxxxxxxxx> wrote:
>
>> On Tue, Aug 9, 2011 at 2:31 PM,  <shirishpargaonkar@xxxxxxxxx> wrote:
>> > From: Shirish Pargaonkar <shirishpargaonkar@xxxxxxxxx>
>> >
>> >
>> > Add functions to map a uid and gid to a SID.  These functions are
>> > similar to SID to uid and gid mapping functions.
>> > A SID is what is returned to the cifs module.
>> >
>> >
>> > Signed-off-by: Shirish Pargaonkar <shirishpargaonkar@xxxxxxxxx>
>> > ---
>> >  cifs.idmap.c |   37 +++++++++++++++++++++++++++++++++++++
>> >  1 files changed, 37 insertions(+), 0 deletions(-)
>> >
>> > diff --git a/cifs.idmap.c b/cifs.idmap.c
>> > index 56edb58..80802d7 100644
>> > --- a/cifs.idmap.c
>> > +++ b/cifs.idmap.c
>> > @@ -134,6 +134,43 @@ cifs_idmap(const key_serial_t key, const char *key_descr)
>> >                goto cifs_idmap_ret;
>> >        }
>> >
>> > +       sidstr = strget(key_descr, "oi:");
>> > +       if (sidstr) {
>> > +               uid = atoi(sidstr);
>> > +               syslog(LOG_DEBUG, "SID: %s, uid: %d", sidstr, uid);
>> > +               rc = wbcUidToSid(uid, &sid);
>> > +               if (rc)
>> > +                       syslog(LOG_DEBUG, "uid %d to SID  error: %d", uid, rc);
>> > +               if (!rc) { /* SID has been mapped to a uid */
>> > +                       rc = keyctl_instantiate(key, &sid,
>> > +                                       sizeof(struct wbcDomainSid), 0);
>> > +                       if (rc)
>> > +                               syslog(LOG_ERR, "%s: key inst: %s",
>> > +                                       __func__, strerror(errno));
>> > +               }
>> > +
>> > +               goto cifs_idmap_ret;
>> > +       }
>> > +
>> > +       sidstr = strget(key_descr, "gi:");
>> > +       if (sidstr) {
>> > +               gid = atoi(sidstr);
>> > +               syslog(LOG_DEBUG, "SID: %s, gid: %d", sidstr, gid);
>> > +               rc = wbcGidToSid(gid, &sid);
>> > +               if (rc)
>> > +                       syslog(LOG_DEBUG, "gid %d to SID error: %d", gid, rc);
>> > +               if (!rc) { /* SID has been mapped to a gid */
>> > +                       rc = keyctl_instantiate(key, &sid,
>> > +                                       sizeof(struct wbcDomainSid), 0);
>> > +                       if (rc)
>> > +                               syslog(LOG_ERR, "%s: key inst: %s",
>> > +                                       __func__, strerror(errno));
>> > +               }
>> > +
>> > +               goto cifs_idmap_ret;
>> > +       }
>> > +
>> > +
>> >        syslog(LOG_DEBUG, "Invalid key: %s", key_descr);
>> >
>> >  cifs_idmap_ret:
>> > --
>> > 1.6.0.2
>> >
>> >
>>
>> Jeff, any comments on this? I think this patch and kernel parts
>> of this patchset, should be doing similar to what is done currently
>> for server that support unix extensions.
>> A care is taken so that only the server ids can be assigned as
>> an id to change to, if an id can't be resolved, then chown/chgrp fail
>> and if an id can be resolved, the server is the one which whether
>> to apply the changed security descriptor or not.
>>
>> Regards,
>>
>> Shirish
>
> The userspace part of this looks fine. I don't have the time to review
> the kernel pieces however. If Steve plans to review and commit those,
> then I'll plan to pull the userspace patch into the next cifs-utils
> release.
>
> --
> Jeff Layton <jlayton@xxxxxxxxx>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>



-- 
Thanks,

Steve
--
To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux