Intereting Posts
Как правильно создать виртуальную файловую систему? Как создать загрузочный USB-накопитель Ubuntu с терминала? Каковы будут требования к пространству для обновления до 12.04? Установите подушку для Python 3 Как найти последний файл по дате? Как я могу остановить GNOME 3 от многократного запроса моего беспроводного пароля? случайно удаленный wpa_supplicant Сократить время уведомлений Разрыв экрана при воспроизведении видео – Ubuntu 14.10 – Unity – Intel Ivy Bridge Сценарий для открытия терминала и отображения вывода выполняемых команд Есть ли способ с открытым исходным кодом сделать статическую информацию из динамического исполняемого файла без наличия исходного кода? Wi-Fi соединение не работает на Ubuntu 16.04 Онлайн-курс обучения Vim editor Как запустить Настройки отображения из виртуального терминала CLI? Как я могу предотвратить автоматическое приостановление работы моего ноутбука (из-за критически низкой батареи) от цикла?

Как работают права доступа к файлам?

Можете ли вы кратко объяснить основные понятия и инструменты командной строки, используемые для управления разрешениями на файлы?

Каждый файл имеет права для трех разных категорий:

  • владелец файла,
  • группу, связанную с файлом, и
  • все остальные.

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

В CLI вы можете

  • изменить владельца с chown , например chown guillermooo
  • изменить группу с помощью chgrp , например chgrp root
  • изменить права с помощью chmod , например chmod u+w filename.ext (добавляет разрешение на запись для владельца файла filename.ext )

Если вы хотите узнать больше о каждом из этих инструментов, откройте терминал и введите man [tool] , например man chmod .

Предупреждение. Изменение прав доступа к файлам и каталогам является потенциально опасным и может сделать вашу систему непригодной. Когда вы выполняете рекурсивно с правами root на неправильном пути, мы можем подойти к точке, откуда нам придется переустанавливать Ubuntu. Поэтому рекомендуется не изменять разрешения вне директорий HOME и выполнять рекурсивные команды, так как root следует избегать, когда это возможно.

Разрешения для файлов

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

  • r (read) файл / каталог может быть открыт для доступа к чтению.
  • w (write) файл / каталог может быть открыт для доступа для записи / редактирования.
  • x (выполнить) файл / файлы в каталоге может выполняться как программа.

Кроме того, у нас есть три случая, которым мы даем разрешение:

  • u (пользователь) владельцу файла предоставляется любое разрешение.
  • g (группа), которому принадлежит файл, предоставляется разрешение.
  • o (другие) всем остальным предоставляется разрешение.

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

  Permission | Binary | Octal | User | Group | Other | ====================================================== r | 100 | 4 | | | | w | 010 | 2 | | | | x | 001 | 1 | | | | ======================================================= Number 

Теперь, если мы хотим, например,

a) владелец файла (= пользователь) имеет права доступа, разрешения и права доступа,
б) группа файлов предоставила права и права доступа и
c) все остальные должны иметь доступ только к ним.

Тогда результирующее разрешение файла будет:

  ugo rwx rx r-- 

Чтобы получить это в восьмеричных числах, например. для команды chmod или когда нам нужно понять сообщение об ошибке, нам нужно заполнить таблицу выше:

  Permission | Binary | Octal | User | Group | Other | ====================================================== r | 100 | 4 | 4 | 4 | 4 | w | 010 | 2 | 2 | 0 | 0 | x | 001 | 1 | 1 | 1 | 0 | ====================================================== Numbers add to 7 5 4 

Каждый номер разрешения необходимо добавить для подведения итогов для пользователя (4 + 2 + 1 = 7), группы (4 + 0 + 1 = 5) и других (4 + 0 + 0 = 4). Тогда получилось следующее:

  ugo 7 5 4 

Теперь у нас есть две возможности изменить бит разрешения с помощью chmod :

 chmod u+rwx g+rx o+r filename 

или намного проще с

 chmod 751 filename 

Обе команды будут делать то же самое.

Разрешение по умолчанию для вновь созданного файла в нашем доме будет 664 (-rw-rw-r–).

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

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

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

  • Также обратите внимание, что файл может наследовать свое разрешение от точки монтирования, соответственно. . Это важно при установке дисков с форматированием Windows, которые не поддерживают разрешения Unix.

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

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

Каждый раз, когда мы создаем файл, мы будем владельцем файла, и группа файлов также будет нами. С ls -l мы можем видеть разрешения, право собственности и группу, как видно из следующего примера вывода:

 -rw-rw-r-- 1 takkat takkat 4096 Sep 12 20:25 test 
  • Нам разрешено изменять разрешения, группы или права собственности на файл, который является нашим.

Если мы не являемся владельцем файла, мы получим ошибку Permission denied от Permission denied . Только root может изменить это для всех файлов. Вот почему мы должны использовать sudo при редактировании разрешений файлов, которые не являются нашими. Есть две встроенные команды, которые можно использовать для пользователей и chgrp для групп.

Чтобы изменить владельца файла от кого-либо до takkat мы можем выполнить эту команду:

 sudo chown takkat testfile 

Чтобы изменить группу файлов на takkat мы takkat

 sudo chgrp takkat testfile 

Прочтите руководства команд для получения более подробной информации и опций. Кроме того, это приятное более подробное руководство рекомендуется для дальнейшего чтения:

  • Справка сообщества Ubuntu: разрешения файлов

Также найдите некоторые связанные вопросы:

  • Изменить права доступа и права на доступ к папке
  • Что такое «umask» и как он работает?
  • Как я могу получить разрешения на восьмеричные файлы из командной строки?
  • Как использовать chmod в разделе NTFS (или FAT32)?
  • 'chmod u + x' в сравнении с 'chmod + x'
  • Как я могу стать владельцем файла, который исходит от другого компьютера / пользователя?