Вот мы и добрались до третей части статьи о правах доступа. В первой части мы рассмотрели что такое права доступа и зачем они нужны, во второй части мы научились управлять правами доступа с помощью окна Info программы Finder и с помощью команд UNIX в программе Terminal. В этой же части, мы рассмотрим организацию многопользовательской работы на компьютере и научимся обьединять пользователей в группы.

 

Возможно, у читателя возникает вопрос – «Зачем мне нужно знать о группах и об обьединении пользователей в группы?»

Отвечаю – умение обращаться с группами позволит эффективно организовать работу нескольких пользователей (группы) с одними и теми же файлами. Если Вы – единственный пользователь своего компьютера, то можете не беспокоиться о группах (но статью дочитать все-же рекомендую ;-)), но если за компьютером периодически работают несколько пользователей (например, это домашний компьютер) то явно существуют файлы и папки, которые хотелось-бы открыть для полного доступа всем членам семьи (к примеру, папка с фотографиями, или с фильмами…)

Особенностью MacOS X, да и насколько мне известно в Linux, есть одно неудобство – каждый новый пользователь является членом своей собственной группы. Например, если Вы создадите учетную запись с именем «andrey», то создастся группа с именем «andrey» которая будет состоять из одного пользователя «andrey». И доступ ко всем файлам/папкам, созданным пользователем andrey будет открыт только членам группы «andrey», а в этой группе как мы знаем – один единственный пользователь. Точно так же со всеми учетными записями. Очевидно, что это неудобно. Гораздо лучше, обьединить всех пользователей данного компьютера в одну группу, назовем ее например «home_users», а потом – открывать или закрывать доступ группы «home_users» к определенным обьектам. Этим мы и займемся…

Учетные записи и группы в UNIX и в MacOS X: что изменилось со времен UNIX?

В операционной системе UNIX информация об учетных записях пользователей хранится в файле /etc/passwd, этот файл так и называется «учетный файл пользователей». Каждая строка этого файла содержит запись об одном пользователе. Чтобы добавить нового пользователя администратор системы должен был открыть этот текстовый файл на редактирование и дописать в конец файла новую строку с именем пользователя, идентификатором, идентификатором группы, путем к домашней директории и т.п. Учетный файл групп, аналогичный /etc/passwd имеет имя /etc/group.

Сейчас, в системе MacOS X (10.4, Tiger!) информация о пользователях, группах (а также много другой информации) хранится в специальной базе данных которая расположена непонятно где 😉 А управление всем этим осуществляется с помощью программы NetInfo Manager (/Applications/Utilities/NetInfo Manager). В новой версии операционной системы, Mac OS X Leopard (10.5), и в следующей, которая будет вскоре выпущена – Snow Leopard (10.6) от приложения NetInfo Manager отказались, а функции которые оно выполняло теперь переложены на приложение Directory Utility и панель Accounts в System Preferences. Ниже будут рассмотрены особенности работы с NetInfo Manager из Mac OS X 10.4, и чуть позже статья будет обновлена информацией по Mac OS X Leopard.

Создаем новую группу

Итак, приступим наконец к действиям. Откройте программу NetInfo Manager (/Applications/Utilities/NetInfo Manager). Если замок в нижнем левом углу окна закрыт, откройте его (для этого нужен пароль администратора). Щелкните по разделу «groups»:

В правом столбике Вы увидите огромный список всех существующих в Вашей системе групп. Но их нам мало 😉 поэтому мы решили создавать свою собственную 🙂

Из меню Edit выберите Add:

Создастся новая запись под именем new_directory:

Теперь обратите внимание на нижнюю часть окна программы NetInfo Manager. Здесь отображаются свойства и их значения. Например, у свойства «name» только что созданной записи установлено значение по умолчанию «new_directory». Дважды щелкните по нему и поменяйте например на «home_users»:

Как Вы уже поняли, это будет имя нашей новой группы. Теперь дайте команду Domain->SaveChanges:

Программа спросит действительно ли Вы хотите обновить базу данных, подтвердите свои намерения кликнув по кнопке «Update This Copy». Теперь в разделе «groups» у нас есть новая группа под именем «home_users», продолжим работу с ней.

Каждая группа должна иметь уникальный идентификатор (GID, Group ID) – число. Своей группе «home_users» мы тоже должны присвоить какой-то идентификатор, но какой? Необходимо определить какое-нибудь не занятое число. Рекомендую поступать следующим образом – найдите свою текущую группу, как мы знаем ее имя совпадает с именем учетной записи, и посмотрите какой у нее «gid». Вот например у моей группы «andrey» идентификатор = 501:

Затем нажмите кнопочку «Find» и в открывшемся окне поиска поставьте галочку напротив поля «Value» и задайте поиск по всей базе – «No limit – search all directories» – как отмечено стрелочками на скриншоте:

Теперь в поле «Value» задавайте идентификаторы начиная с 502 (или может в Вашем случае число будет другим – в общем начинайте с идентификатора Вашей текущей группы) и ищите – есть ли такие. Если в поле результата не отобразится ничего, то значит идентификатор свободен. Вот например у меня незанятым оказался 505, значит я буду использовать его. Присвоим группе идентификатор. Для этого выберите в списке групп нашу группу «home_users», а затем щелкните в нижней части окна (там где свойства-значения), из меню «Edit» выберите «Add»:

Добавится новое свойство. Назовите это свойство «gid», и присвойте ему значение 505 (ну, или у Вас число может быть другим):

Теперь пропишем в группе пользователей. Вспомните никнеймы пользователей данного компьютера (или посмотрите в System Preferences), у меня вот например есть 2 пользователя: andrey, vitaliy. Добавьте еще одно свойство, Вы уже умеете делать это с помощью Edit->Add. Назовите это свойство «users»:

В поле значения пропишите имя своей учетной записи, у меня это «andrey». Чтобы добавить еще одно имя выберите из меню «Directory» команду «NewValue»:

И пропишите имя следующей учетной записи. Повторите это для всех аккаунтов которые Вы хотите включить в группу. У меня в группе всего два пользователя:

Группа сформирована; дайте команду Domain->SaveChanges.

Теперь в каждой учетной записи нужно явно указать к какой группе она относится. Вернитесь в самое начало структуры базы данных (там где Вы выбирали раздел «groups»), только теперь выбирете «users» (показано стрелочкой):

Теперь среди пользователей найдите имена нужных учетных записей (в моем случае это andrey и vitaliy), среди свойств каждой учетной записи найдите свойство «gid» и поменяйте его значение на идентификатор созданной группы (у меня это 505, у Вас может быть другой):

Сохраните изменения и можете закрывать программу NetInfo Manager. Потом перезагрузите компьютер. Все. Если компьютер перезагрузился успешно значит Вы все сделали правильно 😉
Если Вы в будущем добавите нового пользователя компьютера, не забудьте включить его в группу home_users как описано выше.

Теперь все папки и файлы, которые создадите Вы, или другие члены группы home_users, на несистемном разделе диска будут относиться к группе home_users:

Если Вы хотите открыть полный доступ к какой-либо папке всем членам группы, просто поставьте с помощью окна Info права Read&Write для группы home_users – как это делается мы рассматривали в предыдущей части статьи.

Замечу также, что все файлы и папки которые Вы создадите в своей домашней папке, будут принадлежать Вашей личной группе, а не home_users!!! Это и понятно – к Вашей домашней папке имеете доступ ТОЛЬКО Вы.

Вот пожалуй и все, на основе трех статей мы узнали какую роль выполняют права доступа в современной операционной системе; научились управлять правами доступа (через Finder и посредством командной строки); и научились создавать пользовательские группы. Напоследок попрошу при проведении экспериментов с правами доступа и группами быть предельно аккуратными и четко осознавать какие кнопки Вы нажимаете, иначе имеете все шансы повредить систему. Поэтому прежде чем начинать что-либо делать – решите – а оно Вам надо?

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

Почти все о правах доступа, часть 2 | часть 4