Журнал LinuxFormat - перейти на главную

LXF91:Система

Материал из Linuxformat
Перейти к: навигация, поиск


Первые шаги Советы для тех, кто только начинает знакомиться с Linux

Содержание

Система: Рули пользователями!

Почему Linux столь защищен? Энди Ченнел считает, что благодаря правам доступа, привилегиям и силе. И он прав.

Сила вертит этим миром. Правда, экономисты уверяют, что деньги, а романтики предпочитают думать, что любовь, но это в чистом виде сила. В XXI веке, когда так много важной персональной информации хранится на жестких дисках и в компьютерах, эта сила иногда может быть названа одним словом: владение [owned]. Намеренная опечатка в этом слове – ‘pwned’ – означает, что кракер, а не хакер (см. врезку «Кракеры против Хакеров»), получил контроль над вашим ПК и может использовать его в своих целях.

Гнусными целями могут быть: рассылка спама по миллионам адресов, отправка вируса всем, кто записан в вашей адресной книге, хранение и передача аморальных или противозаконных изображений или использование вашего браузера для накрутки счетчиков посещений некоторого web-сайта. Это не просто мелкие жулики, интересующиеся вашим ПК: кракинг – большой бизнес. В мае 2006 г. Sony BMG Music Entertainment (да, та самая Sony!) была уличена в распространении руткита через DRM-приложение, записанное на одном из ее музыкальных CD и выпущенное 12-миллионным тиражом. Любой осведомленный об этом кракер мог получить удаленный доступ к ПК. Опасности сетевого вторжения были подвергнуты миллионы пользователей.

Это, конечно, одна из причин, почему мы используем Linux; в мире Linux тоже встречаются руткиты, но они менее распространены, более вероятно, что они будут обнаружены и деактивированы, а благодаря организации ОС Linux им труднее нанести серьезный ущерб [это распространенное заблуждение. Руткит, действующий как часть ядра, способен на все, как в Windows, так и в Linux, – прим. ред.]. Однако функции, обеспечивающие защищенность Linux, заботятся в основном о самой ОС, тогда как среднего пользователя скорее волнуют личные данные, среди которых может быть финансовая информация и, чем дальше, тем больше, обширные хранилища фотографий, видео и документов. Важны оба этих аспекта: тот, кто прорвется в ваш компьютер, может установить теневую программу слежения за клавиатурой (keylogger), которая в фоновом режиме будет записывать все, что вы набираете (имена пользователей, пароли, номера счетов и т.д.), то есть уязвимость ОС может привести к потере или несанкционированному использованию ваших данных.

Исправление проблем безопасности в Linux – работа для профессионалов, а мы, скромные конечные пользователи, должны довольствоваться загрузкой и установкой соответствующих заплаток по мере их появления. Но это не значит, что мы бессильны. На данном уроке мы рассмотрим несколько методов защиты, а заодно разберемся, как и почему пользователи Linux поделены на рядовых и привилегированных. Мы также обсудим способы блокирования файлов и папок, запрещающие другим пользователям в многопользовательском окружении – в офисе, школе или дома – изменять их или вообще знать об их существовании.

Корень проблемы

В Linux вы можете встретиться (и работать от имени) пользователя одного из двух типов: рядового (user) и привилегированного (root). Давайте рассмотрим, что может и что не может делать каждый из них. С точки зрения безопасности, root важнее, вот почему опытных пользователей раздражает, когда издатели дистрибутива решают, из соображений удобства, создавать обычных пользователей с правами root. Такое было в Linspire, но теперь при установке вы можете выбрать, создавать ли пользователя root: пользуйтесь этим.


Вообще-то, root – это администратор компьютера, и вам необходим пароль root для выполнения задач типа установки программ, изменения прав доступа к каталогам за пределами вашего пространства /home/имяпользователя и изменения параметров устройств. Этот пароль назначается вами при установке дистрибутива, и он должен быть стойким. Если ваш пароль слабоват, большинство дистрибутивов предупреждает об этом.

Кстати, Ubuntu использует компромиссную систему, схожую с Apple OS X, где пользователям временно предоставляются привилегии root, когда они вводят свой собственный пароль. Эта система называется sudo, и она неплохо работает: ведь кракеру, пожелавшему взомать вашу машину, придется узнавать и имя пользователя, и пароль, тогда как в противном случае будет достаточно подобрать пароль root.

Если вам захочется добавить традиционную учетную запись root в Ubuntu (что разработчики дистрибутива не рекомендуют делать), просто откройте консоль и наберите sudo passwd root. У вас спросят ваш собственный пароль, затем новый пароль и его подтверждение. Сделав это, можете открыть консоль, набрать su и ваш пароль для получения полного доступа к системе. Однако sudo остается активной, и когда при установке программ запрашивается пароль, имеется в виду пароль пользователя, а не root. Вы можете сделать так, чтобы sudo запрашивала пароль root, отредактировав файл /etc/sudoers. Этот файл можно открыть в Gedit или Kate, запустив эти приложения с привилегиями root (см. ниже). Найдите в тексте файла строку, начинающуюся с ‘Defaults’, и добавьте ключевое слово ‘rootpw’.

