Ubuntu Server - административные права пользователей. Управление пользователями Резервное копирование данных пользователя

В данном материале вы ознакомитесь с тем, как создать пользователя, как создать изменить пароль, получить информацию о пользователе или удалить вовсе, создать/изменить/удалить группу, после прочтения этого материала вы сможете все это выполнить с легкостью.

Работаем с пользователями и группами, учимся управлять, создавать пользователей, группы, перемещать по группам и прочие другие манипуляции с группами в Ubuntu Linux.

Добавление пользователя

Добавление пользователя осуществляется при помощи команды useradd . Пример использования:

Sudo useradd vasyapupkin

Эта команда создаст в системе нового пользователя vasyapupkin. Чтобы изменить настройки создаваемого пользователя, вы можете использовать следующие ключи:

Ключ Описание
-b Базовый каталог. Это каталог, в котором будет создана домашняя папка пользователя. По умолчанию /home
Комментарий. В нем вы можете напечатать любой текст.
-d Название домашнего каталога. По умолчанию название совпадает с именем создаваемого пользователя.
-e Дата, после которой пользователь будет отключен. Задается в формате ГГГГ-ММ-ДД. По умолчанию отключено.
-f Блокирование учетной записи. Если значение равно 0, то запись блокируется сразу после устаревания пароля, при -1 - не блокируется. По умолчанию -1.
-g Первичная группа пользователя. Можно указывать как GID, так и имя группы. Если параметр не задан будет создана новая группа название которой совпадает с именем пользователя.
-G Список групп в которых будет находится создаваемый пользователь
-k Каталог шаблонов. Файлы и папки из этого каталога будут помещены в домашнюю папку пользователя. По умолчанию /etc/skel.
-m Ключ, указывающий, что необходимо создать домашнюю папку. По умолчанию домашняя папка не создается .
-p Пароль пользователя. По умолчанию пароль не задается.
-s Оболочка, используемая пользователем. По умолчанию /bin/sh.
-u Вручную задать UID пользователю.

Параметры создания пользователя по умолчанию

Если при создании пользователя не указываются дополнительные колючи, то берутся настройки по умолчанию. Эти настройки вы можете посмотреть выполнив

Useradd -D

Результат будет примерно следующий:

GROUP=100HOME=/home INACTIVE=-1EXPIRE= SHELL=/bin/shSKEL=/etc/skel CREATE_MAIL_SPOOL=no

Если вас не устраивают такие настройки, вы можете поменять их выполнив

Useradd -D-m-s/bin/bash

где -m и -s это ключи, взятые из таблицы выше.

Изменение пользователя

Изменение параметров пользователя происходит с помощью утилиты usermod . Пример использования:

Sudo usermod -c "Эта команда поменяет комментарий пользователю" vasyapupkin

usermod использует те же опции, что и useradd.

Изменение пароля

Изменить пароль пользователю можно при помощи утилиты passwd .

Sudo passwd vasyapupkin

Основные ключи passwd:

Получение информации о пользователях

    w – вывод информации (имя пользователя, оболочка, время входа в систему и т. п.) о всех вошедших в систему пользователях.

    whoami – вывод вашего имени пользователя.

    users – вывод имен пользователей, работающих в системе.

    groups имя_пользователя – вывод списка групп в которых состоит пользователь.

Удаление пользователя

Для того, чтобы удалить пользователя воспользуйтесь утилитой userdel . Пример использования:

Sudo userdel vasyapupkin

userdel имеет всего два основных ключа:

Управление группами

Создание группы

Программа groupadd создаёт новую группу согласно указанным значениям командной строки и системным значениям по умолчанию. Пример использования:

Sudo groupadd testgroup

Основные ключи:

Изменение группы

Сменить название группы, ее GID или пароль можно при помощи groupmod . Пример:

Sudo groupmod -n newtestgroup testgroup #Имя группы изменено с testgroup на newtestgroup

Опции groupmod:

Удаление группы

Удаление группы происходит так:

