Home | History | Annotate | Download | only in user

Lines Matching refs:up

735 setdefaults(user_t *up)
758 if (fprintf(fp, "group\t\t%s\n", up->u_primgrp) <= 0 ||
759 fprintf(fp, "base_dir\t%s\n", up->u_basedir) <= 0 ||
760 fprintf(fp, "skel_dir\t%s\n", up->u_skeldir) <= 0 ||
761 fprintf(fp, "shell\t\t%s\n", up->u_shell) <= 0 ||
763 fprintf(fp, "class\t\t%s\n", up->u_class) <= 0 ||
764 fprintf(fp, "homeperm\t0%o\n", up->u_homeperm) <= 0 ||
766 fprintf(fp, "inactive\t%s\n", (up->u_inactive == NULL) ?
767 UNSET_INACTIVE : up->u_inactive) <= 0 ||
768 fprintf(fp, "expire\t\t%s\n", (up->u_expire == NULL) ?
769 UNSET_EXPIRY : up->u_expire) <= 0 ||
770 fprintf(fp, "preserve\t%s\n", (up->u_preserve == 0) ?
776 for (i = (up->u_defrc != up->u_rc) ? up->u_defrc : 0;
777 i < up->u_rc ; i++) {
778 if (fprintf(fp, "range\t\t%d..%d\n", up->u_rv[i].r_from,
779 up->u_rv[i].r_to) <= 0) {
804 user_t *up = &dp->user;
809 memsave(&up->u_primgrp, DEF_GROUP, strlen(DEF_GROUP));
810 memsave(&up->u_basedir, DEF_BASEDIR, strlen(DEF_BASEDIR));
811 memsave(&up->u_skeldir, DEF_SKELDIR, strlen(DEF_SKELDIR));
812 memsave(&up->u_shell, DEF_SHELL, strlen(DEF_SHELL));
813 memsave(&up->u_comment, DEF_COMMENT, strlen(DEF_COMMENT));
815 memsave(&up->u_class, DEF_CLASS, strlen(DEF_CLASS));
817 up->u_rsize = 16;
818 up->u_defrc = 0;
819 NEWARRAY(range_t, up->u_rv, up->u_rsize, exit(1));
820 up->u_inactive = DEF_INACTIVE;
821 up->u_expire = DEF_EXPIRE;
822 up->u_homeperm = DEF_HOMEPERM;
827 if (stat(_PATH_USERMGMT_CONF, &st) < 0 && !setdefaults(up)) {
837 memsave(&up->u_primgrp, (char *)cp, strlen(cp));
840 memsave(&up->u_basedir, (char *)cp, strlen(cp));
843 memsave(&up->u_skeldir, (char *)cp, strlen(cp));
846 memsave(&up->u_shell, cp, strlen(cp));
850 memsave(&up->u_class, cp, strlen(cp));
857 up->u_homeperm = strtoul(cp, NULL, 8);
862 if (up->u_inactive) {
863 FREE(up->u_inactive);
865 up->u_inactive = NULL;
867 memsave(&up->u_inactive, cp, strlen(cp));
872 (void)save_range(&up->u_r, cp);
877 up->u_preserve =
884 if (up->u_expire) {
885 FREE(up->u_expire);
887 up->u_expire = NULL;
889 memsave(&up->u_expire, cp, strlen(cp));
901 if (up->u_rc == 0) {
902 up->u_rv[up->u_rc].r_from = DEF_LOWUID;
903 up->u_rv[up->u_rc].r_to = DEF_HIGHUID;
904 up->u_rc += 1;
906 up->u_defrc = up->u_rc;
1066 adduser(char *login_name, user_t *up)
1082 if (!valid_login(login_name, up->u_allow_samba)) {
1086 if (!valid_class(up->u_class)) {
1088 login_name, up->u_class);
1120 sync_uid_gid = (strcmp(up->u_primgrp, "=uid") == 0);
1121 if (up->u_uid == -1) {
1128 for (i = up->u_defrc; !got_id && i < up->u_rc ; i++) {
1129 got_id = getnextuid(sync_uid_gid, &up->u_uid,
1130 up->u_rv[i].r_from, up->u_rv[i].r_to);
1137 for (i = 0; !got_id && i < up->u_defrc; i++) {
1138 got_id = getnextuid(sync_uid_gid, &up->u_uid,
1139 up->u_rv[i].r_from, up->u_rv[i].r_to);
1146 up->u_uid);
1150 if (!(up->u_flags & F_DUPUID) && getpwuid((uid_t)(up->u_uid)) != NULL) {
1154 "uid %d is already in use", login_name, up->u_uid);
1158 if (getgrgid((gid_t)(up->u_uid)) != NULL) {
1163 up->u_uid);
1165 gid = up->u_uid;
1166 } else if ((grp = getgrnam(up->u_primgrp)) != NULL) {
1168 } else if (is_number(up->u_primgrp) &&
1169 (grp = getgrgid((gid_t)atoi(up->u_primgrp))) != NULL) {
1175 login_name, up->u_primgrp);
1178 if (!(up->u_flags & F_DUPUID) && getpwnam(login_name) != NULL) {
1184 if (up->u_flags & F_HOMEDIR) {
1185 (void)strlcpy(home, up->u_home, sizeof(home));
1187 /* if home directory hasn't been given, make it up */
1188 (void)snprintf(home, sizeof(home), "%s/%s", up->u_basedir,
1191 if (up->u_flags & F_SHELL) {
1193 if (!valid_shell(up->u_shell)) {
1200 login_name, up->u_shell);
1205 if (!scantime(&inactive, up->u_inactive)) {
1207 up->u_inactive);
1209 if (!scantime(&expire, up->u_expire) || expire == -1) {
1211 up->u_expire);
1214 if (lstat(home, &st) < 0 && !(up->u_flags & F_MKDIR)) {
1219 if (up->u_password != NULL && valid_password_length(up->u_password)) {
1220 (void)strlcpy(password, up->u_password, sizeof(password));
1224 if (up->u_password != NULL) {
1226 up->u_password, password);
1232 up->u_uid,
1235 up->u_class,
1241 up->u_comment,
1243 up->u_shell);
1252 if (up->u_flags & F_MKDIR) {
1266 (void)copydotfiles(up->u_skeldir, up->u_uid, gid, home,
1267 up->u_homeperm);
1270 up->u_primgrp, "=uid") == 0 &&
1278 if (up->u_groupc > 0 &&
1279 !append_group(login_name, up->u_groupc, up->u_groupv)) {
1297 "shell=%s", login_name, up->u_uid, gid, home, up->u_shell);
1419 moduser(char *login_name, char *newlogin, user_t *up, int allow_samba)
1478 if (up != NULL) {
1479 if (up->u_flags & F_USERNAME) {
1498 if (up->u_flags & F_MKDIR) {
1500 up->u_basedir, newlogin);
1504 if (up->u_flags & F_PASSWORD) {
1505 if (up->u_password != NULL) {
1506 if (!valid_password_length(up->u_password)) {
1512 login_name, up->u_password);
1521 LOCKED, up->u_password) == -1) {
1531 pwp->pw_passwd = up->u_password;
1537 if (up->u_locked == LOCK) {
1553 } else if (up->u_locked == UNLOCK) {
1563 if (up->u_flags & F_UID) {
1565 if (!(up->u_flags & F_DUPUID) &&
1566 getpwuid((uid_t)(up->u_uid)) != NULL) {
1571 up->u_uid);
1573 pwp->pw_uid = up->u_uid;
1575 if (up->u_flags & F_GROUP) {
1577 if (strcmp(up->u_primgrp, "=uid") == 0) {
1591 up->u_uid);
1593 } else if ((grp = getgrnam(up->u_primgrp)) != NULL) {
1595 } else if (is_number(up->u_primgrp) &&
1597 (gid_t)atoi(up->u_primgrp))) != NULL) {
1604 up->u_primgrp);
1607 if (up->u_flags & F_INACTIVE) {
1608 if (!scantime(&pwp->pw_change, up->u_inactive)) {
1611 up->u_inactive);
1614 if (up->u_flags & F_EXPIRE) {
1615 if (!scantime(&pwp->pw_expire, up->u_expire) ||
1619 up->u_expire);
1623 if (up->u_flags & F_COMMENT) {
1624 pwp->pw_gecos = up->u_comment;
1626 if (up->u_flags & F_HOMEDIR) {
1627 pwp->pw_dir = up->u_home;
1629 if (up->u_flags & F_SHELL) {
1631 if (!valid_shell(up->u_shell)) {
1638 login_name, up->u_shell);
1640 pwp->pw_shell = up->u_shell;
1642 pwp->pw_shell = up->u_shell;
1646 if (up->u_flags & F_CLASS) {
1647 if (!valid_class(up->u_class)) {
1652 up->u_class);
1654 pwp->pw_class = up->u_class;
1666 if (up != NULL) {
1706 if (up != NULL) {
1707 if ((up->u_flags & F_MKDIR) &&
1715 if (up->u_groupc > 0 &&
1716 !append_group(newlogin, up->u_groupc, up->u_groupv)) {
1727 if (up != NULL && strcmp(login_name, newlogin) == 0) {
1740 if (up == NULL) {
1851 user_t *up = &def.user;
1860 up->u_uid = -1;
1875 memsave(&up->u_inactive, "-1", strlen("-1"));
1878 while (up->u_groupc < NGROUPS_MAX &&
1879 (up->u_groupv[up->u_groupc] = strsep(&optarg, ",")) != NULL) {
1880 if (up->u_groupv[up->u_groupc][0] != 0) {
1881 up->u_groupc++;
1891 up->u_allow_samba = 1;
1896 memsave(&up->u_basedir, optarg, strlen(optarg));
1899 memsave(&up->u_comment, optarg, strlen(optarg));
1902 memsave(&up->u_home, optarg, strlen(optarg));
1903 up->u_flags |= F_HOMEDIR;
1907 memsave(&up->u_expire, optarg, strlen(optarg));
1911 memsave(&up->u_inactive, optarg, strlen(optarg));
1915 memsave(&up->u_primgrp, optarg, strlen(optarg));
1919 memsave(&up->u_skeldir, optarg, strlen(optarg));
1924 memsave(&up->u_class, optarg, strlen(optarg));
1928 up->u_flags |= F_MKDIR;
1933 up->u_homeperm = strtoul(optarg, NULL, 8);
1937 up->u_flags |= F_DUPUID;
1941 memsave(&up->u_password, optarg, strlen(optarg));
1947 (void)save_range(&up->u_r, optarg);
1951 up->u_flags |= F_SHELL;
1953 memsave(&up->u_shell, optarg, strlen(optarg));
1956 up->u_uid = check_numeric(optarg, "uid");
1971 return setdefaults(up) ? EXIT_SUCCESS : EXIT_FAILURE;
1973 (void)printf("group\t\t%s\n", up->u_primgrp);
1974 (void)printf("base_dir\t%s\n", up->u_basedir);
1975 (void)printf("skel_dir\t%s\n", up->u_skeldir);
1976 (void)printf("shell\t\t%s\n", up->u_shell);
1978 (void)printf("class\t\t%s\n", up->u_class);
1979 (void)printf("homeperm\t0%o\n", up->u_homeperm);
1981 (void)printf("inactive\t%s\n", (up->u_inactive == NULL) ?
1982 UNSET_INACTIVE : up->u_inactive);
1983 (void)printf("expire\t\t%s\n", (up->u_expire == NULL) ?
1984 UNSET_EXPIRY : up->u_expire);
1986 for (i = 0 ; i < up->u_rc ; i++) {
1988 up->u_rv[i].r_from, up->u_rv[i].r_to);
2000 return adduser(*argv, up) ? EXIT_SUCCESS : EXIT_FAILURE;
2013 user_t *up = &def.user;
2020 up->u_locked = -1;
2025 while (up->u_groupc < NGROUPS_MAX &&
2026 (up->u_groupv[up->u_groupc] =
2028 if (up->u_groupv[up->u_groupc][0] != 0) {
2029 up->u_groupc++;
2036 up->u_flags |= F_SECGROUP;
2040 up->u_allow_samba = 1;
2044 memsave(&up->u_comment, optarg, strlen(optarg));
2045 up->u_flags |= F_COMMENT;
2049 up->u_locked = LOCK;
2051 up->u_locked = UNLOCK;
2059 memsave(&up->u_inactive, "-1", strlen("-1"));
2060 up->u_flags |= F_INACTIVE;
2063 memsave(&up->u_home, optarg, strlen(optarg));
2064 up->u_flags |= F_HOMEDIR;
2067 memsave(&up->u_expire, optarg, strlen(optarg));
2068 up->u_flags |= F_EXPIRE;
2071 memsave(&up->u_inactive, optarg, strlen(optarg));
2072 up->u_flags |= F_INACTIVE;
2075 memsave(&up->u_primgrp, optarg, strlen(optarg));
2076 up->u_flags |= F_GROUP;
2081 up->u_flags |= F_USERNAME;
2085 memsave(&up->u_class, optarg, strlen(optarg));
2086 up->u_flags |= F_CLASS;
2090 up->u_flags |= F_MKDIR;
2093 up->u_flags |= F_DUPUID;
2097 memsave(&up->u_password, optarg, strlen(optarg));
2098 up->u_flags |= F_PASSWORD;
2102 memsave(&up->u_shell, optarg, strlen(optarg));
2103 up->u_flags |= F_SHELL;
2106 up->u_uid = check_numeric(optarg, "uid");
2107 up->u_flags |= F_UID;
2119 if ((up->u_flags & F_MKDIR) && !(up->u_flags & F_HOMEDIR) &&
2120 !(up->u_flags & F_USERNAME)) {
2122 up->u_flags &= ~F_MKDIR;
2131 return moduser(*argv, (have_new_user) ? newuser : *argv, up,
2132 up->u_allow_samba) ? EXIT_SUCCESS : EXIT_FAILURE;
2146 user_t *up = &def.user;
2164 up->u_allow_samba = 1;
2170 up->u_preserve = (strcmp(optarg, "true") == 0) ? 1 :
2192 return setdefaults(up) ? EXIT_SUCCESS : EXIT_FAILURE;
2194 (void)printf("preserve\t%s\n", (up->u_preserve) ? "true" :
2212 if (up->u_preserve) {
2213 up->u_flags |= F_SHELL;
2214 memsave(&up->u_shell, _PATH_SBIN_NOLOGIN,
2218 memsave(&up->u_password, password, strlen(password));
2219 up->u_flags |= F_PASSWORD;
2221 return moduser(*argv, *argv, up, up->u_allow_samba) ?
2228 return moduser(*argv, *argv, NULL, up->u_allow_samba) ?