alterator-ldap-users-0.2/000075500000000000000000000000001114625221600154235ustar00rootroot00000000000000alterator-ldap-users-0.2/Makefile000064400000000000000000000002101114625221600170540ustar00rootroot00000000000000NAME=ldap-users INSTALL=/usr/bin/install all: clean: clean-po install: install-module include /usr/share/alterator/build/module.mak alterator-ldap-users-0.2/applications/000075500000000000000000000000001114625221600201115ustar00rootroot00000000000000alterator-ldap-users-0.2/applications/ldap-users.desktop000064400000000000000000000002761114625221600235700ustar00rootroot00000000000000[Desktop Entry] Type=Application Categories=X-Alterator-Users Icon=users Terminal=false Name=Ldap user accounts X-Alterator-URI=/ldap-users X-Alterator-Weight=30 X-Alterator-Help=ldap-users alterator-ldap-users-0.2/backend3/000075500000000000000000000000001114625221600170755ustar00rootroot00000000000000alterator-ldap-users-0.2/backend3/ldap-users000075500000000000000000000116201114625221600211020ustar00rootroot00000000000000#!/bin/sh alterator_api_version=1 po_domain="alterator-ldap-users" #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 SLAPD_CONF="/etc/openldap/slapd-generated.conf" local_getent() { local re="${2:-.*}" grep "^$re:" "/etc/$1" } user_list() { local IFS=: getent passwd| while 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() { is_defined "in_gecos" && echo "cn: $in_gecos" [ -n "$in_home" ] && echo "homeDirectory: $in_home" [ -n "$in_shell" ] && echo "loginShell: $in_shell" } user_read() { local IFS=: local name="$1";shift getent passwd "$name"| (read name password uid gid gecos home shell; write_string_param gecos "$gecos" write_string_param home "$home" write_string_param shell "$shell" ! 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() { ldap-passwd "$1" "$2" 1>/dev/null || user_write_error "`_ "cannot change password"`" } user_new() { ldap-useradd "$1" 1>/dev/null || user_write "$1" 1>/dev/null || user_write_retcode "$?" } user_write() { user_args|ldap-usermod "$1" 1>/dev/null|| user_write_retcode "$?" } user_delete() { ldap-userdel "$1" 1>/dev/null|| 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_include() { group_new "$1" || return 1 /usr/bin/gpasswd -a "$2" "$1" >/dev/null || user_write_error "`_ "unable to add user %s to group %s"`" "$2" "$1" } group_exclude() { /usr/bin/gpasswd -d "$2" "$1" >/dev/null } on_message() { case "$in_action" in type) write_type_item name system-account-name ;; #object manipulations list) case "$in__objects" in avail_shell) while read sh; do [ -x "$sh" ] || continue write_enum_item "$sh" done

Учётные записи LDAP

Linux — многопользовательская система. Зарегистрировавшись — введя имя (login) и пароль — каждый пользователь, во-первых, приобретает возможность работать в удобном ему окружении, во-вторых, получает доступ к своим файлам, закрытым для других пользователей и просто посторонних.

В процессе установки предлагается создать только одну учётную запись обычного пользователя, чтобы от его имени администратор мог выполнять задачи, которые не требуют привилегий суперпользователя. Учётные записи для всех прочих пользователей можно будет создать в любой момент после установки системы.

Создание новой учётной записи