Sudo groupdel testgroup

groupdel не имеет никаких дополнительных параметров.

Файлы конфигурации

Изменять параметры пользователей и групп можно не только при помощи специальных утилит, но и вручную. Все настройки хранятся в текстовых файлах. Описание каждого из них приведено ниже.

/etc/passwd

В файле /etc/passwd хранится вся информация о пользователях кроме пароля. Одна строка из этого файла соответствует описанию одного пользователя. Примерное содержание строки таково:

Vasyapupkin:x:1000:1000:Vasya Pupkin:/home/vpupkin:/bin/bash

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

Второе и последнее поля необязательные и могут не иметь значения.

/etc/group

В /etc/group , как очевидно из названия хранится информация о группах. Она записана в аналогичном /etc/passwd виде:

Vasyapupkin:x:1000:vasyapupkin,petya

В этом файле второе и четвертое поля могут быть пустыми.

/etc/shadow

Файл /etc/shadow хранит в себе пароли, по этому права, установленные на этот файл, не дают считать его простому пользователю. Пример одной из записей из этого файла:

Vasyapupkin:$6$Yvp9VO2s$VfI0t.o754QB3HcvVbz5hlOafmO.LaHXwfavJHniHNzq/bCI3AEo562hhiWLoBSqxLy7RJJNm3fwz.sdhEhHL0:15803:0:99999:7:::

Управление пользователями и группами через GUI

В текущей версии Ubuntu отсутствует штатная утилита управления группами пользователей системы, поэтому по умолчанию все действия с группами необходимо выполнять в консоли. Однако для этих целей существует специальная утилита «Пользователи и группы».

Установка графической GUI утилиты для управления группами

Пакет gnome-system-tools находится в репозитории Ubuntu, поэтому ставится одной командой:

Sudo apt-get install gnome-system-tools

Управление группами

Для добавления, удаления групп, а также добавления\удаления пользователей в\из конкретных групп, необходимо перейти в Меню Ubuntu / Dash - Системные утилиты - Администрирование - Пользователи и группы, после в данном окне нажав кнопку «Управление группами», вы увидите окно, отображающее все присутствующие в системе группы:

в котором выбрав нужную группу и нажав «Свойства» можно отметить галочкой пользователей, которых необходимо внести в группу.

Добавление и удаление пользователей - это одна из базовых задач, с которой вы можете столкнуться при работе на новом сервере с ОС семейства Linux. Как правило, после того, как вы установили новую систему, у вас есть только один пользователь - суперпользователь.

С одной стороны, использовать суперпользователя удобно, так как он обладает широкими возможностями; с другой стороны, из-за этого вы можете случайно нанести вред только что установленной системе. Поэтому для выполнения стандартных действий лучше создать еще одного пользователя, но на этот раз не обладающего такими привилегиями. Также рекомендуется создать дополнительных пользователей для всех людей, которые будут пользоваться системой. У каждого пользователя должен быть свой аккаунт.

При этом вы сможете выполнять административные задачи при помощи пользователя с sudo правами. Из этого руководства вы узнаете, как создавать пользователей, наделять их правами sudo и удалять их.

Как добавить пользователя

# adduser newuser

Если для создания нового пользователя вы хотите использовать пользователя с sudo-правами, тогда команда будет выглядеть чуть иначе:

$ sudo adduser newuser

(При этом вместо newuser вы можете указать какое-то другое слово, так как это будет имя нового пользователя.)

После ввода команды вам нужно будет последовательно ответить на несколько вопросов, а именно:

  • ввести и подтвердить пароль для нового пользователя;
  • написать дополнительную информацию о новом пользователе. Делать это необязательно; если не хотите ничего добавлять, просто нажмите Enter;
  • наконец, вам нужно будет подтвердить корректность всей введенной до этого информации - для этого надо нажать y (yes - да).

Теперь новый пользователь создан и готов к использованию! Авторизоваться под ним можно используя пароль, который вы установили ранее.

