alterator-users-10.3/000075500000000000000000000000001124747012000145655ustar00rootroot00000000000000alterator-users-10.3/Makefile000064400000000000000000000002031124747012000162200ustar00rootroot00000000000000NAME=users INSTALL=/usr/bin/install all: clean: clean-po install: install-module include /usr/share/alterator/build/module.mak alterator-users-10.3/applications/000075500000000000000000000000001124747012000172535ustar00rootroot00000000000000alterator-users-10.3/applications/users.desktop000064400000000000000000000005421124747012000220100ustar00rootroot00000000000000[Desktop Entry] Type=Application Categories=X-Alterator-Users Icon=users Terminal=false Name=Local user accounts X-Alterator-URI=/users X-Alterator-Weight=30 X-Alterator-Help=users Name[ru]=Локальные учётные записи Name[uk]=Налаштування локальних користувачів Name[pt_BR]=Contas de Úsuarios Locais alterator-users-10.3/backend3/000075500000000000000000000000001124747012000162375ustar00rootroot00000000000000alterator-users-10.3/backend3/users000075500000000000000000000133311124747012000173270ustar00rootroot00000000000000#!/bin/sh alterator_api_version=1 default_groups="cdwriter cdrom audio proc radio camera floppy xgrp scanner uucp" default_groups_file=/usr/share/install3/default-groups ## # $ALTERATOR_DESTDIR - exported by installer. # # XXX: works only for: "add new user" # DESTDIR="/" CHROOT_EXE="" if [ -d "${ALTERATOR_DESTDIR:-}" ]; then DESTDIR="$ALTERATOR_DESTDIR" CHROOT_EXE="chroot $DESTDIR" fi #turn off auto expansion set -f . alterator-sh-functions . shell-quote UID_MIN=$(grep '^UID_MIN' /etc/login.defs 2>/dev/null|sed -r 's,UID_MIN[[:space:]]+,,') [ -z "$UID_MIN" ] && UID_MIN=500 local_getent() { local re="${2:-.*}" grep "^$re:" "/etc/$1" } user_list() { local_getent passwd| while IFS=':' read name password uid gid gecos home shell; do [ "$uid" -ge "$UID_MIN" ] || continue [ "$shell" == "/sbin/nologin" ] || grep -qs "^$shell$" /etc/shells || continue [ -x "$shell" ] || continue echo "$name" done 2>/dev/null } is_defined() { set |grep -qs "^$1=" } user_args() { local args= is_defined "in_gecos" && args="$args -c \"$(quote_shell "$in_gecos")\"" [ -n "$in_home" ] && args="$args -d \"$(quote_shell "$in_home")\"" [ -n "$in_shell" ] && args="$args -s \"$in_shell\"" echo "$args" } user_read() { local name="$1";shift local_getent passwd "$name"| (IFS=':' read name password uid gid gecos home shell; write_string_param gecos "$gecos" write_string_param home "$home" write_string_param shell "$shell" ! local_getent group wheel|cut -d: -f4|fgrep -qws "$name" write_bool_param allow_su "$?") } user_write_error() { local msg="$(printf "$@")" write_error "$msg" return 1 } user_write_retcode() { case "$1" in 1) write_error "`_ "can't update password file"`" ;; #' 2) write_error "`_ "invalid command syntax"`" ;; 3) write_error "`_ "invalid argument to option"`" ;; 4) write_error "`_ "uid already in use"`" ;; 6) write_error "`_ "specified user doesn't exist"`" ;; #' 8) write_error "`_ "user currently logged in"`" ;; 9) write_error "`_ "username already in use"`" ;; 10) write_error "`_ "can't update group file"`" ;; #' 12) write_error "`_ "can't create or remove home directory"`" ;;#' 13) write_error "`_ "can't create mail spool"`" ;; #' *) write_error "retcode=$1" ;; esac return "$1" } user_chpasswd() { echo "$1:$2"| $CHROOT_EXE /usr/sbin/chpasswd || user_write_error "`_ "cannot change password"`" } user_new() { $CHROOT_EXE /usr/sbin/useradd "$@" || user_write_retcode "$?" } user_write() { /usr/sbin/usermod "$@" || user_write_retcode "$?" } user_delete() { /usr/sbin/userdel "$1" || user_write_retcode "$?" } group_write_retcode() { case "$1" in 2) write_error "`_ "invalid command syntax"`" ;; 3) write_error "`_ "invalid group name"`" ;; 4) write_error "`_ "gid not unique"`" ;; 6) write_error "`_ "specified group doesn't exist"`" ;; 8) write_error "`_ "can't remove user's primary group"`" ;; #' 9) write_error "`_ "group name not unique"`" ;; 10) write_error "`_ "can't update group file"`" ;; #' *) write_error "retcode=$1" ;; esac return "$1" } group_new() { $CHROOT_EXE /usr/sbin/groupadd -f -r "$1" 2>/dev/null || group_write_retcode "$?" } group_include() { group_new "$1" || return 1 $CHROOT_EXE /usr/bin/gpasswd -a "$2" "$1" >/dev/null || user_write_error "`_ "unable to add user %s to group %s"`" "$2" "$1" } group_include_default() { [ -s "$DESTDIR/$default_groups_file" ] && default_groups="$(cat "$DESTDIR/$default_groups_file")" for i in $default_groups; do group_include "$i" "$1" || return 1 done } group_exclude() { $CHROOT_EXE /usr/bin/gpasswd -d "$2" "$1" >/dev/null } on_message() { case "$in_action" in type) write_type_item name system-account-name write_type_item new_name system-account-name ;; list) case "$in__objects" in avail_shell) while read sh; do [ -x "$sh" ] || continue write_enum_item "$sh" done
New account:
Comment:
Home directory:
Shell:
Member of administrators group
 
Password:
Generate automatically  
(enter passphrase)
(repeat passphrase)
 
 
     
alterator-users-10.3/ui/users/index.scm000064400000000000000000000030341124747012000201560ustar00rootroot00000000000000(document:surround "/std/frame") ;;; UI (gridbox columns "100" align "top" margin 10 (label) (hbox align "left" (label text (_ "New account:") nameref "new_name") (edit name "new_name") (button text (_ "Create") name "new_button")) (separator) (splitbox columns "30;70" (listbox name "name" align "top") (gridbox columns "0;100" ;; (label text (_ "Comment:") align "right" nameref "gecos") (edit name "gecos") ;; (label text (_ "Home directory:") align "right" nameref "home") (edit name "home") ;; (label text (_ "Shell:") align "right" nameref "shell") (combobox name "shell") ;; (spacer) (checkbox text (_ "Member of administrators group") name "allow_su") ;; (label colspan 2) ;; (label text (_ "Password:") align "top;right") (gridbox columns "100;0" (checkbox text (_ "Generate automatically") name "auto") (spacer) (edit name "passwd_1" echo "stars") (label nameref "passwd_1" text (small (_ "(enter passphrase)"))) (edit name "passwd_2" echo "stars") (label nameref "passwd_2" text (small (_ "(repeat passphrase)"))) (edit name "passwd_auto" visibility #f alterability #f) (button text (_ "Generate") name "generate_button" visibility #f) (label colspan 2 nameref "passwd_auto" visibility #f)) ;; (label colspan 2) ;; (spacer) (hbox align "left" (button text (_ "Apply") name "apply_button") (label) (button text (_ "Delete user") name "delete_button")))))