Новая учётная запись
После ввода допустимого имени необходимо нажать Создать, после чего имя отобразится в списке слева. Для дополнительных настроек необходимо выделить добавленное имя либо, если необходимо изменить существующую учётную запись, выбрать её их списка.
Комментарий
Произвольный комментарий к учётной записи. Часто здесь указывается реальные имя и фамилия пользователя.
Домашний каталог
Каталог пользователя, в котором он будет иметь полные права. В случае регистрации в консоли работа начинается именно в этом каталоге. Обычно домашний каталог пользователя располагается в /home/имя_пользователя, где имя_пользователя — это имя учётной записи.
Интерпретатор команд
Это командная оболочка, запускаемая по умолчанию при регистрации пользователя в текстовой консоли. По умолчанию используется /bin/bash.
Входит в группу администраторов
При установленной отметке пользователь имеет возможность получить права администратора (root). Например, при помощи команды su. Естественно, для этого необходимо знать пароль администратора.
Пароль
Пароль учётной записи может быть сгенерирован автоматически (Создать автоматически) либо создан самостоятельно. Во втором случае необходимо ввести его подтверждение.
alterator-ldap-users-0.2/po/000075500000000000000000000000001114625221600160415ustar00rootroot00000000000000alterator-ldap-users-0.2/po/alterator-ldap-users.pot000064400000000000000000000064471114625221600226520ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-02-03 17:04+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: standard input:1 msgid "Ldap user accounts" msgstr "" #: ui/ldap-users/index.scm:28 msgid "Do you really want to delete user " msgstr "" #: ui/ldap-users/index.scm:65 msgid "New account:" msgstr "" #: ui/ldap-users/index.scm:67 msgid "Create" msgstr "" #. #: ui/ldap-users/index.scm:81 msgid "Comment:" msgstr "" #. #: ui/ldap-users/index.scm:84 msgid "Home directory:" msgstr "" #. #: ui/ldap-users/index.scm:87 msgid "Shell:" msgstr "" #: ui/ldap-users/index.scm:91 msgid "Member of administrators group" msgstr "" #. #: ui/ldap-users/index.scm:97 ui/ldap-users/add/index.scm:60 msgid "Password:" msgstr "" #: ui/ldap-users/index.scm:100 ui/ldap-users/add/index.scm:63 msgid "Generate automatically" msgstr "" #: ui/ldap-users/index.scm:103 ui/ldap-users/add/index.scm:66 msgid "(enter passphrase)" msgstr "" #: ui/ldap-users/index.scm:105 ui/ldap-users/add/index.scm:68 msgid "(repeat passphrase)" msgstr "" #: ui/ldap-users/index.scm:107 ui/ldap-users/add/index.scm:70 msgid "Generate" msgstr "" #: ui/ldap-users/index.scm:116 msgid "Apply" msgstr "" #: ui/ldap-users/index.scm:118 msgid "Delete user" msgstr "" #: ui/ldap-users/add/index.scm:17 msgid "You should define a system user" msgstr "" #: ui/ldap-users/add/index.scm:20 msgid "You should define a password" msgstr "" #: ui/ldap-users/add/index.scm:46 msgid "New user account" msgstr "" #: ui/ldap-users/add/index.scm:51 msgid "Name:" msgstr "" #: backend3/ldap-users:73 msgid "can't update password file" msgstr "" #. ' #: backend3/ldap-users:74 backend3/ldap-users:117 msgid "invalid command syntax" msgstr "" #: backend3/ldap-users:75 msgid "invalid argument to option" msgstr "" #: backend3/ldap-users:76 msgid "uid already in use" msgstr "" #: backend3/ldap-users:77 msgid "specified user doesn't exist" msgstr "" #. ' #: backend3/ldap-users:78 msgid "user currently logged in" msgstr "" #: backend3/ldap-users:79 msgid "username already in use" msgstr "" #: backend3/ldap-users:80 backend3/ldap-users:123 msgid "can't update group file" msgstr "" #. ' #: backend3/ldap-users:81 msgid "can't create or remove home directory" msgstr "" #. ' #: backend3/ldap-users:82 msgid "can't create mail spool" msgstr "" #: backend3/ldap-users:92 msgid "cannot change password" msgstr "" #: backend3/ldap-users:118 msgid "invalid group name" msgstr "" #: backend3/ldap-users:119 msgid "gid not unique" msgstr "" #: backend3/ldap-users:120 msgid "specified group doesn't exist" msgstr "" #: backend3/ldap-users:121 msgid "can't remove user's primary group" msgstr "" #. ' #: backend3/ldap-users:122 msgid "group name not unique" msgstr "" #: backend3/ldap-users:135 msgid "unable to add user %s to group %s" msgstr "" #: backend3/ldap-users:186 backend3/ldap-users:214 msgid "Passwords mismatch" msgstr "" alterator-ldap-users-0.2/po/ru.po000064400000000000000000000117371114625221600170400ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-02-03 17:04+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: standard input:1 msgid "Ldap user accounts" msgstr "Учетные записи LDAP" #: ui/ldap-users/index.scm:28 msgid "Do you really want to delete user " msgstr "Вы действительно хотите удалить пользователя " #: ui/ldap-users/index.scm:65 msgid "New account:" msgstr "Новая учётная запись:" #: ui/ldap-users/index.scm:67 msgid "Create" msgstr "Создать" #. #: ui/ldap-users/index.scm:81 msgid "Comment:" msgstr "Комментарий:" #. #: ui/ldap-users/index.scm:84 msgid "Home directory:" msgstr "Домашний каталог:" #. #: ui/ldap-users/index.scm:87 msgid "Shell:" msgstr "Интерпретатор команд:" #: ui/ldap-users/index.scm:91 msgid "Member of administrators group" msgstr "Входит в группу администраторов" #. #: ui/ldap-users/index.scm:97 ui/ldap-users/add/index.scm:60 msgid "Password:" msgstr "Пароль:" #: ui/ldap-users/index.scm:100 ui/ldap-users/add/index.scm:63 msgid "Generate automatically" msgstr "Создать автоматически" #: ui/ldap-users/index.scm:103 ui/ldap-users/add/index.scm:66 msgid "(enter passphrase)" msgstr "(введите фразу)" #: ui/ldap-users/index.scm:105 ui/ldap-users/add/index.scm:68 msgid "(repeat passphrase)" msgstr "(повторите фразу)" #: ui/ldap-users/index.scm:107 ui/ldap-users/add/index.scm:70 msgid "Generate" msgstr "Сгенерировать" #: ui/ldap-users/index.scm:116 msgid "Apply" msgstr "Применить" #: ui/ldap-users/index.scm:118 msgid "Delete user" msgstr "Удалить пользователя" #: ui/ldap-users/add/index.scm:17 msgid "You should define a system user" msgstr "Вы должны указать системного пользователя" #: ui/ldap-users/add/index.scm:20 msgid "You should define a password" msgstr "Вы должны указать пароль" #: ui/ldap-users/add/index.scm:46 msgid "New user account" msgstr "Новая учётная запись пользователя" #: ui/ldap-users/add/index.scm:51 msgid "Name:" msgstr "Имя:" #: backend3/ldap-users:73 msgid "can't update password file" msgstr "невозможно обновить базу паролей" #. ' #: backend3/ldap-users:74 backend3/ldap-users:117 msgid "invalid command syntax" msgstr "неверный синтаксис команды" #: backend3/ldap-users:75 msgid "invalid argument to option" msgstr "неверный параметр к аргументу" #: backend3/ldap-users:76 msgid "uid already in use" msgstr "uid уже используется" #: backend3/ldap-users:77 msgid "specified user doesn't exist" msgstr "пользователь не существует" #. ' #: backend3/ldap-users:78 msgid "user currently logged in" msgstr "пользователь сейчас в системе" #: backend3/ldap-users:79 msgid "username already in use" msgstr "имя пользователя уже занято" #: backend3/ldap-users:80 backend3/ldap-users:123 msgid "can't update group file" msgstr "невозможно обновить базу групп" #. ' #: backend3/ldap-users:81 msgid "can't create or remove home directory" msgstr "невозможно создать или удалить домашний каталог" #. ' #: backend3/ldap-users:82 msgid "can't create mail spool" msgstr "невозможно создать почтовую очередь" #: backend3/ldap-users:92 msgid "cannot change password" msgstr "невозможно изменить пароль" #: backend3/ldap-users:118 msgid "invalid group name" msgstr "неверное имя группы" #: backend3/ldap-users:119 msgid "gid not unique" msgstr "gid не уникален" #: backend3/ldap-users:120 msgid "specified group doesn't exist" msgstr "указанная группа не существует" #: backend3/ldap-users:121 msgid "can't remove user's primary group" msgstr "невозможно удалить первичную группу пользователя" #. ' #: backend3/ldap-users:122 msgid "group name not unique" msgstr "имя группы уже занято" #: backend3/ldap-users:135 msgid "unable to add user %s to group %s" msgstr "невозможно добавить пользователя %s в группу %s" #: backend3/ldap-users:186 backend3/ldap-users:214 msgid "Passwords mismatch" msgstr "Введённые пароли не совпадают" alterator-ldap-users-0.2/templates/000075500000000000000000000000001114625221600174215ustar00rootroot00000000000000alterator-ldap-users-0.2/templates/ldap-users/000075500000000000000000000000001114625221600215005ustar00rootroot00000000000000alterator-ldap-users-0.2/templates/ldap-users/index.html000064400000000000000000000060741114625221600235040ustar00rootroot00000000000000 User accounts - ALT Linux Console
New account:

Comment:
Home directory:
Shell:
 
Password:
Generate automatically  
(enter passphrase)
(repeat passphrase)
 
 
     
alterator-ldap-users-0.2/ui/000075500000000000000000000000001114625221600160405ustar00rootroot00000000000000alterator-ldap-users-0.2/ui/ldap-users/000075500000000000000000000000001114625221600201175ustar00rootroot00000000000000alterator-ldap-users-0.2/ui/ldap-users/add/000075500000000000000000000000001114625221600206475ustar00rootroot00000000000000alterator-ldap-users-0.2/ui/ldap-users/add/index.scm000064400000000000000000000043451114625221600224700ustar00rootroot00000000000000(document:surround "/std/frame") (document:surround "/std/functions") (document:envelop with-translation _ "alterator-ldap-users") (define (write-user) (catch/message (lambda() (let ((passwd_1 (passwd_1 value)) (passwd_2 (passwd_2 value)) (passwd_auto (passwd_auto value)) (auto (auto value)) (account (account value))) (cond ((string-null? account) (if (pair? (woo-list "/ldap-users")) 'skip-step (woo-throw (_ "You should define a system user")))) ((or (and (not auto) (string-null? passwd_1)) (and auto (string-null? passwd_auto))) (woo-throw (_ "You should define a password"))) (else (woo-new "/ldap-users" 'name account 'allow_su #t 'auto auto 'passwd_auto passwd_auto 'passwd_1 passwd_1 'passwd_2 passwd_2))))))) (define (read-user) (catch/message (lambda() (let ((data (woo-read-first "/ldap-users"))) (passwd_auto value (woo-get-option data 'passwd_auto)))))) ;;;;;;;;;;;;;;;;;;;;;;;;; (frame:on-next (thunk (or (write-user) 'cancel))) ;;; UI (gridbox columns "20;0;60;20" ;; (spacer) (label text (_ "New user account") colspan 3) ;; (label colspan 4) ;; (spacer) (label text (_ "Name:") align "right" name "name") (document:id account (edit focus #t)) (spacer) ;; (label colspan 4) ;; (spacer) (label text (_ "Password:") align "top;right") (gridbox columns "100;0" (document:id auto (checkbox text (_ "Generate automatically") name "auto")) (spacer) (document:id passwd_1 (edit name "passwd_1" echo "stars" visibility #f)) (label name "passwd_1" text (small (_ "(enter passphrase)")) visibility #f) (document:id passwd_2 (edit name "passwd_2" echo "stars" visibility #f)) (label name "passwd_1" text (small (_ "(repeat passphrase)")) visibility #f) (document:id passwd_auto (edit name "passwd_auto" visibility #f)) (button text (_ "Generate") name "passwd_auto" visibility #f (when clicked (read-user))) (label colspan 2 name "passwd_auto" visibility #f)) (spacer)) ;;; Logic (effect-show "passwd_1" "auto" #f) (effect-show "passwd_2" "auto" #f) (effect-show "passwd_auto" "auto" #t) (document:root (when loaded (read-user) (init-effect))) alterator-ldap-users-0.2/ui/ldap-users/index.scm000064400000000000000000000067451114625221600217460ustar00rootroot00000000000000(document:surround "/std/frame") (document:insert "/std/functions") (document:envelop with-translation _ "alterator-ldap-users") ;;; Functions (define (read-user name) (let ((data (woo-read-first "/ldap-users/" 'name name))) (passwd_auto value (woo-get-option data 'passwd_auto)) (user-gecos value (woo-get-option data 'gecos)) (user-home value (woo-get-option data 'home)) (user-shell value (woo-get-option data 'shell)) (user-allow-su value (woo-get-option data 'allow_su)))) (define (list-user) (user-shell enumref "/ldap-users/avail_shell") (user-list enumref "/ldap-users") (and (positive? (user-list count)) (user-list current 0)) (read-user "")) (define (delete-user) (and-let* ((name (user-list value))) (catch/message (lambda() (if (eq? 'yes (document:popup-warning (string-append (_ "Do you really want to delete user ") name " ?") 'no 'yes)) (begin (woo-delete "/ldap-users/" 'name name) (list-user))))))) (define (new-user) (catch/message (lambda() (woo-new "/ldap-users" 'name (new_name value)) (list-user)))) (define (write-user) (catch/message (lambda() (woo-write "/ldap-users/" 'name (user-list value) 'home (user-home value) 'gecos (user-gecos value) 'shell (user-shell value) 'allow_su (user-allow-su value) 'passwd_1 (passwd_1 value) 'passwd_2 (passwd_2 value) 'passwd_auto (passwd_auto value) 'auto (auto value))))) ;;; UI (gridbox columns "100" align "top" margin 10 (label) (hbox align "left" (label text (_ "New account:") name "name") (document:id new_name (edit)) (button text (_ "Create") (when clicked (new-user)))) (separator) (splitbox columns "30;70" (document:id user-list (listbox ;;header (vector (_ "Accounts")) align "top" (when selected (catch/message (lambda() (read-user (user-list value))))))) (gridbox columns "0;100" ;; (label text (_ "Comment:") align "right") (document:id user-gecos (edit)) ;; (label text (_ "Home directory:") align "right") (document:id user-home (edit)) ;; (label text (_ "Shell:") align "right") (document:id user-shell (combobox)) ;; (spacer) ;; (label colspan 2) ;; (label text (_ "Password:") align "top;right") (gridbox columns "100;0" (document:id auto (checkbox text (_ "Generate automatically") name "auto")) (spacer) (document:id passwd_1 (edit name "passwd_1" echo "stars" visibility #f)) (label name "passwd_1" text (small (_ "(enter passphrase)")) visibility #f) (document:id passwd_2 (edit name "passwd_2" echo "stars" visibility #f)) (label name "passwd_1" text (small (_ "(repeat passphrase)")) visibility #f) (document:id passwd_auto (edit name "passwd_auto" visibility #f)) (button text (_ "Generate") name "passwd_auto" visibility #f (when clicked (read-user (user-list value)))) (label colspan 2 name "passwd_auto" visibility #f)) ;; (label colspan 2) ;; (spacer) (hbox align "left" (button text (_ "Apply") (when clicked (write-user))) (label) (button text (_ "Delete user") (when clicked (delete-user))))))) ;;; Logic (effect-show "passwd_1" "auto" #f) (effect-show "passwd_2" "auto" #f) (effect-show "passwd_auto" "auto" #t) (document:root (when loaded (catch/message (lambda() (init-effect) (list-user)))))