[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]

Принципы управления системой: Операционная система и устройства


Пароли - информация для системных администраторов BSD 4.3

В этом разделе описаны основные различия между средствами управления паролями в данной операционной системе и в системах BSD 4.3.

Настройка пароля пользователя

При вызове пользователем root команды /bin/passwd в данной операционной системе пользователю будет предложено ввести текущий пароль пользователя root. Пример применения команды: /bin/passwd:

# passwd cslater
Изменение пароля для "cslater"
Введите пароль root или
Старый пароль для cslater:
Новый пароль для cslater:
Введите новый пароль еще раз:
#

В BSD 4.3 эта команда не запрашивает текущий пароль пользователя root. Пример работы версии этой команды в BSD 4.3 приведен ниже:

# passwd cslater
New password:
Retype new password:
#

Импорт файла паролей из BSD 4.3

Вы можете импортировать файл паролей BSD 4.3. Для этого достаточно скопировать файл /etc/passwd и ввести следующую команду:

pwdck -y ALL 

Затем в файл /etc/security/limits нужно добавить пустые разделы для всех новых пользователей. Эту операцию можно выполнить с помощью команды usrck, однако, если вместе с файлом /etc/passwd не был импортирован файл /etc/group, то применение команды usrck может привести к возникновению ошибок.

Примечание: Если файл /etc/security/limits был изменен, то размер стека не должен превышать 65 536. В противном случае вызов команды usrck может привести к возникновению ошибок. Измените размер стека на 65 536 и повторите вызов команды usrck.

Кроме того, для проверки атрибутов пользователей и групп воспользуйтесь командами grpck и usrck.

Изменение файла паролей

В данной операционной системе для управления паролями применяются команды lsuser, mkuser , chuser и rmuser. Функции всех этих команд могут быть также выполнены с помощью Web-администратора системы или SMIT. Однако все эти команды за один вызов позволяют изменить информацию только для одного пользователя.

Примечание: Одновременное изменение с помощью редактора записей нескольких пользователей требует одновременного редактирования нескольких файлов; это связано с тем, что пароли хранятся в файле /etc/security/passwd, информация о правах доступа - в файле /etc/security/user, а остальные данные о пользователях - в файле /etc/passwd.

Данная операционная система не поддерживает команду vipw, но поддерживает команду mkpasswd. Тем не менее, вы можете управлять паролями с помощью тех же средств, что и в системе BSD 4.3. Для этого выполните следующую процедуру:

  1. Поместите файл паролей BSD 4.3 в файл /etc/shadow.
  2. Измените права доступа к файлу с помощью следующей команды:

    chmod 000 /etc/shadow
    
  3. Поместите в каталог /etc следующий сценарий vipw:

    -----------------------------------------------------
    ----
    #!/bin/bsh
    #
    # vipw. В настоящее время использует pwdck. Может работать с usrck.
    #
    PATH=/bin:/usr/bin:/etc:/usr/ucb # Дополните это строку,
                                     # если ваш редактор
                                     # находится в другом каталоге
    if [ -f /etc/ptmp ]; then
                     echo "/etc/ptmp существует. Кто-то еще работает с vipw?"
            exit 1
    fi
    if [ ! -f /`which "$EDITOR" | awk '{ print $1 }'` ] ; then
            EDITOR=vi
    fi
    cp /etc/shadow /etc/ptmp
    if (cmp /etc/shadow /etc/ptmp) ; then
            $EDITOR /etc/ptmp
    else
            echo Невозможно скопировать shadow в ptmp
            exit 1
    fi
    if (egrep "^root:" /etc/ptmp >/dev/null) ; then
            cp /etc/ptmp /etc/shadow ; cp /etc/ptmp /etc/passwd
            chmod 000 /etc/passwd /etc/shadow
            pwdck -y ALL 2>1 >/dev/null # код возврата 114 может измениться
                    rc=$?
            if [ $rc -eq 114 ]; then
                    chmod 644 /etc/passwd
                            rm -f /etc/passwd.dir /etc/passwd.pag
                    mkpasswd /etc/passwd
                            # обновление /etc/security/limits или ftp
                            # завершится неудачно
                    else
                             pwdck -y ALL
                    fi
    else
            echo Неправильная запись для root в ptmp
    fi
    rm /etc/ptmp
    -----------------------------------------------------------
    
  4. Если вы используете сценарий vipw или команду mkpasswd, то имейте в виду, что Web-администратор системы, SMIT, а также команды mkuser, chuser и rmuser не используют команду mkpasswd. Введите:

    mkpasswd /etc/passwd
    

    При этом будут обновлены файлы /etc/passwd.dir и /etc/passwd.pag.

    Внимание: Инициализация переменнойIFS и оператора trap повышает риск нарушения защиты, связанный с использованием функции setuid. Тем не менее, сценарии vipw и passwd могут применяться в сравнительно открытой среде, когда на передний план выходят требования совместимости. Для реализации среды с более высокой степенью защиты рекомендуется применять только стандартные команды данной операционной системы.

  5. Поместите в каталог /usr/ucb следующий сценарий passwd:

    -----------------------------------------------------
    #!/bin/ksh
    #
    # приводит файл /etc/security/passwd в соответствие
    # с измененным файлом /etc/shadow
    #
    IFS=" "
    PATH=/bin
    trap "exit 2" 1 2 3 4 5 6 7 8 10 12 13 14 15 16 17 18 21 22 \
            23 24 25 27 28 29 30 31 32 33 34 35 36 60 61 62
    if [ -n "$1" ]; then
            USERNAME=$1
    else
            USERNAME=$LOGNAME
    fi
    if [ -f /etc/ptmp ]; then
            echo Файл паролей занят
            exit 1
    fi
            trap "rm /etc/ptmp; exit 3" 1 2 3 4 5 6 7 8 10 12 13 \
                    14 15 16 17 18 21 22 23 24 25 27 28 29 30 31 \
                    32 33 34 35 36 60 61 62
    if (cp /etc/security/passwd /etc/ptmp) ; then
            chmod 000 /etc/ptmp else
            rm -f /etc/ptmp exit 1
    fi
    if ( /bin/passwd $USERNAME ) ; then
            PW=` awk ' BEGIN { RS = "" }
                    $1 == user { print $4 } ' user="$USERNAME:" \
    /etc/security/passwd `
    else
            rm -f /etc/ptmp
            exit 1
    fi
    rm -f /etc/ptmp
    awk -F: '$1 == user { print $1":"pw":"$3 ":"$4":"$5":"$6":"$7 }
            $1 != user { print $0 }' user="$USERNAME" pw="$PW" \
                    /etc/shadow > /etc/ptmp
    chmod 000 /etc/ptmp
    mv -f /etc/ptmp /etc/shadow
    ---------------------------------------------------------
    
  6. Измените права доступа к файлу passwd с помощью следующей команды:

    chmod 4711 /usr/ucb/passwd
    
  7. Убедитесь, что в переменной среды PATH каждого пользователя каталог /usr/ucb указан раньше каталога /bin.


[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]