Если вы хотите наделить пользователя административными правами, то читайте следующий раздел.

Как наделить пользователя правами sudo

Если вам нужно, чтобы новый пользователь мог выполнять административные (root) команды, вам нужно дать этому пользователю доступ к sudo. Сделать это можно двумя путями: либо добавить этого пользователя в созданную группу пользователей, которые могут выполнять команды sudo, либо дать это право пользователю путем внесения изменений в конфигурацию утилиты sudo. Рассмотрим оба варианта.

Добавление нового пользователя в группу sudo

По умолчанию в Ubuntu 16.04 правами выполнять sudo команды обладают все пользователи, которые входят в соответствующую группу.

Для того, чтобы посмотреть, в какой группе сейчас находится созданный пользователь, используйте следующую команду:

$ groups newuser

В результате вы увидите на экране:

Newuser: newuser

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

$ usermod -aG sudo newuser

(Напоминаю, что вместо newuser вам нужно написать имя пользователя, которого вы хотите переместить в группу с административными правами.)

Ключ -aG нужен для того, чтобы пользователь был добавлен в одну из уже существующих в списке групп.

Проверка наличия sudo-прав

Теперь необходимо проверить, может ли ваш пользователь выполнять административные команды.

$ команда

Вы можете выполнить эту же команду, но с административными правами, если напишете в начале sudo:

$ sudo команда

При этом вам нужно будет ввести пароль от аккаунта данного пользователя.

Уточнение прав пользователя в in /etc/sudoers

Альтернативным способом дать пользователю sudo-права является настройка конфигурационного файла. Вам нужно использовать команду visudo для того, чтобы открыть конфигурационный файл /etc/sudoers в выбранном по умолчанию редакторе и указать права конкретно для этого пользователя.

Рекомендуется для редактирования конфигурационного файла использовать именно команду visudo: во-первых, она защищает файл от нескольких одновременных изменений, во-вторых, проверяет синтаксис файла перед перезаписью. Благодаря этому у вас не будет ситуации, когда вы неправильно настроили sudo, а потом не можете внести нужные изменения, так как потеряли административные права.

Если вы используете пользователя с sudo-правами, тогда нужная вам команда будет выглядеть так:

Как правило, команда visudo открывалась /etc/sudoers в редакторе vi, что могло смутить не очень опытных пользователей. Поэтому в Ubuntu 16.04 вместо vi используется nano, инструмент, который гораздо больше знаком большинству пользователей. Используете стрелки на клавиатуре для того, чтобы найти нужную строку. Она выглядит примерно так:

Root ALL=(ALL:ALL) ALL

Скопируйте этот текст чуть ниже и вместо “root” напишите имя того пользователя, которого вы хотите наделить правом выполнять sudo-команды. Это будет выглядеть примерно так:

Root ALL=(ALL:ALL) ALL newuser ALL=(ALL:ALL) ALL

Для каждого нового пользователя необходимо добавлять новую строку. После того, как вы внесете все необходимые изменения, сохраните и закройте файл, нажав Ctrl-X, затем Y и Enter для подтверждения.

Как удалять пользователей

Если вам больше не нужен один из созданных пользователей, лучшим решением будет удалить его.

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

# deluser newuser

Если вы используете пользователя с sudo-правами, тогда команда будет выглядеть следующим образом:

$ sudo deluser newuser

Для того, чтобы удалить пользователя вместе с его домашней директорией, от лица суперпользователя вам нужно ввести:

# deluser --remove-home newuser

Для пользователей с sudo-правами:

$ sudo deluser --remove-home newuser

А если вы хотите лишить удаленного пользователя sudo-прав, вам нужно открыть конфигурационный файл:

(если от суперпользователя)
или

(если от пользователя с sudo-правами)

Root ALL=(ALL:ALL) ALL newuser ALL=(ALL:ALL) ALL # Удалите эту строчку.

Это нужно для того, чтобы в дальнейшем созданный пользователь с таким же именем не получил случайно sudo-права.

Заключение