Определив пользователя root, можете завершить сеанс и набрать имя root, а затем тот самый пароль в окне входа в систему. Вход в режиме root можно запретить, набрав su passwd -l root, но если вы сделаете это при настройке sudo на использование пароля root, то не сможете нормально администрировать свою систему. Пожалуйста, помните, что все-таки разделение на пользователей и суперпользователей имеет свои причины: будьте осторожны.

Если вы прикипели к sudo, но хотите обеспечить другим пользователям удобство установки программ и совместного использования файлов, наделите их соответствующими правами, войдя в System > Administration > Users And Groups [Система > Администрирование > Пользователи и группы], выбрав соответствующего пользователя и нажав кнопку Properties [Свойства]. Выберите вкладку User Privileges [Привилегии пользователя] и установите опцию Executing System Administration Tasks [Выполнение задач системного администрирования]. Теперь, запустив sudo во время работы, другой пользователь сможет ввести свой собственный пароль.

Идеальный пароль

На элементарном уровне безопасность вашего компьютера определяется ее слабейшим звеном, и часто это пароль. Выбирая его сложным для взлома, вы защищаете себя от локальных (связанных с физическим доступом к машине) и удаленных (доступ по сети) атак. Хороший, безопасный пароль должно быть трудно взломать, так что избегайте дней рождения, имен детей, и тем более явных слов вроде password. Кроме того, большинство людей рекомендуют использовать комбинацию как минимум шести символов, и строчных и заглавных, а также числа: это не даст кракеру осуществить лобовую «атаку по словарю».

Один из способов – взять начальные буквы запоминаемой фразы (например, Пока Коровы не Вернутся Домой) или песни и вашу дату рождения, так что в итоге получится ПКнВД130271 [имейте в виду, что использовать кириллицу в пароле не рекомендуется, – прим.ред.]. Можно также использовать имя и две даты, например, Mozart17561791 – заодно освежите в памяти историю! Если вам неохота удерживать в голове строки практически случайных символов, почему бы не объединить два слова, по типу PaperGorilla – и запомнить легко, и взломать труднее, чем одно слово [правильнее сказать, «незначительно труднее» – поэтому таких паролей также следует избегать, – прим. ред.].

Итак, у нас есть пользователь root и хороший сильный пароль для защиты от вторжения со стороны других пользователей. Вход root через приглашение KDE или Gnome не отличается от входа обычного пользователя, но он все же не рекомендуется к использованию. Гораздо лучше работать под своей учетной записью, а когда понадобится, давать себе привилегии root на время выполнения конкретных задач. Обычно это автоматизировано: при установке программ, например, в какой-то момент у вас запрашивается пароль root. Однако иногда может потребоваться сделать это вручную, например, в ситуации, когда вы пытаетесь собрать и установить программу из исходных текстов. Тут нужно открыть консоль и набрать su, нажать Enter, затем ввести пароль root. После этого все, что вы набираете в консоли, будет выполняться от имени суперпользователя (root).

Поскольку приложения также запускаются из командной строки (путем набора имени приложения), можно открыть текстовый редактор вроде Kate, способный редактировать системные файлы, или запустить файловый менеджер вроде Konqueror или Nautilus, умеющий копировать, вставлять или редактировать любые файлы в системе. Однако это не очень здорово, поскольку может привести к осложнениям, если позже в систему попробуют зайти другие пользователи. Лучший способ выполнения таких задач – использовать gksudo (для пользователей Gnome) или kdesu (для KDE). При этом запускается отдельный экземпляр приложения с указанными правами, что уменьшает вероятность случайного вторжения в другие области операционной системы.

Чтобы сделать это, нажмите Alt+F2 для открытия диалога Выполнить команду и введите

gksudo appname

или

kdesu appname

где appname – имя запускаемого приложения. Теперь это приложение имеет права root, то есть пользователь может открывать любые файлы, включая системные или файлы настроек, и изменять их, но эти привилегии будут отменены при закрытии приложения, тогда как при использовании командной строки привилегии root заканчивают свое действие только при закрытии терминала.

Другой тип пользователя – это, хм... пользователь (user). Для компьютера, пользователь – отдельная сущность, с собственными настройками, рабочим столом и каталогом внутри /home для размещения личных документов, фотографий и прочего. В своем домашнем каталоге (где имеется подкаталог с именем /Desktop, хранящий файлы, помещенные на рабочий стол), пользователь может вытворять все, что угодно, но он не может изменять какие-либо другие файлы – включая домашние каталоги других пользователей. Это достигается посредством прав доступа, определяющих, кто и что может делать с каждым файлом и каталогом на компьютере.

Как вы понимаете, права доступа управляются не единственным образом, и это важно для совместного пользования информацией на компьютере или в сети, особенно если у вас дома больше одного пользователя. Например, вы можете запретить детям доступ к вашему рабочему каталогу, но позволить им пользоваться коллекцией музыки; или совместно использовать библиотеку фотографий, куда каждый пользователь сможет выкладывать свои цифровые снимки для всей семьи.

Права доступа обычно устанавливаются в три различных состояния, но есть еще и дополнительные опции.

  • None (Нет доступа) Другие пользователи не могут получить доступ к содержимому каталога. Это наиболее безопасное и/или параноидальное состояние.
  • Access files (Доступ к файлам) Другие пользователи могут заходить в каталог и открывать файлы, но не изменять или удалять их. Это состояние принято было называть ‘только для чтения’, но и Gnome и KDE пытаются очеловечить этот процесс, давая состояниям прав хорошие удобочитаемые имена.
  • Create and delete files (Создание и удаление файлов) Любой пользователь может добавлять, удалять, просматривать и редактировать файлы как в своем домашнем каталоге (это называется Чтение/Запись).

Есть еще опция, делающая файл (не каталог) исполняемым, ее можно использовать, когда вы загрузили приложение и хотите запустить его от имени своего пользователя. Щелкните правой кнопкой на приложении и выберите Свойства > Права, а затем отметьте опцию ‘Выполнение’: она находится у нижнего края окна.

Разрешение на посадку

В Linux есть несколько способов представления прав доступа к файлу или папке, и хотя новичкам удобнее свалить работу на Gnome и KDE, следует знать более стандартные способы записи, чтобы, столкнувшись с проблемой в незнакомом окружении рабочего стола, вы всетаки смогли редактировать права как эксперт. Наиболее общая форма указания прав – текстовая: состояние прав файла или каталога для его владельца, группы и других пользователей описывается комбинацией букв r, w и x. Вы, верно, догадались, что ‘r’ – это чтение, ‘w’ – запись, а ‘x’ – выполнение. Вдобавок, дефис (-) может означать, в зависимости от позиции, что рассматриваемый элемент – это файл, или что вам нельзя его даже трогать.

При таком методе каждый файл и каталог в системе Linux имеет настройки прав доступа, указанные десятью цифрами или битами. Вы можете увидеть их в действии в Gnome, открыв менеджер файлов и выбрав опцию Права в меню Вид > Отображаемые колонки, а в KDE’шном Konqueror – настроив опции вывода в виде списка в меню Вид.

Проверить права каждого файла в каталоге можно также из командной строки. По умолчанию, открывая консоль, вы оказываетесь в своем каталоге /home. Чтобы увидеть права доступа ко всему, что здесь есть, наберите ls -l. Результат будет примерно таким:

-rw-r--r-- 1 andy andy 47841 2007-01-02 15:26 bumble_bee.jpg
drwxr-xr-x 2 andy andy 4096 2007-01-15 11:53 Desktop
lrwxrwxrwx 1 andy andy 26 2006-10-22 15:07 Examples -> /usr/share/example-content
drwxr-x--- 6 andy andy 4096 2007-01-15 10:19 Work

То, что нам интересно, находится в первой части каждой записи. Первая цифра (позиция 0) сообщает, что мы видим: файл (-), каталог (d) или ссылку (l). В данном случае ссылка – это ссылка на файл или каталог в другой части системы. Следующие три цифры (позиции 1–3) – это права владельца, 4–6 – права группы, а 7–9 – права остальных.

К примеру, ссылка Examples (см. выше) и каталог Shared, который мы скоро создадим, имеют следующие права: lrwxrwxrwx. l означает, что это ссылка (далее будем использовать d), а rwx (3 раза) показывают, что владелец, группа и прочие могут читать, записывать и просматривать содержимое этого каталога. Для сравнения: у каталога Work, скрытого от всех, кроме активного в данный момент пользователя, указано drwxr-x---. Последние три дефиса говорят, что ‘остальные’ (пользователи, не являющиеся владельцем и не принадлежащие к группе ‘andy’) не могут ничего читать, записывать и просматривать в этом каталоге. Остальная информация, слева направо, это владелец, группа, размер файла или каталога, дата создания или изменения и имя файла/каталога. Отметим третью запись, в которой отображаются имя ссылки и место, на которое ссылаются.

И снова в home

