Lines Matching refs:grp

31 #include <grp.h>
273 smb_group_t grp;
289 bzero(&grp, sizeof (grp));
290 grp.sg_name = smb_strlwr(gname);
291 grp.sg_cmnt = cmnt;
326 grp.sg_id.gs_type = SidTypeAlias;
327 grp.sg_domain = SMB_DOMAIN_LOCAL;
328 grp.sg_rid = pxgrp->gr_gid;
336 grp.sg_id.gs_type = wka->wka_type;
342 (void) smb_sid_getrid(sid, &grp.sg_rid);
344 grp.sg_domain = SMB_DOMAIN_BUILTIN;
345 grp.sg_privs = smb_privset_new();
346 smb_lgrp_set_default_privs(&grp);
349 if (smb_lgrp_exists(grp.sg_name)) {
354 grp.sg_attr = SE_GROUP_MANDATORY | SE_GROUP_ENABLED_BY_DEFAULT |
358 rc = smb_lgrp_gtbl_insert(db, &grp);
361 smb_privset_free(grp.sg_privs);
374 smb_group_t grp;
401 grp.sg_name = new_gname;
419 rc = smb_lgrp_gtbl_update(db, gname, &grp, SMB_LGRP_GTBL_NAME);
472 smb_group_t grp;
487 grp.sg_cmnt = cmnt;
493 rc = smb_lgrp_gtbl_update(db, gname, &grp, SMB_LGRP_GTBL_CMNT);
508 smb_group_t grp;
527 rc = smb_lgrp_gtbl_lookup(db, SMB_LGRP_GTBL_NAME, &grp,
533 *cmnt = grp.sg_cmnt;
534 grp.sg_cmnt = NULL;
535 smb_lgrp_free(&grp);
592 smb_group_t grp;
610 rc = smb_lgrp_gtbl_lookup(db, SMB_LGRP_GTBL_NAME, &grp,
616 *enable = (smb_privset_query(grp.sg_privs, priv_lid) == 1);
617 smb_lgrp_free(&grp);
707 * structure itself only the fields, so the given grp
713 smb_lgrp_getbyname(char *name, smb_group_t *grp)
730 rc = smb_lgrp_gtbl_lookup(db, SMB_LGRP_GTBL_NAME, grp,
745 * structure itself only the fields, so the given grp
750 * If grp is NULL no information would be returned. The
755 smb_lgrp_getbyrid(uint32_t rid, smb_domain_type_t domtype, smb_group_t *grp)
765 if (grp == NULL) {
766 grp = &tmpgrp;
771 rc = smb_lgrp_gtbl_lookup(db, SMB_LGRP_GTBL_SIDRID, grp, infolvl,
826 smb_lgrp_free(smb_group_t *grp)
830 if (grp == NULL)
833 free(grp->sg_name);
834 free(grp->sg_cmnt);
835 smb_sid_free(grp->sg_id.gs_sid);
836 smb_privset_free(grp->sg_privs);
838 for (i = 0; i < grp->sg_nmembers; i++)
839 smb_sid_free(grp->sg_members[i].gs_sid);
840 free(grp->sg_members);
945 * only the fields, so the given grp pointer has to point to a group structure.
959 smb_lgrp_iterate(smb_giter_t *iter, smb_group_t *grp)
974 bzero(grp, sizeof (smb_group_t));
1007 rc = smb_lgrp_decode(grp, values, SMB_LGRP_INFO_ALL,
1029 smb_lgrp_is_member(smb_group_t *grp, smb_sid_t *sid)
1033 if (grp == NULL || grp->sg_members == NULL || sid == NULL)
1036 for (i = 0; i < grp->sg_nmembers; i++) {
1037 if (smb_sid_cmp(grp->sg_members[i].gs_sid, sid))
1377 * structure itself only the fields, so the given grp
1383 smb_lgrp_gtbl_lookup(sqlite3 *db, int key, smb_group_t *grp, int infolvl, ...)
1396 bzero(grp, sizeof (smb_group_t));
1456 rc = smb_lgrp_decode(grp, &result[SMB_LGRP_GTBL_NCOL], infolvl, db);
1547 smb_lgrp_gtbl_insert(sqlite3 *db, smb_group_t *grp)
1559 dom_idx = (grp->sg_domain == SMB_DOMAIN_LOCAL)
1564 smb_lgrp_encode_privset(grp, &plist);
1570 grp->sg_name, dom_idx, grp->sg_rid, grp->sg_id.gs_type,
1571 grp->sg_attr, (grp->sg_cmnt) ? grp->sg_cmnt : "",
1582 grp->sg_name, NULL_MSGCHK(errmsg));
1633 smb_lgrp_gtbl_update(sqlite3 *db, char *gname, smb_group_t *grp, int col_id)
1648 if (smb_lgrp_gtbl_exists(db, grp->sg_name))
1651 "WHERE name = '%s'", grp->sg_name, gname);
1656 "WHERE name = '%s'", grp->sg_cmnt, gname);
2259 smb_lgrp_encode_privset(smb_group_t *grp, smb_lgplist_t *plist)
2268 privs = grp->sg_privs;
2292 smb_lgrp_decode_privset(smb_group_t *grp, char *nprivs, char *privs)
2302 grp->sg_privs = smb_privset_new();
2303 if (grp->sg_privs == NULL)
2307 smb_privset_enable(grp->sg_privs, plist.p_ids[i]);
2320 smb_lgrp_decode_members(smb_group_t *grp, char *nmembers, char *members,
2331 grp->sg_nmembers = 0;
2332 grp->sg_members = NULL;
2368 grp->sg_nmembers = m_num;
2369 grp->sg_members = m_sids;
2376 * Fills out the fields of the given group (grp) based in the
2384 smb_lgrp_decode(smb_group_t *grp, char **values, int infolvl, sqlite3 *db)
2393 grp->sg_name = strdup(values[SMB_LGRP_GTBL_NAME]);
2394 if (grp->sg_name == NULL)
2399 grp->sg_cmnt = strdup(values[SMB_LGRP_GTBL_CMNT]);
2400 if (grp->sg_cmnt == NULL) {
2401 smb_lgrp_free(grp);
2409 grp->sg_rid = atoi(values[SMB_LGRP_GTBL_SIDRID]);
2410 grp->sg_attr = atoi(values[SMB_LGRP_GTBL_SIDATR]);
2411 grp->sg_id.gs_type = atoi(values[SMB_LGRP_GTBL_SIDTYP]);
2412 rc = smb_lgrp_getsid(sid_idx, &grp->sg_rid, grp->sg_id.gs_type,
2413 db, &grp->sg_id.gs_sid);
2415 smb_lgrp_free(grp);
2418 grp->sg_domain = (sid_idx == SMB_LGRP_POSIX_IDX)
2423 rc = smb_lgrp_decode_privset(grp, values[SMB_LGRP_GTBL_NPRIVS],
2427 smb_lgrp_free(grp);
2433 rc = smb_lgrp_decode_members(grp, values[SMB_LGRP_GTBL_NMEMBS],
2436 smb_lgrp_free(grp);
2467 smb_lgrp_set_default_privs(smb_group_t *grp)
2469 if (smb_strcasecmp(grp->sg_name, "Administrators", 0) == 0) {
2470 smb_privset_enable(grp->sg_privs, SE_TAKE_OWNERSHIP_LUID);
2474 if (smb_strcasecmp(grp->sg_name, "Backup Operators", 0) == 0) {
2475 smb_privset_enable(grp->sg_privs, SE_BACKUP_LUID);
2476 smb_privset_enable(grp->sg_privs, SE_RESTORE_LUID);
2665 struct group grp, *grpp;
2677 while ((grpp = getgrent_r(&grp, buf, len)) != NULL) {