Теперь вы знаете о том, как правильно создать и удалять пользователей, а также давать им права выполнять команду sudo. Для эффективного руководства разделяйте пользователей по разным группам и давайте административные права только тем, кому это действительно нужно для работы.

Приветствую Всех!

В этой статье я расскажу как добавить нового пользователя, изменить его права или сменить пароль пользователя в Linux Ubuntu. А также как сделать «Учетные записи» при помощи графической утилиты или из командной строки.

Рассмотрим первый способ добавить новую учетную запись.

Через панель быстрого запуска открываем «Параметры системы» и выбираем «Учетные записи».

Теперь необходимо получить дополнительные привилегии. Для этого нажимаем кнопку «Разблокировать».

Вводим свой пароль и нажимаем кнопку «Аутентифицировать»

Чтобы добавить нового пользователя нажимаем на знак «+»

В открывшейся форме выбираем тип учетной записи. В этой штатной утилите можно создать пользователей двух типов:

  • Обычный
  • Администратор

В большинстве случаев достаточно «Обычного» типа учетной записи. Но если в дальнейшем выяснится, что этому пользователю нужны дополнительные привилегии, то достаточно будет вернуться в утилиту «Учетные записи» и сменить тип учетной записи.

Выбираем «Обычный» тип учетной записи, добавляем имя пользователя и нажимаем кнопку «Добавить».

У нас появилась наша новая учетная запись, но она не активирована пока не будет задан пароль.

Включаем новую учетную запись, нажав в пункте «Пароль»:

Пользуясь подсказкой придумываем «Стойкий» пароль, после чего повторно вводим его в поле «Подтвердить пароль». Активируем новую учетную запись нажав кнопку «Изменить».

Чтобы удалить ненужную учетную запись, ее необходимо выделить и нажать знак «-»

Откроется окно выбора способа удаления.

Есть два варианта:

  • c удалением домашнего каталога
  • либо с его сохранением.
    • Если файлы этого пользователя больше не нужны, то нажимаем «Удалить файлы»./p>

      Учетная запись и все файлы домашнего каталога удалены.

      А теперь рассмотрим второй способ добавить нового пользователя.

      Откроем терминал и запустим следующую команду.

      sudo adduser newusers

      Для получения дополнительных привилегий необходимо ввести пароль пользователя и нажать на клавиатуре клавишу «Enter».

      Повторно вводим пароль и нажимаем на клавиатуре клавишу «Enter».

      Добавляем необходимую информацию и если все указали правильно, то подтверждаем это набрав «Y» и нажимаем на клавиатуре клавишу «Enter».

      Но если нам нужен пользователь с правами «Администратора», то необходимо выполнить еще одну команду и добавить пользователя в необходимые группы (adm,cdrom,sudo,dip,plugdev,lpadmin,sambashare).

      sudo usermod -a -G adm,cdrom,sudo,dip,plugdev,lpadmin,sambashare newusers

      Чтобы посмотреть в какие группы входит пользователь выполним следующую команду.

      sudo id newusers

      Также очень просто сменить пароль любого пользователя. Набираем команду passwd и логин пользователя.

      sudo passwd newusers

      Вводим пароль нового пользователя и нажимаем на клавиатуре клавишу «Enter».

      Далее повторно вводим пароль и нажимаем на клавиатуре клавишу «Enter». Если все сделали правильно, то должны увидеть запись «пароль успешно обновлен». И теперь для входа в эту учетную запись необходимо вводить новый пароль.

      Удалить ненужного пользователя и его домашнюю папку тоже очень просто. Для этого набираем

      sudo userdel -r newusers

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

      sudo id newusers

      По результатам ее выполнения, мы видим, что такого пользователя нет в системе.

      Мы рассмотрели как можно добавить нового пользователя, сменить пароль, изменить его права, добавив в группы, а также как удалить пользователя. И если остались непонятные вопросы по данной теме и есть предложения, то прошу их писать в комментариях. Всем пока!

Теперь немного поговорим о разграничении прав доступа к различным элементам. Описанный в этой статье механизм является основополагающим в Linux и соответственно в Ubuntu, так что читайте внимательно.

Пользователи и группы

Linux в целом и Ubuntu в частности - системы многопользовательские, т.е. на одном компьютере может быть несколько различных пользователей, каждый со своими собственными настройками, данными и правами доступа к различным системным функциям.

Кроме пользователей в Linux для разграничения прав существуют группы. Каждая группа так же как и отдельный пользователь обладает неким набором прав доступа к различным компонентам системы и каждый пользователь-член этой группы автоматически получает все права группы. То есть группы нужны для группировки пользователей по принципу одинаковых полномочий на какие-либо действия, вот такая тавтология. Каждый пользователь может состоять в неограниченном количестве групп и в каждой группе может быть сколько угодно пользователей .

Например, в Ubuntu есть одна очень полезная группа: admin . Любой член этой группы получает неограниченные административные привилегии. Я уже рассказывал про роль администратора в Ubuntu, так что если вы уже успели забыть кто это, можете освежить свои знания. Создаваемый при установке Ubuntu пользователь автоматически становится членом группы admin .

Управлять пользователями и группами можно с помощью специального инструмента, находящегося в меню Система→Администрирование→Пользователи и группы .

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

Права доступа в Linux

Любой файл и каталог в Linux имеет пользователя-владельца и группу-владельца. То есть любой файл и каталог принадлежит какому-то пользователю системы и какой-то группе. Кроме того, у любого файла и каталога есть три группы прав доступа: одна для пользователя-владельца, одна для членов группы-владельца и одна для всех остальных пользователей системы. Каждая группа состоит из прав на чтение, запись и запуск файла на исполнение. Для каталогов право на исполнение и право на чтение всегда идут вместе и означают одно и то же.

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

В данный момент нас интересует одно крайне важное следствие из подобной организации прав доступа в системе. Конкретному пользователю Ubuntu принадлежит только его домашний каталог и все его содержимое. В системе этот каталог находится по адресу /home/имя_пользователя. Все остальные файлы системы, включая все приложения, системные настройки и т.д., располагающиеся вне /home , принадлежат преимущественно root . Помните, я говорил, что root - это пользователь с неограниченными привилегиями, непосредственное использование которого в Ubuntu запрещено. Так вот, все системные файлы и каталоги принадлежат root недаром, им всем выставлены права на изменение только для пользователя-владельца, таким образом никто, кроме root , не может вмешаться в работу системы и что-то поменять в системных файлах.

Это конечно очень хорошо для безопасности, но что же делать, если вам нужно изменить какие-нибудь системные файлы? Тут есть два пути : во-первых, большинство необходимых пользователю системных настроек можно изменить обладая правами администратора из графических конфигураторов, это самый предпочтительный способ. Ну а во-вторых можно временно повысить свои права до root и делать вообще всё, что угодно.

Делается это с помощью утилиты sudo и её производных. sudo - это консольная утилита. Она позволяет «прикинуться» рутом при выполнении конкретной команды, таким образом, получив неограниченные права. Например, команда

Sudo aptitude update

обновит данные о доступных вам приложениях (зачем это нужно я объясню в статье про управление программами). Сама по себе команда

Aptitude update

работает, только если её запускает root . Однако запуская её с помощью sudo вы выдаёте себя за рута, рутом при этом не являясь. Естественно, для использования sudo вы должны обладать правами администратора . При этом при запуске команды через sudo система спросит у вас ваш пароль, однако в целях безопасности при его вводе вам не будет ничего показываться, ни звёздочек, ни чёрточек, ни птичек, ничего. Не пугайтесь, так и надо, просто вводите до конца и нажимайте Enter . Если вы являетесь администратором и правильно ввели пароль, то указанная после sudo команда исполнится от имени root .

Через терминал можно сделать всё, что угодно, так что имея возможность стать рутом вы можете выполнить все необходимые вам настройки. Однако иногда удобно использовать графические приложения, при этом обладая правами рута. Например, если вам надо скопировать файлы в системные каталоги. Для запуска графических приложений от имени root откройте диалог запуска GNOME сочетанием клавиш Alt + F2 и введите

Gksudo имя_приложения

Например, для запуска файлового менеджера Nautlus надо ввести

Gksudo nautilus

Через запущенный таким образом Nautilus вы сможете как угодно изменять любые файлы на компьютере.

Будьте предельно внимательны при использовании Nautilus с правами root ! Вы сможете безо всяких предупреждений безвозвратно удалить любой системный файл, что спокойно может привести к неработоспособности всей системы.

Редактирование конфигурационных файлов

Важнейшим примером применения вышеописанной технологии «прикидывания» рутом является редактирование конфигурационных файлов системы. Я уже говорил, что все настройки системы и всех приложений в Linux хранятся в виде текстовых файлов. Так вот, редактировать вы можете только файлы, принадлежащие вам, то есть только настройки, касающиеся вашего пользователя. А для редактирования системных параметров вам понадобятся права администратора.

Многие файлы вы сможете открыть, но не сможете что-либо в них изменить, вам просто не будет доступна операция сохранения:

Конечно, можно открывать конфигурационные файлы с правами root через диалог запуска приложений командой

Gksudo gedit /путь/до/файла

Gedit - это стандартный текстовый редактор Ubuntu.

Однако в диалоге запуска не работает автодополнение, следовательно путь до файла вам придётся набирать вручную, что не всегда удобно. Поэтому можно для запуска текстового редактора от имени суперпользователя использовать терминал, например:

Учтите, что sudo - это чисто консольная утилита, поэтому использовать её в диалоге запуска приложений нельзя, хотя из терминала через неё можно запускать графические приложения. А gksudo наоборот, утилита графическая, поэтому её не стоит использовать в терминале, хотя это и не запрещено.

В итоге откроется редактор с возможностью сохранения изменений.

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

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

Изначально каждый файл имел три параметра доступа. Вот они:

  • Чтение - разрешает получать содержимое файла, но на запись нет. Для каталога позволяет получить список файлов и каталогов, расположенных в нем;
  • Запись - разрешает записывать новые данные в файл или изменять существующие, а также позволяет создавать и изменять файлы и каталоги;
  • Выполнение - вы не можете выполнить программу, если у нее нет флага выполнения. Этот атрибут устанавливается для всех программ и скриптов, именно с помощью него система может понять, что этот файл нужно запускать как программу.

Но все эти права были бы бессмысленными, если бы применялись сразу для всех пользователей. Поэтому каждый файл имеет три категории пользователей, для которых можно устанавливать различные сочетания прав доступа:

  • Владелец - набор прав для владельца файла, пользователя, который его создал или сейчас установлен его владельцем. Обычно владелец имеет все права, чтение, запись и выполнение.
  • Группа - любая группа пользователей, существующая в системе и привязанная к файлу. Но это может быть только одна группа и обычно это группа владельца, хотя для файла можно назначить и другую группу.
  • Остальные - все пользователи, кроме владельца и пользователей, входящих в группу файла.

Именно с помощью этих наборов полномочий устанавливаются права файлов в linux. Каждый пользователь может получить полный доступ только к файлам, владельцем которых он является или к тем, доступ к которым ему разрешен. Только пользователь Root может работать со всеми файлами независимо от их набора их полномочий.

Но со временем такой системы стало не хватать и было добавлено еще несколько флагов, которые позволяют делать файлы не изменяемыми или же выполнять от имени суперпользователя, их мы рассмотрим ниже:

Специальные права доступа к файлам в Linux