Linux – это действительно многопользовательская система, где каждый может иметь свои собственные настройки. Первым делом следует убедиться, что у каждого члена семьи имеется свой пользовательский профиль. Для этого примера мы используем Ubuntu, но влюбом другом дистрибутиве процесс управления пользователями похожий, даже если используется KDE. Начнем с запуска приложения Управление Пользователями. В Gnome оно расположено в Система > Администрирование > Пользователи и Группы; в KDE загляните в Настройка > Настроить > KUser. Нажмите кнопку Добавить для открытия окна настроек пользователя и добавьте полное имя пользователя название учетной записи. Полное имя будет использоваться в качестве имени каталога пользователя в /home, а название учетной записи (оно не может содержать пробелы или символы пунктуации) нужно будет вводить в окне входа в систему. Давать всем подряд привилегии администратора бессмысленно, поэтому для большинства пользователей сохраните настройки по умолчанию. Пароли можно добавить вручную (рекомендуется), а можно сгенерировать случайный, используя опцию внизу окна.

Если вам нужны более экзотические варианты, добавьте или удалите опции на вкладке Привилегии Пользователя. Доступны такие опции, как запрет доступа к CD-приводу или внешним устройствам или запрет на соединение с Интернетом через модем. Последняя опция весьма полезна, если у вас телефонный доступ и вы хотите запретить кому попало лазить в сеть и наматывать большие счета. Настроив всех пользователей, нажмите кнопку Закрыть.

Раз у нас стало много пользователей, возможно, следует запретить им доступ к личным данным в вашем домашнем каталоге. Для этого откройте домашний каталог со своего рабочего стола, щелкните правой кнопкой на каталоге, который хотите защитить, и перейдите на вкладку Права. Загляните в Другие настройки и измените опцию Доступ к каталогу на Нет Доступа. После этого другим пользователям компьютера при попытке открытия вашего домашнего каталога будет сообщено, что у них нет прав на доступ к этому ресурсу.

Теперь создадим общий каталог, доступный всем пользователям системы – так что ведите себя в нем осторожно! Откройте терминал и наберите gksudo nautilus. Как описано выше, это приведет к запуску Nautilus с привилегиями root. Появится запрос на ввод вашего пароля, и Nautilus запустится. Выберите Файловая система/home, щелкните правой кнопкой мыши в окне и выберите пункт Создать каталог. Назовите его Shared. Теперь щелкните правой кнопкой мыши на новом каталоге, выберите Свойства и вкладку Права. В настройках Другие, выберите Доступ к Каталогу > Создание и Удаление файлов. Теперь любой пользователь может добавлять и удалять файлы и каталоги в Shared, что делает его прекрасным местом для хранения образов CD, фотографий или фильмов. Помните, что пользователь root имеет доступ ко всем файлам и каталогам системы и может менять права доступа, вот почему так важно, чтобы ваша root-запись имела действительно хороший пароль! И не давайте своей супервласти вскружить вам голову. LXF

Глоссарий

  • Атака по словарю Кракер настраивает программу на подстановку в поле ввода пароля

слов из словаря. Если ваш пароль – обычное слово, ваша система будет взломана.

  • Группа Группы в системе Linux используются для того, чтобы не определять права для каждого пользователя в отдельности. Например, вы можете разрешить группе ‘Users’ доступ к некоторому файлу, и тогда эти права получат

все члены данной группы.

  • Права Они определяют, кто и что может делать с файлами и каталогами в системе Linux. Если у вас нет прав на доступ к каталогу, вы не сможете в него войти – как, к счастью, заодно и кракеры, и вредоносные программы (malware).
  • Только для чтения Пользователь может просматривать содержимое файла или каталога, но никак не может изменить его. Правда, он может открыть документ или файл и затем сохранить его в собственном пользовательском пространстве, что даст ему права на чтение/запись.
  • Чтение/Запись Пользователи могут просматривать и изменять содержимое по своему желанию.
  • Root Администратор данной системы. root может производить изменения в системе – устанавливать программы, настраивать устройства и т.д. – чего не может обычный пользователь. Вы можете «стать root’ом» (получить привилегии root), открыв консоль и набрав su, а затем введя пароль root. Не забудьте закрыть консоль root по завершении работы или набрать exit для отмены привилегий root.
  • Пользователь (User) Обычный пользователь системы Linux. Поскольку Linux – настоящая многопользовательская ОС, каждый, кто постоянно работает за данным компьютером, имеет отдельную учетную запись (account). Благодаря этому он ничего не впихнет в вашу папку, не сотрет ваши закладки и не насвинячит на вашем рабочем столе.
  • sudo Метод, при котором обычному пользователю – обычно первому определяемому во время установки дистрибутива – временно предоставляются привилегии root для изменения конфигурации системы или установки программ. Графические версии – gksudo для Gnome и kdesu для KDE.
Персональные инструменты
купить
подписаться
Яндекс.Метрика