manual:пользователи_и_группы-2 Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
manual:пользователи_и_группы-2 [2010/05/07 14:06]
— (текущий)
Строка 1: Строка 1:
-====== Пользователи,​ группы и права доступа ====== 
  
-Теперь немного поговорим о разграничении прав доступа к различным элементам. Описанный в этой статье механизм является основополагающим в Linux и соответственно в Ubuntu, так что читайте внимательно. 
- 
-===== Пользователи и группы ===== 
- 
-Linux в целом и Ubuntu в частности - системы многопользовательские,​ т.е. на одном компьютере может быть несколько различных пользователей,​ каждый со своими собственными настройками,​ данными и правами доступа к различным системным функциям. 
- 
-Кроме пользователей в Linux для разграничения прав существуют группы. Каждая группа так же как и отдельный пользователь обладает неким набором прав доступа к различным компонентам системы и каждый пользователь-член этой группы автоматически получает все права группы. То есть группы нужны для группировки пользователей по принципу одинаковых полномочий на какие-либо действия,​ вот такая тавтология. Каждый пользователь может состоять в неограниченном количестве групп и в каждой группе может быть сколько угодно пользователей((Однако как минимум в одной группе каждый пользователь состоит всегда. Это так называемая основная группа,​ по умолчанию она носит такое же имя, как и у самого пользователя.)). 
- 
-Например,​ в Ubuntu есть одна очень полезная группа:​ ''​admin''​. Любой член этой группы получает неограниченные административные привилегии. Я уже [[администратор_и_суперпользователь|рассказывал]] про роль администратора в Ubuntu, так что если вы уже успели забыть кто это, можете освежить свои знания. Создаваемый при установке Ubuntu пользователь автоматически становится членом группы ''​admin''​((И именно поэтому и только по этой причине он собственно и является администратором.)). 
- 
-Управлять пользователями и группами можно с помощью специального инструмента,​ находящегося в меню //​Система->​Администрирование->​Пользователи и группы//​. Для работы с этой программой у вас должны быть права администратора. 
- 
-{{ .:​пользователи_и_группы:​users-edit.png }} 
- 
-Вообще основной областью применения механизма пользователей и групп является не совсем разграничение доступа к различным функциям системы,​ а скорей разграничение доступа к файлам на винчестере((Но поскольку все запускаемые приложения,​ включая программы редактирования настроек и системные сервисы,​ являются обычными файлами,​ то через разграничение доступа к файлам на винчестере можно легко управлять доступом к различным функциям.)). Вот об этом я и постараюсь рассказать дальше. 
- 
-===== Права доступа в Linux ===== 
- 
-Любой файл и каталог в Linux имеет пользователя-владельца и группу-владельца. То есть любой файл и каталог принадлежит какому-то пользователю системы и какой-то группе. Кроме того, у любого файла и каталога есть три группы прав доступа:​ одна для пользователя-владельца,​ одна для членов группы-владельца и одна для всех остальных пользователей системы. Каждая группа состоит из прав на чтение,​ запись и запуск файла на исполнение. Для каталогов право на исполнение и право на чтение всегда идут вместе и означают одно и то же. 
- 
-То есть изменяя владельцев того или иного файла и различные группы прав доступа к нему можно гибко управлять доступом к этому файлу. Например,​ сделав себя владельцем некоего файла и полностью запретив к нему доступ всем, кроме пользователя-владельца,​ можно скрыть содержимое и запретить изменение этого файла для всех других пользователей. Такая же штука проходит и с каталогами. Можно, например,​ запретить записывать файлы в каталог,​ или вообще скрыть его содержимое от посторонних глаз. 
- 
-В данный момент нас интересует одно крайне важное следствие из подобной организации прав доступа в системе. Конкретному пользователю Ubuntu принадлежит только его домашний каталог и все его содержимое. В системе этот каталог находится по адресу ''/​home/​имя_пользователя''​. Все остальные файлы системы,​ включая все приложения,​ системные настройки и т.д., располагающиеся вне ''/​home'',​ принадлежат преимущественно ''​root''​. Помните,​ я говорил,​ что ''​root''​ - это пользователь с неограниченными привилегиями,​ непосредственное использование которого в Ubuntu запрещено. Так вот, все системные файлы и каталоги принадлежат ''​root''​ недаром,​ им всем выставлены права на изменение только для пользователя-владельца,​ таким образом никто, кроме ''​root'',​ не может вмешаться в работу системы и что-то поменять в системных файлах. 
- 
-Это конечно очень хорошо для безопасности,​ но что же делать,​ если вам нужно изменить какие-нибудь системные файлы? Тут есть два пути((Есть ещё и третий:​ дать доступ вашему пользователю на редактирование системных файлов. Некоторым это может показаться очень хорошим решением,​ однако так делать категорически нельзя,​ вообще,​ не играйте с правами доступа к системным каталогам и файлам.)):​ во-первых,​ большинство необходимых пользователю системных настроек можно изменить обладая правами администратора из графических конфигураторов,​ это самый предпочтительный способ. Ну а во-вторых можно временно повысить свои права до ''​root''​ и делать вообще всё, что угодно. 
- 
-Делается это с помощью утилиты ''​sudo''​ и её производных. ''​sudo''​ - это консольная утилита. Она позволяет "​прикинуться"​ рутом при выполнении конкретной команды,​ таким образом,​ получив неограниченные права. Например,​ команда 
- 
-  sudo aptitude update 
- 
-обновит данные о доступных вам приложениях (зачем это нужно я объясню в статье про управление программами). Сама по себе команда 
- 
-  aptitude update 
- 
-работает,​ только если её запускает ''​root''​. Однако запуская её с помощью ''​sudo''​ вы выдаёте себя за рута, рутом при этом не являясь. Естественно,​ для использования ''​sudo''​ вы должны обладать правами администратора((На самом деле права администратора в основном как раз и заключаются в возможности использовать ''​sudo''​.)). При этом при запуске команды через ''​sudo''​ система спросит у вас ваш пароль,​ однако в целях безопасности при его вводе вам не будет ничего показываться,​ ни звёздочек,​ ни чёрточек,​ ни птичек,​ ничего. Не пугайтесь,​ так и надо, просто вводите до конца и нажимайте <​key>​Enter</​key>​. Если вы являетесь администратором и правильно ввели пароль,​ то указанная после ''​sudo''​ команда исполнится от имени ''​root''​. 
- 
-Через терминал можно сделать всё, что угодно,​ так что имея возможность стать рутом вы можете выполнить все необходимые вам настройки. Однако иногда удобно использовать графические приложения,​ при этом обладая правами рута. Например,​ если вам надо скопировать файлы в системные каталоги. Для запуска графических приложений от имени ''​root''​ откройте диалог запуска GNOME сочетанием клавиш <​key>​A-F2</​key>​ и введите 
- 
-  gksudo имя_приложения 
- 
-Например,​ для запуска файлового менеджера Nautlus надо ввести 
- 
-  gksudo nautilus 
- 
-{{ .:​пользователи_и_группы:​gksudo-nautilus.png }} 
- 
-Через запущенный таким образом Nautilus вы сможете как угодно изменять любые файлы на компьютере. 
- 
-<note warning>​Будьте предельно внимательны при использовании Nautilus с правами ''​root''​! Вы сможете безо всяких предупреждений безвозвратно удалить любой системный файл, что спокойно может привести к неработоспособности всей системы.</​note>​ 
- 
-===== Редактирование конфигурационных файлов ===== 
- 
-Важнейшим примером применения вышеописанной технологии "​прикидывания"​ рутом является редактирование конфигурационных файлов системы. Я уже говорил,​ что все настройки системы и всех приложений в Linux хранятся в виде текстовых файлов. Так вот, редактировать вы можете только файлы, принадлежащие вам, то есть только настройки,​ касающиеся вашего пользователя. А для редактирования системных параметров вам понадобятся права администратора. 
- 
-Многие файлы вы сможете открыть,​ но не сможете сохранить в них результат своих изменений,​ вам просто не будет доступна операция сохранения:​ 
- 
-{{ .:​пользователи_и_группы:​gedit-only-read.png }} 
- 
-Конечно,​ можно открывать конфигурационные файлы с правами ''​root''​ через диалог запуска приложений командой 
- 
-  gksudo gedit /​путь/​до/​файла 
- 
-<​note>​Gedit - это стандартный текстовый редактор Ubuntu.</​note>​ 
- 
-Однако в диалоге запуска не работает автодополнение,​ следовательно путь до файла вам придётся набирать вручную,​ что не всегда удобно. Поэтому можно для запуска текстового редактора от имени суперпользователя использовать терминал,​ например:​ 
- 
-{{ .:​пользователи_и_группы:​sudo-gedit.png }} 
- 
-<note important>​Учтите,​ что ''​sudo''​ - это чисто консольная утилита,​ поэтому использовать её в диалоге запуска приложений нельзя,​ хотя из терминала через неё можно запускать графические приложения. А ''​gksudo''​ наоборот,​ утилита графическая,​ поэтому её не стоит использовать в терминале,​ хотя это и не запрещено.</​note>​ 
- 
-В итоге откроется редактор с возможностью сохранения изменений:​ 
- 
-{{ .:​пользователи_и_группы:​gedit-fstab.png }} 
- 
-Тут стоит обратить внимание на то, что текстовый редактор запускается из терминала,​ поэтому если вы во время работы закроете окно терминала,​ то тут же закроется и запущенный из него Gedit, так что будьте внимательны. 
- 
-Итак, я немного рассказал про систему управления правами доступа в Ubuntu, надеюсь,​ вы поняли хотя бы основы. Я настоятельно рекомендую вам самостоятельно до конца разобраться в системе прав доступа к файлам и в утилите ''​sudo''​. Чуть подробней про ''​sudo''​ можно почитать,​ например,​ на нашей [[http://​help.ubuntu.ru/​wiki/​суперпользователь_в_ubuntu|вики]]. А пока продолжим знакомство с основами работы в Ubuntu, осталось рассмотреть ещё одну тему: 
- 
-  * [[типы_файлов|Типы файлов]]