Для того, чтобы позволить обычным пользователям выполнять программы от имени суперпользователя без знания его пароля была придумана такая вещь, как SUID и SGID биты. Рассмотрим эти полномочия подробнее.

  • SUID - если этот бит установлен, то при выполнении программы, id пользователя, от которого она запущена заменяется на id владельца файла. Фактически, это позволяет обычным пользователям запускать программы от имени суперпользователя;
  • SGID - этот флаг работает аналогичным образом, только разница в том, что пользователь считается членом группы, с которой связан файл, а не групп, к которым он действительно принадлежит. Если SGID флаг установлен на каталог, все файлы, созданные в нем, будут связаны с группой каталога, а не пользователя. Такое поведение используется для организации общих папок;
  • Sticky-bit - этот бит тоже используется для создания общих папок. Если он установлен, то пользователи могут только создавать, читать и выполнять файлы, но не могут удалять файлы, принадлежащие другим пользователям.

Теперь давайте рассмотрим как посмотреть и изменить права на файлы в linux.

Как посмотреть права доступа к файлам в Linux

Конечно, вы можете посмотреть права доступа к файлам в Linux с помощью файлового менеджера. Все они поддерживают эту функцию, но так вы получите неполную информацию. Для максимально подробной информации обо всех флагах, в том числе специальных, нужно использовать команду ls с параметром -l. Все файлы из каталога будут выведены в виде списка, и там будут показаны все атрибуты и биты.

Чтобы узнать права на файл linux выполните такую команду, в папке где находится этот файл:

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

Рассмотрим подробнее, что значат условные значения флагов прав:

  • --- - нет прав, совсем;
  • --x - разрешено только выполнение файла, как программы но не изменение и не чтение;
  • -w- - разрешена только запись и изменение файла;
  • -wx - разрешено изменение и выполнение, но в случае с каталогом, вы не можете посмотреть его содержимое;
  • r-- - права только на чтение;
  • r-x - только чтение и выполнение, без права на запись;
  • rw- - права на чтение и запись, но без выполнения;
  • rwx - все права;
  • --s - установлен SUID или SGID бит, первый отображается в поле для владельца, второй для группы;
  • --t - установлен sticky-bit, а значит пользователи не могут удалить этот файл.

В нашем примере, файл test1 имеет типичные разрешения для программ, владелец может все, группа только чтение и выполнение, а все остальные - только выполнение. Для test2 дополнительно установлен флаг SUID и SGID. А для папки test3 установлен Sticky-bit. Файл test4 доступный всем. Теперь вы знаете как посмотреть права на файл linux.

Как изменить права файла в Linux

Чтобы изменить права на файл в linux вы можете использовать утилиту chmod. Она позволяет менять все флаги, включая специальные. Рассмотрим ее синтаксис:

$ chmod опции категория действие флаг файл

Опции сейчас нас интересовать не будут, разве что только одна. С помощью опции -R вы можете заставить программу применять изменения ко всем файлам и каталогам рекурсивно.

  • u - владелец файла;
  • g - группа файла;
  • o - другие пользователи.

Действие может быть одно из двух, либо добавить флаг "+", либо убрать флаг - "-". Что касается самих прав доступа, то они аналогичны выводу утилиты ls: r - чтение, w - запись, x - выполнение, s - suid/sgid, в зависимости от категории, для которой вы его устанавливаете, t - устанавливает sticky-bit. Например, всем пользователям полный доступ к файлу test5:

chmod ugo+rwx test5

Или заберем все права у группы и остальных пользователей:

chmod go-rwx test5

Дадим группе право на чтение и выполнение:

chmod g+rx test5

Остальным пользователям только чтение:

Для файла test6 установим SUID:

А для test7 - SGID:

Посмотрим что получилось:

Как видите, изменить права на файл в linux очень просто. К тому же вы можете изменить основные права с помощью файлового менеджера.

Выводы

Вот и все, теперь вы знаете не только что такое права доступа к файлам в linux, но и как их посмотреть, и даже как их изменить. Это очень важная тема, в которой действительно стоит разобраться новичкам, чтобы использовать свою систему более полноценно. Если у вас остались вопросы, спрашивайте в комментариях!

На завершение хочу предложить неплохое видео про права доступа в linux: