Изменить права доступа к папке linux
Обновлено: 21.11.2024
Юникс-подобные операционные системы, такие как Linux, работающие на общих высокопроизводительных компьютерах, используют настройки, называемые разрешениями, для определения того, кто может получать доступ и изменять файлы и каталоги, хранящиеся в их файловых системах. Каждому файлу и каталогу в файловой системе назначаются атрибуты «владелец» и «группа».
Чаще всего по умолчанию пользователь, создавший файл или каталог, назначается владельцем этого файла или каталога. При необходимости (например, когда член вашей исследовательской группы увольняется) корневой администратор системы может изменить атрибут пользователя для файлов и каталогов.
Обозначение группы можно использовать для предоставления товарищам по команде и/или соавторам совместного доступа к файлам и каталогам владельца, а также предоставляет удобный способ предоставления доступа нескольким пользователям.
Просмотр прав доступа к файлам
Чтобы просмотреть разрешения для всех файлов в каталоге, используйте команду ls с параметрами -la. Добавьте другие параметры по желанию; справку см. в разделе Список файлов в каталоге в Unix.
Например, если вы введете:
Вы должны увидеть вывод, аналогичный следующему:
В приведенном выше примере вывода первый символ в каждой строке указывает, является ли указанный объект файлом или каталогом. Каталоги обозначаются ( d ); отсутствие буквы d в начале первой строки указывает на то, что myfile.txt является обычным файлом.
Буквы rwx обозначают разные уровни разрешений:
Обратите внимание на несколько экземпляров r , w и x . Они сгруппированы в три набора, которые представляют разные уровни владения:
-
Разрешения владельца или пользователя: после слота каталога ( d ) первый набор из трех символов указывает настройки разрешений для владельца (также известного как пользователь).
В примере -rw-r--r-- права владельца равны rw- , что указывает на то, что владелец может читать и писать в файл, но не может выполнять его как программу.
В примере drwxr-xr-x права владельца — rwx , что указывает на то, что владелец может просматривать, изменять и входить в каталог.
В примере -rw-r--r-- члены группы могут только читать файл.
В примере drwxr-xr-x члены группы могут просматривать каталог и входить в него.
Изменить права доступа к файлу
Чтобы изменить права доступа к файлам и каталогам, используйте команду chmod (изменить режим). Владелец файла может изменить разрешения для пользователя ( u ), группы ( g ) или других ( o ), добавив ( + ) или вычитая ( - ) разрешения на чтение, запись и выполнение.
Существует два основных способа использования chmod для изменения прав доступа к файлам: символьный метод и абсолютная форма.
Символический метод
Первый и, возможно, самый простой способ – это относительный (или символический) метод, который позволяет указывать разрешения с помощью однобуквенных сокращений. Команда chmod, использующая этот метод, состоит как минимум из трех частей из следующих списков:
Класс доступа | Оператор | Тип доступа |
---|---|---|
u (пользователь) | + (добавить доступ) | r (чтение) |
g (группа) | - (удалить доступ) | w (записать) |
o (другое)< /td> | = (установить точный доступ) | x (выполнить) |
a (все: u, g и o) тд> |
Прочитано владельцем | 400 |
Запись владельцем | 200 |
Выполнение владельцем | 100 |
Чтение по группе | 040 |
Запись по группе | 020 |
Выполнить группой | 010 |
Читать другими | 004 |
Написание другими | 002 |
Выполнение другими | 001 |
Суммируйте все доступы, которые вы хотите разрешить. Например, чтобы предоставить права на запись и выполнение владельцу myfile (200+100=300) и предоставить права на чтение всем (400+040+004=444), вы должны ввести:
777 | каждый может делать что угодно (читать, писать или выполнять) |
755 | вы можете делать что угодно; другие могут только читать и выполнять |
711 | вы можете делать что угодно; другие могут только выполнять |
644 | вы можете читать и писать; другие могут только читать |
Распространенные проблемы при обмене данными с другими пользователями
Убедитесь, что вы понимаете свои обязанности при обработке, хранении и передаче данных, содержащих защищенную медицинскую информацию (PHI). Дополнительную информацию см. в разделе Ваши юридические обязанности по защите данных, содержащих защищенную медицинскую информацию (PHI), при использовании систем и услуг UITS Research Technologies.
Чтобы поделиться файлом или каталогом, которым вы владеете, с кем-либо, вы можете предоставить этому пользователю права на чтение и выполнение. Однако вы также должны установить те же привилегии для любых родительских каталогов над элементом, которым вы делитесь; если вы этого не сделаете, пользователь не сможет просмотреть и перейти ( cd ) во все родительские каталоги над вашим файлом или каталогом.
Если вы думаете о файловой системе как о физическом месте, то разрешения работают как ключи, которые позволяют вам получать доступ к различным каталогам:
- Разрешение на чтение ( r ) позволяет пользователям просматривать ( ls ) каталоги.
- Разрешение на выполнение ( x ) позволяет пользователям перемещаться ( cd ) в каталоги.
- Разрешение на запись ( w ) позволяет пользователям добавлять и удалять файлы.
Например, вы хотите предоставить кому-либо доступ к /N/u/username/Carbonate/scripts . Представьте путь как физическое пространство:
- /N – закрытый поселок, в котором вы живете.
- /u — единица измерения.
- /username – это ваша квартира.
- /Карбонат — это комната в вашей квартире.
- /scripts — это чулан в вашей комнате.
Если кто-то захочет запустить ваши скрипты, вам нужно будет предоставить этому человеку доступ ко всем частям /N/u/username/Carbonate/scripts . Вы можете попробовать сделать это следующим образом:
Однако пользователь не может читать или получать доступ к подкаталогу, если у него также нет разрешений x на родительские каталоги. Другими словами, приведенная выше команда выдает ключ от вашего шкафа, но не от вашей комнаты или квартиры.
Чтобы решить эту проблему, предоставьте разрешения x родительским каталогам, которыми вы управляете:
Это позволит другим перемещаться ( cd ) в каталог сценариев. Поскольку у родительских каталогов нет разрешений r, пользователи смогут просматривать ( ls ) только каталог scripts, сохраняя приватность остальной части вашей файловой системы.
Получить помощь
Чтобы узнать больше о chmod , обратитесь к странице руководства.В командной строке Unix введите:
В Университете Индианы для личной или ведомственной поддержки систем Linux или Unix см. раздел Получение справки по Linux или Unix в IU.
Используйте команду Chmod для изменения разрешений из командной строки.
Если вы когда-либо пытались запустить сценарий из командной строки в Linux и получали сообщение об ошибке, в котором говорилось, что он не является исполняемым, или пытались войти в каталог только для блокировки системой, у вас, вероятно, нет разрешений. делать эти вещи. К счастью, если у вас есть соответствующие права или возможность действовать в качестве суперпользователя (доступно с помощью sudo), вы можете изменить разрешения для файлов и каталогов.
В этом практическом руководстве мы рассмотрим команду chmod, мощную команду, которая может изменять права доступа к файлам и каталогам для владельца, членов группы пользователей и других лиц. В следующем разделе мы также объясним, как узнать, к какой группе принадлежит ваш пользователь, и что именно Linux подразумевает под «другими».
Пока вы привыкнете к этим командам, полезно работать с примерами пустых файлов и каталогов, и вам следует проявлять особую осторожность, чтобы тщательно следовать инструкциям.
Все команды в этом руководстве будут работать на большинстве компьютеров Linux. Мы использовали установку Ubuntu 20.04, но вы можете запустить это руководство на Raspberry Pi. Все инструкции выполняются через Терминал. На большинстве компьютеров с Linux можно открыть окно терминала, нажав ctrl, alt и t.
Как проверить права доступа к файлам в Linux
Для начала давайте создадим тестовый файл в тестовом каталоге и посмотрим на его разрешения по умолчанию. Чтобы увидеть разрешения, мы будем использовать ls с добавленным аргументом -l.
<р>1. Создайте новый каталог с именем test_directory. <р>2. Перейдите во вновь созданный каталог. <р>3. Создайте новый тестовый файл с именем test1.txt. <р>4. Выведите список содержимого каталога, используя ls -l.Использование ls -l дает нам гораздо больше информации об элементах, возвращаемых в списке. Мы должны увидеть, что test1.txt создан. Нас интересуют первые 10 символов в списке, которые для нашего тестового файла читаются как - rw- rw- r--.
Первый — указывает, что объект в списке является файлом. Если бы мы запустили ls -l и был указан каталог, этот первый символ был бы d. Следующие 9 символов расположены в 3 наборах по 3.
Первый набор из трех относится к владельцу, второй набор из трех относится к группам пользователей, а последний набор из трех относится к остальным. Каждый набор из 3 символов может содержать - или r, w и x. Если вы видите в наборе букву r, значит, этому набору предоставлены права на чтение. Если вы видите w, этот набор может записывать в файл, и если вы видите x в наборе, то этот набор может выполнять файл как скрипт или программу.
Мы видим, что наш test1.txt в настоящее время имеет разрешения владельца и члена группы на чтение и запись, а другим разрешено только чтение. Ни у кого нет разрешения на выполнение файла.
Как быстро изменить права доступа к файлам/каталогам в Linux
Мы можем использовать команду chmod для включения и выключения разрешений на чтение, запись и выполнение для владельца, группы и других. Начнем с изменения отдельных разрешений для владельца и группы.
<р>1. В test_directory перечислите текущие разрешения для test1.txt.
Они должны быть неизменными с момента создания test1.txt и должны выглядеть так: -rw-rw-r-- .
Теперь мы должны увидеть, что разрешения для test1.txt читаются как -r--r--r--, указывая, что для групп файл теперь доступен только для чтения.
<р>6. Включите права на запись для владельца. Вместо того, чтобы использовать u-w для удаления прав на запись, мы можем интуитивно использовать u+w, чтобы предоставить права на запись для владельца. <р>7. Перечислите содержимое каталога, чтобы просмотреть новые настройки разрешений. Теперь мы должны увидеть, что разрешения для test1.txt читаются как -rw-r--r--, указывая на то, что владельцу предоставлены права на запись.Как применить несколько изменений прав доступа к файлам/каталогам в Linux
Мы также можем объединить аргументы, использованные в предыдущем разделе, чтобы внести несколько изменений в права доступа к файлам Linux в одной команде. В этом разделе важно не добавлять лишние пробелы в аргументы chmod, так как это приведет к сбою команды.
В первом разделе мы использовали u и g для владелец и группа, а в этом разделе мы дополнительно используйте o, чтобы изменить разрешения для других. Аналогично, мы использовали r и w для чтения и написать, и в этом разделе мы добавим x, чтобы внести изменения в права доступа к исполняемому файлу.
<р>1. Перечислите содержимое каталога, чтобы просмотреть новые настройки разрешений. Мы должны увидеть, что разрешения для test1.txt равны -rw-r--r-- . <р>2. Измените разрешения, чтобы владелец мог дополнительно выполнять, а группа могла дополнительно записывать и выполнять. Обратите внимание, что после запятой нет пробелов, а также обратите внимание, что вы можете комбинировать r,w,x в одном аргументе. <р>3. Перечислите содержимое каталога, чтобы просмотреть новые настройки разрешений. Мы должны увидеть, что разрешения для test1.txt равны -rwxrwxr-- . Это означает, что владелец и группа могут читать, записывать и выполнять файл, в то время как другие могут только читать.Как рекурсивно изменить права доступа к файлам/каталогам в Linux
Команду chmod можно использовать для рекурсивного внесения изменений в каталог, что означает, что изменения также применяются к файлам, содержащимся в каталоге. Давайте воспользуемся тем, что мы уже узнали, и дополнительно воспользуемся рекурсивным аргументом -R, чтобы увидеть, как это работает.
<р>1. Перейдите в свой домашний каталог и перечислите содержимое.Мы должны увидеть test_directory в списке из предыдущих частей этого руководства. Разрешения для test_directory должны читаться как drwxrwxr-x.
<р>2. Измените права владельца и группы как для каталога, так и для его содержимого. Выполнение этой команды аннулирует права владельца и группы на запись как для test_directory, так и для содержащегося в нем файла test1.txt. <р>3. Перечислите содержимое домашнего каталога, чтобы проверить разрешения для test_directory.Мы должны увидеть, что разрешения владельца и группы разрешают чтение и выполнение, но не разрешают запись в каталог.
<р>4. Перейдите в test_directory, чтобы проверить разрешения для test1.txt.Мы должны увидеть, что права владельца и группы для test1.txt были изменены в соответствии с рекурсивными изменениями в каталоге хоста, удаляя права на запись.
Как просмотреть свою группу Linux
Когда мы говорим о пользователях, группах и прочем, мы имеем в виду, что наш пользователь обычно принадлежит к группе пользователей. Пользователь и группа могут иметь одинаковые или очень разные разрешения. Например, члену команды может потребоваться больше разрешений для выполнения определенной задачи. Разрешения, которые мы даем пользователю и группе, будут отличаться от разрешений, которые мы даем другим пользователям, пользователям, не входящим в группу.
Мы можем увидеть группы, частью которых является наш пользователь, с помощью команды groups.
<р>1. Откройте терминал и введите groups. В нем будут перечислены все группы, доступные в нашей установке. <р>2. Откройте терминал и введите groups, а затем имя пользователя. Например, здесь мы проверяем, к каким группам принадлежит «Том», и обнаруживаем, что он принадлежит к группам tom и sudo.Вывод этой команды выглядит следующим образом.
Другие не являются группой. Скорее «другие» относятся к любому, кто не является владельцем или членом группы, имеющей доступ к файлу или каталогу. Обычно другие будут иметь доступ только для чтения к любым файлам каталогов, но это можно изменить, и мы рассмотрим это позже.
Как изменить права доступа к файлам в Linux с помощью числовых кодов
Хотя использование r,w или x легче запомнить для прав доступа к файлам в Linux, многие люди вместо этого используют серию числовых кодов с chmod. Вы передаете команде chmod трехзначное число, и каждая цифра относится к другой группе в следующем порядке: пользователь, группа, другие. Так, например, chmod 777 дает всем трем типам полные разрешения на чтение, запись и выполнение, в то время как chmod 740 дает пользователю полные разрешения, группе разрешения на чтение, а другим — нет разрешений на все.
В таблице ниже показано, что означает каждое число.
Число | Разрешения |
---|---|
0 | Нет td> |
1 | Выполнить |
2 | Записать | tr>
3 | Выполнение и запись |
4 | Чтение |
5 | Чтение и выполнение |
6 | Чтение и запись |
7 | Все: чтение, запись и выполнение |
С помощью этих основных способов использования команды chmod вы получаете полный контроль над правами доступа к файлам и каталогам.В chmod можно добавить множество различных аргументов, которые позволяют работать с разными подходами.
Например, стоит изучить использование = вместо + и –, поскольку вместо включения и выключения разрешений вы можете определить разрешения непосредственно для некоторых или всех пользователей. Изучая и изучая chmod, не забывайте практиковаться на тестовых файлах и каталогах, поскольку случайное удаление всех разрешений для файла, от которого вы зависите, может вызвать разочарование.
Linux — это клон UNIX, многопользовательской операционной системы, доступ к которой может осуществляться одновременно многими пользователями. Linux также можно использовать на мейнфреймах и серверах без каких-либо модификаций. Но это вызывает проблемы с безопасностью, поскольку нежелательный или злонамеренный пользователь может повредить, изменить или удалить важные данные. Для эффективной безопасности Linux разделяет авторизацию на 2 уровня.
В этом руководстве по файловым командам Linux вы узнаете-
Концепция прав доступа и владения файлами в Linux имеет решающее значение в Linux. Здесь мы объясним разрешения и права собственности в Linux и обсудим их оба. Начнем с права собственности.
Нажмите здесь, если видео недоступно
Владение файлами Linux
Каждому файлу и каталогу в вашей системе Unix/Linux назначается 3 типа владельцев, указанных ниже.
Пользователь является владельцем файла. По умолчанию тот, кто создал файл, становится его владельцем. Поэтому пользователя также иногда называют владельцем.
Группа
Группа пользователей может содержать несколько пользователей. Все пользователи, принадлежащие к группе, будут иметь одинаковые права доступа группы Linux к файлу. Предположим, у вас есть проект, в котором нескольким людям требуется доступ к файлу. Вместо того, чтобы вручную назначать разрешения каждому пользователю, вы можете добавить всех пользователей в группу и назначить групповое разрешение для файла таким образом, чтобы только члены этой группы и никто другой не мог читать или изменять файлы.
Другое
Любой другой пользователь, имеющий доступ к файлу. Этот человек не создал файл и не принадлежит к группе пользователей, которая может владеть файлом. Практически, это означает всех остальных. Следовательно, когда вы устанавливаете разрешение для других, это также называется установкой разрешений для всего мира.
Теперь возникает большой вопрос, как Linux различает эти три типа пользователей, чтобы пользователь «А» не мог повлиять на файл, содержащий важную информацию/данные другого пользователя «Б». Это похоже на то, что вы не хотите, чтобы ваш коллега, работающий на вашем компьютере с Linux, просматривал ваши изображения. Именно здесь устанавливаются разрешения, и они определяют поведение пользователя.
Давайте разберемся с системой разрешений в Linux.
Разрешения для файлов Linux
Каждый файл и каталог в вашей системе UNIX/Linux имеет следующие 3 разрешения, определенные для всех 3 владельцев, описанных выше.
- Чтение. Это разрешение дает вам право открывать и читать файл. Разрешение на чтение каталога дает вам возможность просматривать его содержимое.
- Запись. Разрешение на запись дает вам право изменять содержимое файла. Разрешение на запись в каталог дает вам право добавлять, удалять и переименовывать файлы, хранящиеся в каталоге. Рассмотрим сценарий, в котором вам нужно разрешение на запись в файл, но у вас нет разрешения на запись в каталоге, в котором хранится файл. Вы сможете изменить содержимое файла. Но вы не сможете переименовать, переместить или удалить файл из каталога.
- Выполнить. В Windows исполняемая программа обычно имеет расширение «.exe», и ее можно легко запустить. В Unix/Linux вы не можете запустить программу, если не установлено разрешение на выполнение. Если разрешение на выполнение не установлено, вы все равно сможете просматривать/изменять программный код (при условии, что установлены разрешения на чтение и запись), но не запускать его.
Давайте рассмотрим права доступа к файлам в Linux на примерах:
ls – l на терминале дает
Здесь мы выделили ‘-rw-rw-r–’, и этот странно выглядящий код говорит нам о разрешениях Unix, предоставленных владельцу, группе пользователей и всему миру.
Здесь первый «–» означает, что мы выбрали файл.p>
В противном случае, если бы это был каталог, был бы показан d.
Персонажи довольно легко запомнить.
r = разрешение на чтение
w = разрешение на запись
x = разрешение на выполнение
– = нет разрешения
Давайте посмотрим на это с другой стороны.
Первая часть кода — «rw-». Это говорит о том, что владелец «Дома» может:
- Читать файл
- Напишите или отредактируйте файл
- Он не может выполнить файл, так как бит выполнения установлен на «-».
По умолчанию многие дистрибутивы Linux, такие как Fedora, CentOS, Ubuntu и т. д., добавляют пользователей в группу с тем же именем, что и у пользователя. Таким образом, пользователь «том» добавляется в группу с именем «том».
Вторая часть — «rw-». Это для группы пользователей «Дом» и участников группы может:
- Читать файл
- Напишите или отредактируйте файл
Третья часть предназначена для всего мира, то есть для любого пользователя. Там написано «р-». Это означает, что пользователь может только:
Изменение прав доступа к файлам/каталогам в Linux с помощью команды «chmod»
Скажем, вы не хотите, чтобы ваш коллега видел ваши личные изображения. Этого можно добиться, изменив права доступа к файлам.
Мы можем использовать команду «chmod», что означает «изменить режим». Используя команду, мы можем установить разрешения (чтение, запись, выполнение) для файла/каталога для владельца, группы и всего мира.
Синтаксис:
Есть 2 способа использования команды –
Абсолютный (числовой) режим в Linux
В этом режиме права доступа к файлам представлены не символами, а трехзначным восьмеричным числом.
В таблице ниже приведены числа для всех типов разрешений.
Число | Тип разрешения | Символ |
---|---|---|
0 | Нет разрешения | — |
1 | Выполнить | –x |
2 | Напишите | -w- |
3 | Выполнить + Запись | -wx |
4 | Чтение | r– |
5 | Чтение + выполнение | rx |
6 | Чтение+Запись | rw - |
7 | Чтение + Запись + Выполнение | rwx тд> |