Вы когда-нибудь запутывались в запутанном мире разрешений Linux? Если вы все еще задаетесь вопросом, кто имеет право на чтение, запись или выполнение, то вы попали по адресу. Раскройте сложное искусство разрешений Linux, сосредотачиваясь в основном на мощном дуэте: chmod
и chown
!
На этом уроке вы оснаститесь навыками уверенного контроля доступа к вашим файлам и каталогам.
Теперь заверните рукава и покорите разрешения Linux как настоящий чемпион!
Предварительные требования
Прежде чем приступить к глубокому погружению в разрешения Linux, убедитесь, что у вас есть линукс-машина для освоения команд chmod
и chown
. В этом учебнике используется Ubuntu 22.04 LTS (Jammy Jellyfish).
Освоение команд chmod
и chown
В мире разрешений Linux команды chmod
и chown
обладают значительной силой. Понимание того, как эффективно использовать эти команды, критично для любого пользователя Linux, от начинающих до опытных администраторов.
Обе команды предлагают множество способов управления вашей Linux-системой, но вот основы того, что каждая из них способна делать:
chmod
– Эта команда является ключом к управлению разрешениями файлов и каталогов в Linux, что позволяет вам указывать, кто может читать, записывать и выполнять файл. Путем использования комбинации символов и числовых кодов вы можете предоставлять или ограничивать доступ пользователей, групп и других.chown
– С помощью этой команды вы можете изменить владельца файлов и каталогов. Эта команда бесценна, когда вам нужно передать административный контроль или изменить ассоциацию между файлом и пользователем/группой.
Будь то защита конфиденциальных данных или оптимизация доступа для команды, эти команды – ваши верные спутники в мире операций с файлами Linux.
Прочитайте и углубитесь еще глубже в тонкости этих команд.
Список файлов и просмотр разрешений
Перед изменением разрешений и владения с помощью команд chmod
и chown
, первый шаг – это просмотр списка файлов и их разрешений.
Как при поиске книги в библиотеке, в Linux вам часто придется просматривать список файлов вместе с их ассоциированными разрешениями. Это знание критично для эффективного управления файлами.
Чтобы просмотреть разрешения файла или каталога:
Откройте терминал и выполните следующую команду ls
, чтобы просмотреть все файлы и каталоги в текущем рабочем каталоге в длинном формате (-l
)
Длинный формат предоставляет подробную информацию о каждом файле или каталоге, как показано ниже.
Эта информация включает разрешения, количество ссылок, владельца, группу, размер и время модификации. Но ваше внимание сейчас сосредоточено на разрешениях файла.

Три ключевых разрешения регулируют доступ к каждому файлу и каталогу: чтение (r), запись (w) и выполнение (x). Каждое из них определяет, как пользователи взаимодействуют с содержимым каждого файла и каталога.
Кроме того, каждое из этих разрешений применяется к трем различным категориям владения: владелец, группа и другие (пользователи, которые не являются владельцем или членами группы).
Ниже приведено пояснение каждой части разрешений файла:
- Первый символ указывает на файл (–) или каталог (d).
- Первая часть (rw-) – Предоставляет владельцу права на чтение и запись, но не на выполнение.
- Вторая часть (rw-) – Предоставляет группе права на чтение и запись, но не на выполнение.
- Последняя часть (r–) – Позволяет другим читать, но не записывать или выполнять.

Изменение разрешений с помощью команды chmod
: Символьный режим
Расширьте свое понимание разрешений файла, погрузившись в мощный инструмент для их изменения. Представьте себе возможность настраивать доступ, модификацию или выполнение файла или каталога с высокой точностью. Команда chmod
(изменение режима) предоставляет вам возможность контролировать вашу систему Linux.
Когда вам нужен гибкий и выразительный способ точного управления доступом к вашим файлам и каталогам, символьный режим придется как раз по вкусу.
Для изменения разрешений с помощью команды chmod
в символьном режиме следуйте этим шагам:
1. Выполните нижеследующую команду who
, чтобы создать новый файл (>
) под названием user.txt
от имени обычного пользователя, содержащий список текущих пользователей, вошедших в вашу систему Linux.
Эта команда не выводит результат на терминал, однако вы проверите разрешения файла на следующем шаге.
2. Затем выполните нижеследующую команду, чтобы просмотреть разрешения для файла user.txt
.
Ниже вы можете увидеть стандартные разрешения файла, владельца, день и месяц создания, а также имя файла.
Запишите текущие разрешения файла, так как вы позже сравните их. Ваше внимание сейчас сосредоточено на разрешениях пользователя (rw-).

3. Теперь выполните следующую команду, чтобы удалить (-
) разрешение на запись (w
) для владельца (u
), оставив все остальные разрешения для других категорий неизменными.
В таблице ниже разбито, что представляет каждый символ:
User Symbol | Details | Operation Symbol | Details | Permission Symbol | Details |
---|---|---|---|---|---|
u | Owner | + | Add permissions | r | Read |
g | Group | – | Remove permissions | w | Write |
o | Others | = | Set permissions explicitly | x | Execute |
При успешном выполнении команды chmod
нет вывода на терминал, что применимо на протяжении всего этого руководства.
4. После изменения разрешений выполните нижеследующую команду, чтобы просмотреть разрешения файла user.txt
.
Сравните разрешения файла, которые вы отметили на шаге два (rw-), с приведенными ниже. Обратите внимание, что у владельца (u) теперь есть только разрешение на чтение (r–).

5. Теперь выполните каждую из нижеперечисленных команд, чтобы выполнить следующее:
- Добавить (
+
), записать (w
) и выполнить (x
) разрешения для владельца (u
) для того же файлаuser.txt
. - Просмотреть информацию о файле
user.txt
, чтобы проверить измененные разрешения.
Как показано ниже, теперь у пользователя есть разрешения на чтение, запись и выполнение (rwx) для файла user.txt.

6. Вместо добавления выполните следующую команду chmod
, чтобы удалить (-
) следующее:
- Выполнить (
x
) разрешение для владельца (u
). - Записать (
w
) разрешение для группы (g
). - Все разрешения (
rwx
) для других (o
).
Эта команда позволяет одновременно удалять разрешения из разных категорий одной командой.
На этот раз опция -v
говорит chmod
отображать сообщение о внесенных изменениях операцией.

7. Затем выполните следующую команду, чтобы выполнить следующие операции:
- Добавить (
+
) разрешения на чтение (r
) для всех категорий. - Удалить (
-
) разрешения на запись и выполнение (wx
) для всех (a
) категорий.
8. Теперь выполните следующую команду, чтобы просмотреть обновленные разрешения файла user.txt
.

? В качестве альтернативы вы можете изменить те же разрешения для всех трех категорий (пользователь, группа и другие) следующими командами:
chmod ugo-r
– Удаляет (-
) права на чтение (r
) для всех трех категорий (ugo
).
chmod ugo+r
– Добавляет (+
) права на чтение (r
) для всех трех категорий (ugo
).
9. Наконец, выполните следующие команды, чтобы выполнить следующее:
chmod
– Устанавливает (=
) права на чтение и запись (rw
) для владельца и группы, а также удаляет права для других (o=
).
Символ=
позволяет явно устанавливать права и переопределять любые существующие права. Если после символа=
не указаны права, все права для этой категории удаляются.ls
– Просмотрите изменения, внесенные в разрешения файлаuser.txt
.

Настройка прав доступа с использованием команды chmod
: Восьмеричный режим
Представьте себе возможность быстро и точно устанавливать разрешения для ваших файлов без сложностей символьной нотации. Восьмеричный режим (восьмеричная нотация) станет вашим новым любимым методом управления разрешениями.
В восьмеричном режиме (восьмеричная нотация) разрешения представлены четырех- или трехзначным числом от 0 до 7. Каждое число соответствует определенному набору разрешений для владельца, группы и других, следующим образом:
- Чтение (r) = 4
- Запись (w) = 2
- Исполнение (x) = 1
- Отсутствие разрешений (-) = 0
Чтобы увидеть, как работает восьмеричный режим при управлении разрешениями файлов, выполните следующие шаги:
1. Выполните нижеприведенную команду chmod
, чтобы добавить следующие разрешения (664
) к файлу user.txt
:
- Владелец – чтение (
4
) + запись (2
) + выполнение (0
) =6
- Группа – чтение (
4
) + запись (2
) + выполнение (0
) =6
- Другие – чтение (
4
) + запись (0
) + выполнение (0
)=4
При использовании четырехзначного числа с командой chmod
для установки прав доступа к файлам в Linux, ведущая цифра (слева) представляет специальные разрешения, такие как setuid, setgid и sticky bit. Следующие три цифры представляют стандартные разрешения для владельца, группы и других пользователей, соответственно.
Но при использовании трехзначного числа первая цифра представляет разрешения для владельца файла (u
), вторая для группы файла (g
), а последняя для других (o
).
Во многих случаях, особенно при отсутствии специальных разрешений, вы можете видеть только трехзначное обозначение. Ведущий ноль, который указывает на восьмеричную запись, может быть опущен. Как в примере ниже, вместо 0664
используйте 664
.
2. Затем выполните следующую команду, чтобы просмотреть разрешения для файла user.txt
.
В выводе ниже вы можете видеть установленные разрешения для файла user.txt в символьном режиме, который эквивалентен 664 в восьмеричном режиме.

3. Теперь запустите команду stat
ниже, чтобы просмотреть подробный набор статистики о файле user.txt
, включая разрешения в символьном и восьмеричном режимах.
На свойстве Доступ, как показано ниже, вы увидите восьмеричный и символьный режимы, связанные с разрешениями файла user.txt.
С этой информацией вы улучшите свое понимание настройки разрешений с использованием восьмеричного режима.

Изменение Владения Файлом с помощью команды chown
Хотя разрешения указывают, какие действия можно выполнять с файлом или каталогом, вы можете указать, кто имеет право устанавливать или изменять эти разрешения, изменив владельца.
Команда chown
(изменить владельца) – основная команда для управления владением файлом и каталогом. Как и команда chmod
, команда chown
– это команда только для root-пользователя — только пользователь root может изменять владение файлом или каталогом.
Чтобы управлять владением с помощью команды chown
, выполните следующие шаги:
1. Запустите следующие команды, чтобы создать пользователя (useradd
) с именем bill
и укажите надежный пароль.
Вам нужно иметь более одного пользователя на вашем локальном компьютере, помимо пользователя по умолчанию, который вы, чтобы увидеть, как работает изменение владения.

2. Затем выполните каждую из приведенных ниже команд, запишите список в настоящее время вошедших в систему пользователей (who
) в файл с именем new.txt
как пользователь без привилегий и просмотрите (ls
) его владельца и разрешения.
Ниже показано, что владельцем файла является mercy.

3. После подтверждения владельца выполните следующую команду chown
ниже, чтобы изменить владельца файла new.txt
на bill
.
Как и команда chmod
, команда chown
не выводит результат, но вы проверите изменение владельца на следующем шаге.
4. Теперь выполните следующую команду, чтобы просмотреть (ls
) нового владельца файла new.txt
.
Ниже приведен вывод, подтверждающий успешное изменение владельца файла new.txt на bill, который теперь имеет контроль и полномочия над этим файлом.

Применение команды chown
для изменения группового владельца
В файловой системе Linux каждый файл и каталог связан не только с отдельным владельцем, но и с группой. Как и один неналаженный инструмент, способный нарушить всю ансамбль, неправильное владение может привести к потенциальным проблемам.
Должны ли вы беспокоиться? На самом деле нет. Ассоциация с группой позволяет использовать слоистый подход к разрешениям файлов. Этот подход позволяет нескольким пользователям сотрудничать и обмениваться доступом на основе членства в группе.
Чтобы изменить владельца группы, выполните следующие шаги:
1. Выполните нижеприведенную команду, чтобы просмотреть группу, связанную с файлом new.txt
.

2. Затем выполните следующие команды, которые не выводят результаты, но выполняют следующее:
- Создайте группу (
groupadd
) с именемdevelopers
. - Измените владельца группы (
chown
) файлаnew.txt
наdevelopers
.
? В качестве альтернативы, вместо индивидуального подхода используйте следующие команды для рекурсивного изменения владельца и владельца группы файла или всего каталога.
sudo chown -R john:finance-group user.txt
sudo chown -R john:finance-group ~/Desktop
3. Теперь повторно выполните следующую команду для просмотра (ls
) нового владельца группы файла new.txt
.
Ниже приведен вывод, подтверждающий, что вы успешно изменили владельца группы файла new.txt на developers.

Изменение владельца файла с помощью числовых UID и GID
Хотя имена пользователей и групп предоставляют удобочитаемый способ идентификации владельцев файлов, каждому пользователю и группе также соответствуют уникальные числовые идентификаторы.
Эти уникальные числовые идентификаторы – это идентификатор пользователя (UID) и идентификатор группы (GID). Они обеспечивают однозначный способ установки владельца файла в средах с перекрывающимися или схожими именами пользователей и групп.
Чтобы изменить владельца с использованием числовых UID и GID, выполните следующие шаги:
1. Выполните нижеприведенную команду для вывода информации (ls
) о файле new.txt
.
Опция -n
указывает команде ls
отображать числовые UID и GID, а не преобразовывать их в соответствующие имена пользователя и группы.
Обратите внимание на UID и GID, связанные с файлом new.txt
, так как они понадобятся вам для сравнения на следующем этапе.

2. Затем выполните следующие команды getent
, чтобы получить UID и GID пользователя и группы, которые вы хотите назначить владельцами вашего файла.
Убедитесь, что вы заменяете заполнители <username>
и <groupname>
на ваше предпочтительное имя пользователя и имя группы.
Запомните UID (т.е. 1002) и GID (т.е. 1005) в следующем выводе, так как они вам понадобятся для изменения владения на следующем этапе.
По умолчанию, когда пользователь создается в Linux, также создается группа с тем же именем, что и у пользователя. Эта группа служит основной группой пользователя и автоматически добавляется к этой основной группе.
Таким образом, GID для пользователя john
отличается от GID группы finance
. Если пользователь явно не добавлен в группу, их соответствующие GID остаются разными.

3. Затем выполните следующую команду, чтобы изменить владение файлом new.txt
и групповое владение файлом. Убедитесь, что заменяете 1002
и 1005
на те, которые вы отметили на втором этапе.
? Обратите внимание, что использование числовых UID и GID может быть менее читаемым, чем имена пользователей и групп. Убедитесь, что вы используете правильные числа, чтобы избежать непреднамеренных изменений.
4. Наконец, перезапустите нижеприведенную команду, чтобы перечислить информацию (ls
) о файле new.txt
и проверить изменения в владении файлом.
Сравните UID и GID, которые вы отметили на первом шаге, с приведенными ниже. Обратите внимание, что владение новым файлом было изменено с 1001:1003 на 1002:1005.

Заключение
Вы только что отправились в обширное исследование разрешений Linux, овладевая важными командами, такими как chmod
и chown
. На протяжении этого руководства вы стали мастером в изменении разрешений с использованием символьных и восьмеричных режимов.
Вы также приобрели навыки управления владением файлами и назначениями групп, будь то по именам или с использованием числовых UID и GID. С этим новым опытом в области chmod
и chown
теперь вы обладаете мощными инструментами для управления доступом и владением в вашей системе Linux.
Но почему бы не усилить свои навыки в Linux еще больше? Возможно, стоит погрузиться в продвинутые методы контроля доступа, включая Списки управления доступом (ACL)? Стремитесь к еще более точному контролю за разрешениями файлов и каталогов!