КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Учетные записи пользователей и работа с ними
Подсистема разграничения доступа ОС Linux, наследующая экономные базовые принципы UNIX, не может зафиксировать права каждого из пользователей на каждый файловый объект. По отношению к каждому из файлов пространство пользователей делится на три неравные по численности категории: одного владельца файла, членов его основной группы и всех остальных зарегистрированных пользователей. Пользователей в целях удобства администрирования можно объединять в группы, которым также присваиваются символьные имена и уникальные числовые идентификаторы GID (Group ID). Точнее: при правильном планировании вначале создаются группы, а затем в них включаются пользователи. Существование групп предусмотрено функционированием системных алгоритмов, и администратор должен это учитывать. Если иного не предусмотрено командой или настройками, при создании новой учетной записи пользователя автоматически создается новая группа, включающая этого пользователя и наследующая его имя. Настройками конфигурационных файлов могут предусматриваться группы, в которые пользователи включаются «по умолчанию», например users. Если этого не учитывать, зарегистрированные независимо друг от друга пользователи могут оказаться групповыми совладельцами файлов с конфиденциальной информацией. Минимальная численность группы – один пользователь. Поэтому для учета GID в метаданных каждого файла также предусматриваются поля общим размером в 4 байта. Для регистрации пользователей и создания групп требуются полномочия администратора. Новая группа создается командой groupadd [–g GID] <group_name> В этой команде в качестве аргумента минимально необходимо указать уникальное символьное имя новой группы, а номер ей по умолчанию присвоит система. GID = 0 присвоено группе администратора, а номера с 1 до 99 (эти значения устанавливаются в файле /etc/login.defs) обычно резервируются для псевдогрупп. Группы совершенно равноправны, но по отношению к конкретному пользователю и его файлам группы могут быть основными и дополнительными. В командах useradd и usermod, которые упоминаются ниже, основная группа пользователя указывается после параметра –g, а дополнительные перечисляются после параметра –G. Основная группа для пользователя и его файлов единственна, а дополнительных групп может быть много. Пользователи, включенные в основную группу пользователя, обладают особыми правами на его файлы. Члены дополнительных групп, куда может входить пользователь, имеют общие права на его файлы. В то же время он сам по отношению к файлам пользователей, входящих в дополнительные группы, пользуется групповыми правами. В такой асимметрии заложена возможность разграничения доступа, когда одни пользователи должны иметь больше прав, чем другие. Утилита groupmod имеет такие же параметры, но используется при необходимости модификации уже существующих групп. Впрочем, вся модификация сводится к изменению номера группы GID. Информация о группах содержится в конфигурационном файле /etc/group. Часть этого файла приведена на рис. 1.1. root::0:root bin::1:root,bin,daemon daemon::2:root,bin,daemon sys::3:root,bin,adm adm::4:root,adm,daemon floppy::11:root mail::12:mail news::13:news audio::17: video::18: cdrom::19: rpc::32: sshd::33:sshd ftp::50: nobody::98:nobody users::100: console::101: alfa::102: beta::103:ivanov,petrov sigma::104:john,braun
Рис. 1.1. Содержимое файла /etc/group Если открыть этот файл в любом текстовом редакторе либо воспользоваться командой cat /etc/group, можно увидеть ряд записей, каждая из которых состоит из трех-четырех полей, отделенных двоеточиями. Первое поле – имя группы, второе – признак группового пароля, который обычно не используется (пустое поле), третье поле – числовой идентификатор группы GID. Четвертое поле часто пустует; в него поименно, через запятую и без пробела записываются учетные имена пользователей, включенных в группу дополнительно. Несколько десятков записей выделены псевдогруппам bin, daemon, sys, adm и др. Администратор может поменять пользователю основную группу и переместить его в другую, для чего используется команда usermod –g <new_group> <user_name> При этом члены его новой группы приобретут соответствующие групповые права на его файлы. Члены старой группы сохранят групповые права на уже созданные файлы пользователя, но не будут иметь никаких групповых прав на вновь создаваемые файлы. Приведенная команда usermod будет упоминаться далее по тексту. Обычный пользователь для смены своей основной группы может воспользоваться командой newgrp, однако в этом случае программа запросит у него пароль на вход в новую группу. Если такого пароля не предусматривается («теневой» парольный файл /etc/grshadow существует, но обычно бывает пустым), то инициатива пользователя будет оставлена без внимания. Для удаления пустой группы предусмотрена команда groupdel <group_name> Группу нельзя удалить, если в ней есть пользователи. Необходимо вначале с помощью уже упомянутой команды usermod поименно удалить каждого пользователя этой группы либо перевести их в другие группы (пример будет приведен ниже). Исключить пользователей из группы можно и путем непосредственного редактирования учетных записей в файлах /etc/group, /etc/passwd. Таким же путем можно удалить и любую группу, в том числе и не пустую. Любой пользователь с помощью команды id может получить сведения об основных и дополнительных группах, причем не только своих, но и другого пользователя. Автору неизвестна утилита, которая отображала бы для произвольной группы поименный состав входящих в нее пользователей. Для регистрации новых пользователей используются специальные утилиты и сценарии. В качестве аргументов командной строки они принимают следующий набор параметров: имя пользователя, имена групп – основной и дополнительных, их числовые идентификаторы, хэшированный пароль пользователя, срок годности пароля, домашний каталог пользователя, имя командного интерпретатора. Если какие-либо из этих параметров администратор явно не указывает, они подставляются системой из конфигурационных файлов. Пароль рекомендуется задавать отдельно, и в режиме командной строки для этого используется утилита passwd. Для создания новых учетных записей пользователей предназначена утилита useradd, с достаточно большим числом параметров (указаны не все): useradd [-u UID] [-g GID] [–G <add_group_name>] [-d <dir_home>] [-m] [-e <date_del_user>] <user_name> В этой команде кроме параметров, указанных выше, аргумент -d явно указывает полное имя домашнего каталога, с помощью параметра -m пользователю выделяется каталог, имя которого совпадает с именем пользователя, а параметр -e определяет дату удаления учетной записи. Все параметры, заключенные в [квадратные скобки], могут явно не указываться. В этом случае необходимые элементы учетной записи будут взяты из конфигурационных файлов. Если для создания учетных записей используется именно утилита useradd и администратор не желает каждый раз явно указывать в командной строке все параметры, ему требуется отредактировать конфигурационный файл /etc/default/useradd. В числе редактируемых можно указать такие строки: GROUP = 100 – номер, с которого начинается нумерация пользовательских групп; HOME = /home – каталог, в котором будут создаваться подкаталоги пользователей; SHELL = /bin/bash – полный путь к командной оболочке; SKEL = /etc/skel – имя каталога, с которого делается «слепок» домашнего подкаталога нового пользователя. Некоторые настройки, используемые по умолчанию, могут быть изменены путем редактирования файла /etc/login.defs. В частности, надо уделить внимание параметрам: PASS_MAX_DAYS – максимальный срок «жизни» пароля в днях; PASS_MIN_DAYS – минимальный срок «жизни» пароля; PASS_WARN_AGE – срок в днях до окончания действия пароля, когда об этом уже следует предупредить пользователя; PASS_MAX_LEN – минимальная длина пароля, вводимого пользователем с помощью команды passwd. Подробнее об указанных параметрах будет сказано ниже. Сценарий adduser кажется более удобным тем, что позволяет после ввода команды отвечать на запросы программы, вводя данные в интерактивном режиме. При этом программа подсказывает значения, которые будут введены по умолчанию [в квадратных скобках]. Ввод параметра сопровождается нажатием <Enter>. Если администратор согласен с подсказанным параметром, он просто нажимает <Enter>. Но командный файл adduser присутствует только в дистрибутиве Slackware Linux и дистрибутивах на его базе. В графической оболочке системы также имеются свои варианты программ с оконным интерфейсом, позволяющие создать новую учетную запись и сделать этот процесс более наглядным. При необходимости администратор может напрямую редактировать файлы паролей и групп, используя для этого текстовые редакторы, например vi или mcedit. В качестве редактора по умолчанию используется vi, но его можно заменить на другой редактор, определив переменную окружения VISUAL в файле /etc/profile командой export VISUAL=mcedit В системе также присутствуют две утилиты vipw и vigr, специально предназначенные для внесения изменений в файлы паролей и групп. Утилита vipw работает непосредственно с файлом /etc/passwd, а при использовании ее в виде vipw -s – с файлом /etc/shadow. Утилита vigr работает с файлом /etc/group, а при использовании ключа -s – с файлом /etc/gshadow. Текстовые файлы group, passwd и shadow, располагающиеся в каталоге /etc, представляют собой отдельные записи, состоящие из полей. Символы в этих полях являются данными для операционной системы. Поля отделяются друг от друга двоеточиями. Учетные записи пользователей хранятся по частям в двух файлах. Первая часть учетной записи хранится в файле /etc/passwd, который доступен для чтения всем пользователям (рис. 1.2).
root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin news:x:9:13:news:/etc/news: nobody:x:99:99:Nobody:/:/sbin/nologin petrov:x:1001:101::/home/petrov:/bin/bash ivanov:x:1002:101::/home/ivanov:/bin/bash sidorov:!:1003:101::/home/sidorov:/bin/bash Рис. 1.2. Фрагмент файла /etc/passwd
Каждая строка этого текстового файла состоит из 7 полей: регистрационное имя пользователя, признак пароля, идентификатор пользователя, идентификатор группы, дополнительная информация, «домашний» каталог пользователя, полный путь к файлу командного процессора. В приведенном листинге значится один суперпользователь, 25 псевдопользователей и три обычных пользователя. Сами хэшированные пароли в файле /etc/passwd обычно не хранятся. Если в учетной записи пользователя вместо признака пароля стоит символ :х:, это указывает на то, что хэшированный пароль находится в другом файле – /etc/shadow. Однако в некоторых дистрибутивах Linux во втором поле записей файла /etc/passwd можно прочитать хэш-функцию пароля, которая является фальшивой и служит, вероятно, для отвлечения внимания начинающих хакеров. В определенном смысле признак пароля представляет собой наиболее уязвимое место учетной записи. Удаление этого символа в большинстве версий Linux позволяет и обычным пользователям, и администратору входить в систему без пароля. Наличие в этом поле иных символов не предусмотрено. Блокирование учетной записи производится командой usermod -L <user_name>, при этом выполняется вставка символа «!» перед зашифрованным паролем в файле /etc/shadow, а по команде usermod -U <user_name> выполняется обратное действие. Программа авторизации разрешает вход в систему пользователю с неполной учетной записью. Так, вставив в файл паролей запись из четырех полей: echo john::999:99: >>/etc/passwd, администратор обеспечит беспрепятственный (т. е. «беспарольный») вход в систему пользователя john. По причине отсутствия у него домашнего каталога этот пользователь после входа окажется в корневом каталоге, а командную оболочку система ему выделит по умолчанию. Четыре поля в учетной записи минимально необходимы, и отсутствие любого из них воспринимается как отсутствие самой записи. Еще одним уязвимым местом учетных записей пользователей является UID – уникальный идентификатор пользователя. Достаточно поменять в третьем поле UID обычного пользователя на ноль – и бесправный «юзер» становится еще одним администратором. Число таких администраторов может быть произвольным, главное, чтобы их имена различались между собой. Путем непосредственного редактирования файлов /etc/passwd и /etc/shadow можно создать учетные записи с повторяющимися именами. Но авторизоваться в системе сможет только один пользователь, который поименован в файле /etc/passwd первым, т. к. выборка строк происходит от начала файла до первого совпадения. Файл /etc/shadow (рис. 1.3) представляет собой продолжение таблицы учетных записей, каждая строка которой состоит из 9 полей, также разделенных двоеточиями: · регистрационное имя пользователя или псевдопользователя, · хэшированный пароль, · число дней, прошедших с полуночи 01.01.1970 до дня последнего изменения пароля, · минимальное число дней действия пароля со дня его последнего изменения, · максимальное число дней действия пароля, · число дней до даты, когда система начнет выдавать предупреждения о необходимости смены пароля, · число дней со времени обязательной смены пароля до блокировки учетной записи, · день блокировки учетной записи. root:$1$gka0eOIt$3RXPSZVX9AMLVZ65gXmQA1:13766:0::::: bin:*:9797:0::::: daemon:*:9797:0::::: adm:*:9797:0::::: lp:*:9797:0::::: sync:*:9797:0::::: shutdown:*:9797:0::::: halt:*:9797:0::::: mail:*:9797:0::::: news:*:9797:0::::: uucp:*:9797:0::::: operator:*:9797:0::::: games:*:9797:0::::: ftp:*:9797:0::::: smmsp:*:9797:0::::: mysql:*:9797:0::::: rpc:*:9797:0::::: gdm:*:9797:0::::: pop:*:9797:0::::: apache:*:9797:0::::: messagebus:*:9797:0::::: haldaemon:*:9797:0::::: nobody:*:9797:0::::: petrov:$1$omn/uYx4$LUIxQiJwjTRNswF.hcxUz1:14196:0:99999:7:::
Рис. 1.3. Содержимое файла /etc/shadow Последнее, девятое, поле зарезервировано и не используется. В принципе можно обойтись всего первыми двумя полями, а пользователи с «пустым» паролем в этом файле вообще не нуждаются. Шесть временных отметок, связанных с паролем, можно установить командой chage (change aging – дословно: изменить возраст). Файл /etc/shadow является секретным и недоступен для чтения и записи обычным пользователям. Право доступа к этому файлу имеет только администратор. Впрочем, на короткое время изменения своих паролей право записи в этот файл могут получить и обычные пользователи. Первый пароль пользователю назначает администратор при создании учетной записи. Обновление паролей происходит в соответствии с выбранной политикой администрирования. В системе предусмотрена команда passwd, с помощью которой каждый пользователь может изменить свой пароль (если минимальный срок действия старого пароля был установлен и еще не истек). Passwd – это одна из утилит, которая может запускаться обычным пользователем, а выполняется всегда с правами администратора, поскольку ей приходится записывать новые данные в теневой файл /etc/shadow, чтение и запись которого разрешены только пользователю root. Такие исполняемые файлы имеют установленный бит SUID, речь о котором пойдет ниже. Программа passwd запрашивает у пользователя старый пароль и, если он оказывается верным, требует ввести новый. На систему возлагается обязанность проверять вновь введенный пароль по словарю и по длине. Если введенный пароль окажется слишком простым или коротким, программа предупредит пользователя об опасности и запросит у него другой пароль. Обычный пользователь не сможет игнорировать такое предупреждение и вынужден будет подчиниться. Администратор, впрочем, может подтвердить свое намерение ввести простой пароль, и система вынуждена будет повиноваться своему хозяину. Проверить парольные файлы /etc/passwd и /etc/shadow на предмет отсутствия ошибок позволяет утилита pwck (password check). Утилита способна выявить случайные ошибки, которые были пропущены командами useradd и usermod, а также допущены при непосредственном редактировании файлов. В частности, выявляются дублирующие строки, связанные с одним именем, пользовательские записи без установленного пароля, незавершенные записи и отдельные поля, наличие файлов, на которые дана ссылка, и др. Но преднамеренные и хитрые искажения парольных файлов этой утилитой не выявляются, и визуальная проверка файлов вовсе не исключается. Для модификации существующей учетной записи используется команда usermod, которая имеет такой же синтаксис, что и команда useradd. Эта команда не создает, а модифицирует учетную запись, и после команды следует указывать только те параметры, которые подлежат изменению. В случае необходимости удаления параметра, назначенного утилитой useradd, он удаляется указанием пустого символа, например командой usermod –G “” petrov пользователь petrov удаляется из всех дополнительных групп. Команда userdel позволяет администратору удалить учетную запись. До удаления учетной записи пользователь должен завершить сеанс работы. Если пользователь не намерен выходить из сеанса, администратор может послать программе, обслуживающей его консоль, сигнал принудительного завершения. Как это делается, будет показано ниже. Команда без опций userdel <user_name> удаляет учетную запись пользователя, сохраняя его каталоги и файлы. При задании опции -r учетная запись удаляется вместе с каталогами и файлами пользователя. Если пользовательские файлы представляют ценность для организации, а их использование не нарушает прав бывшего пользователя, то администратор может их сохранить. Следует помнить, что в большинстве версий Linux эти файлы сохраняют UID своего бывшего владельца. Но стоит системе по умолчанию присвоить новому пользователю идентификатор прежнего владельца – и файлы автоматически перейдут в его собственность. Поэтому администратор, удаляя учетную запись бывшего сотрудника, должен правильно распорядиться его файлами, изменяя их владельца либо помещая их в недоступный для пользователей каталог. Для того чтобы не случалось путаницы с принадлежностью файлов из старых резервных копий, администратору не следует присваивать новым пользователям UID прежних сотрудников, которые по той или иной причине покинули организацию. Из этих же соображений при создании новых учетных записей не рекомендуется присваивать UID по умолчанию, так как система будет повторно использовать освободившиеся номера. Поскольку конфигурационные файлы /etc/group и /etc/passwd доступны для чтения любому пользователю, из них может быть извлечена информация об UID, GID и символьных именах групп любого пользователя, имеющего учетную запись. Однако проще получить такую информацию с помощью уже упомянутой команды id <user_name>. Закрывать эти файлы для чтения нельзя, так как ими пользуются многие утилиты, в том числе и id.
Дата добавления: 2015-03-31; Просмотров: 741; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |