В этом руководстве вы научитесь изменять права доступа в Linux / Unix и устанавливать нового владельца файла/папки через командную строку . Существует 2 базовые команды, которые могут быть использованы для данных целей: chmod и chown .

Перед тем, как вы начнете это руководство, вам понадобится следующее:

  • Доступ к командной строке

Шаг 1 – Как изменить права доступа в Linux через командную строку

chmod – эта команда используется для изменения прав доступа к файлу или папке. Каждый файл имеет типы пользователей, которые могут с ним взаимодействовать:

Команда ls -l , может быть использована для отображения прав доступа и владельца. К примеру, команда ls -l file1.txt отобразит:

  • “-rwxr–rw-“ – эта часть строки показывает права доступа . Здесь 4 главные буквы на которые вам надо обратить внимание: r,w,x,d . d означает, что тип файла – это каталог. В нашем примере, такой буквы нет (она стояла бы первой в строке), здесь вместо нее стоит символ “-“ (который в основном означает “нет”). Буква x означает разрешение на выполнение файла или папки (это разрешение необходимо для входа в папку). Буква w означает разрешение на запись файла или папки (редактирование, удаление и т.д.) И наконец последняя буква r , которая означает чтение . Если у вас есть права на чтение файла, вы можете прочесть содержимое файла, но не сможете предпринять другие действия (к примеру, вы можете прочитать код скрипта, но не сможете выполнить его).
  • 1 – число хард связи. Проще говоря, хард связь это дополнительное имя для существующего файла.
  • user user – это значение показывает владельца файла и его группу.
  • 0 – это значение показывает размер файла.
  • Jan 19 12:59 – отображает дату последнего изменения.
  • file1.txt – предоставляет имя файла или папки.

Хорошо, теперь давайте вернемся к команде chmod . Это команда позволяет нам изменить права доступа к файлу или папке. Мы научим вас, как это сделать просто складывая номера . Каждое из прав доступа имеет свой собственный номер :

  • r (чтение) – 4
  • w (запись) – 2
  • x (выполнение) – 1

К примеру, если мы хотим изменить права доступа к файлу file1.txt на эти:

Мы должны написать следующую команду:

Chmod 746 file1.txt

Каждый номер в этой команде представляет собой права для одного из типов пользователей (владелец, группа и другие). Первый номер 7. Теперь, используя объяснение числовых значений выше, единственный вариант для получения числа 7 – сложение чисел 4, 2 и 1, получаем 4+2+1=7. Проще говоря, это означает ВСЕ права доступа (чтение, запись, выполнение – rwx). Первый номер устанавливает права доступа для владельца файла. Второй номер 4, который означает права доступа -r (чтение), устанавливает права доступа для группы владельца . Третий номер 6, используя тот же способ, что и с первым номером, 4+2=6, дает группе другие, права на чтение (4) и запись (2) файла. Третья часть в команде (file1.txt ) – это имя файла для которого мы изменяем права доступа.

Еще один пример:

Chmod 777 file2.txt

эта команда даст все права для каждого типа пользователей (владелец, группа и другие ).

Вот список самых наиболее распространённых прав доступа для файлов:

Значение Цифровое значение Объяснение
-rw--- 600 Владелец может читать и записывать файл.
-rw-r–r– 644 Владелец может читать и записывать файл, группа и другие могут только читать.
-rw-rw-rw- 666 Владелец, группа и другие могут читать и записывать.
-rwx-- 700 Владелец может читать, записывать и выполнять, группа и другие не имеют никаких прав доступа.
-rwx–x–x 711 Владелец может читать, записывать и выполнять, группа и другие могут только выполнять.
-rwxr-xr-x 755 Владелец может читать, записывать и выполнять, группа и другие могут читать и выполнять.
-rwxrwxrwx 777 Все типы пользователей могут читать, записывать и выполнять.

Наиболее распространенные права доступа для каталогов:

Существуют и другие способы изменения прав доступа в Linux, используя команду chmod . Но нашей персональной рекомендацией станет, изучение одной из этих команд и её использование (в этом случае способ с номерами). Если вы хотите узнать больше о других путях изменения прав доступа, вы можете прочитать об этом .

Шаг 2 – Изменение владельца файла или папки через командную строку

chown – команда используется для смены владельца файла или папки. Самый стандартный синтаксис для этой команды:

Chown [владелец/группа владельца] [имя файла]

К примеру, если у нас есть файл “demo.txt ” и мы хотим изменить владельца на “jerry ” и группу владельца на “clients ”, нам необходима эта команда:

Chown jerry:clients demo.txt

Как вы видите, мы отделили владельца и группу владельца символом “: ” (двоеточие). Если мы хотим поменять только владельца файла, используем этот код:

Chown jerry demo.txt

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

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

Chown:clients demo.txt

В этом случае, группа владельца изменится на clients (владелец останется прежним).

Шаг 3 – Использование дополнительных опций с командами chmod и chown

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

ВАЖНО! Будьте очень осторожны с этой опцией, если вы используете ее неправильно, вы можете изменить права доступа и владельца ВСЕХ файлов в вашей системе, что приведет к ошибкам в работе и трате огромного количества времени на откат изменений.

Другие опции для “chmod” и “chown”:

  • “-f” – тихая или силовая опция. При использовании данной опции скроет большинство сообщений об ошибках.
  • “-v” – делает диагностику каждого файла затронутого командой.

Помощь по команде chown в linux

Для того, чтобы сменить пользователя и/или группу у файла и/или папки в linux применяется команда chown . Как обычно, первым делом заглянем в подсказку операционной системы по этой команде:

Root@server:~# chown --help Usage: chown ... [:] FILE... or: chown ... --reference=RFILE FILE... Change the owner and/or group of each FILE to OWNER and/or GROUP. With --reference, change the owner and group of each FILE to those of RFILE. -c, --changes like verbose but report only when a change is made -f, --silent, --quiet suppress most error messages -v, --verbose output a diagnostic for every file processed --dereference affect the referent of each symbolic link (this is the default), rather than the symbolic link itself -h, --no-dereference affect symbolic links instead of any referenced file (useful only on systems that can change the ownership of a symlink) --from=CURRENT_OWNER:CURRENT_GROUP change the owner and/or group of each file only if its current owner and/or group match those specified here. Either may be omitted, in which case a match is not required for the omitted attribute --no-preserve-root do not treat "/" specially (the default) --preserve-root fail to operate recursively on "/" --reference=RFILE use RFILE"s owner and group rather than specifying OWNER:GROUP values -R, --recursive operate on files and directories recursively The following options modify how a hierarchy is traversed when the -R option is also specified. If more than one is specified, only the final one takes effect. -H if a command line argument is a symbolic link to a directory, traverse it -L traverse every symbolic link to a directory encountered -P do not traverse any symbolic links (default) --help display this help and exit --version output version information and exit Owner is unchanged if missing. Group is unchanged if missing, but changed to login group if implied by a ":" following a symbolic OWNER. OWNER and GROUP may be numeric as well as symbolic. Examples: chown root /u Change the owner of /u to "root". chown root:staff /u Likewise, but also change its group to "staff". chown -hR root /u Change the owner of /u and subfiles to "root". GNU coreutils online help: Full documentation at: or available locally via: info "(coreutils) chown invocation"

Как быстро поменять пользователя файла и/или папки в linux

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

Chown user:group /patch/filename chown -R user:group /patch/foldername

В первой строчке произойдёт смена пользователя на user , группы на group у файла /patch/filename .

Во второй строчке в примере выше использована дополнительная опция -R , которая означает рекурсивную обработку. То есть у папки /patch/foldername произойдёт смена владельца и группы, но этим дело не закончится, все папки и файлы, лежащие в этой директории также будут подвергнуты процессу смены владельца и группы. Рекурсия бывает очень удобна при глобальных изменениях в группой политики в системе.

Остальные опции команды chown не так часто востребованы и используются, поэтому пока не буду с ними разбираться.

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

При создании файла ему тот пользователь, от имени которого он был создан становится его владельцем, а группой устанавливается основная группа владельца. Но владельца файла и группу можно менять, для этого используются команды chown и chgrp. В этой статье будет рассмотрена команда chown linux, а также основные примеры её использования.

1. Синтаксис и опции

Синтаксис chown, как и других подобных команд linux очень прост:

$ chown пользователь опции /путь/к/файлу

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

  • -c, --changes - подробный вывод всех выполняемых изменений;
  • -f, --silent, --quiet - минимум информации, скрыть сообщения об ошибках;
  • --dereference - изменять права для файла к которому ведет символическая ссылка вместо самой ссылки (поведение по умолчанию);
  • -h, --no-dereference - изменять права символических ссылок и не трогать файлы, к которым они ведут;
  • --from - изменять пользователя только для тех файлов, владельцем которых является указанный пользователь и группа;
  • -R, --recursive - рекурсивная обработка всех подкаталогов;
  • -H - если передана символическая ссылка на директорию - перейти по ней;
  • -L - переходить по всем символическим ссылкам на директории;
  • -P - не переходить по символическим ссылкам на директории (по умолчанию).

Утилита имеет ещё несколько опций, но это самые основные и то большинство из них вам не понадобится. А теперь давайте посмотрим как пользоваться chown.

2. Использование chown

Например, у нас есть несколько папок dir и их владелец пользователь sergiy:

Давайте изменим владельца папки dir1 на root:

chown root ./dir1

Если вы хотите поменять сразу владельца и группу каталога или файла запишите их через двоеточие, например, изменим пользователя и группу для каталога dir2 на root:

chown root:root ./dir2

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

chown -R root:root ./dir3

chown --from=root:root www-data:www-data -cR ./

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

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

  • С каждым пользователем связаны некоторые свойства, такие как идентификатор пользователя и домашний каталог. Мы можем добавлять пользователей в группу, чтобы упростить процесс управления пользователями.
  • Группа может иметь ноль или более пользователей. Указанный пользователь может быть связан с «группой по умолчанию». Он также может быть членом других групп в системе.

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

  • Чтение: это разрешение позволяет пользователю читать файлы и в каталогах, оно позволяет пользователю читать каталоги и подкаталоги, хранящиеся в нем.
  • Запись: это разрешение позволяет пользователю изменять и удалять файл. Также он позволяет пользователю изменять его содержимое (создавать, удалять и переименовывать в нем файлы) для каталогов. Если разрешение на выполнение не дано для каталогов, изменения действительно влияют на них.
  • Выполнить: разрешение на запись в файл позволяет выполнить его. Например, если у нас есть файл с именем php.sh, поэтому, если мы не дадим ему разрешение на выполнение, он не запустится.

Типы файлов Permissions:

  • Пользователь: Этот тип разрешения файла влияет на владельца файла.
  • Группа: Этот тип разрешения файла влияет на группу, которой принадлежит файл. Вместо групповых разрешений, пользовательские разрешения будут применяться, если пользователь-владелец находится в этой группе.
  • Другое: эти типы прав доступа к файлам влияют на всех остальных пользователей системы.

Примечание. Для просмотра разрешений мы используем:

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

Синтаксис:

Chown [ВАРИАНТ]… [ВЛАДЕЛЕЦ] [: [ГРУППА]] ФАЙЛ… chown … –reference = RFILE FILE…

Пример: чтобы изменить владельца файла:

Chown owner_name имя_файла

В нашем случае у нас есть файлы следующим образом:

Теперь, если я использую file1.txt в моем случае, для смены владельца я буду использовать следующий синтаксис:

Chown master file1.txt

где мастер - другой пользователь в системе. Предположим, что если вы пользователь с именем user1 и хотите сменить владельца на root (где ваш текущий каталог - user1). используйте «sudo» перед синтаксисом.

Sudo chown root file1.txt

Опции:


Примеры:



adsense2code6

Мои личные заметки arrow_drop_up

Каждый файл или папка в Linux имеют свои права доступа.

Есть 3 типа прав:
чтение(r),запись(w),выполнение(x)

Права определяются для 3-х типов пользователей:
владельца(u), группы(g), всех других (o)

Итак права каждого файла, это 9 бит информации (3 типа прав * 3 типа пользователей), соответственно каждый бит может быть установлен (=1) доступ разрешен, или сброшен(=0) доступ запрещен.

При назначении прав принято использовать восьмеричную(octal) систему счисления.

Текстовое представление прав(10 символов):
- rwxr- - r - -
0123456789

Символ в позиции 0:
"-" - обычный файл, "d" - папка, "l" - ссылка

Символы в позиции 1-3:
"rwx" - права владельца

Символы в позиции 4-6:
"r - -" - права для группы

Символы в позиции 7-9:
"r - -" - права для всех остальных

Таблица для определения прав:

Как видно из таблицы, права легко вычисляются
простым суммированием. 1=выполнение, 2=запись, 4=чтение.
например требуется выполнение(1) и чтение(4), получаем 1+4=5

Пример 644:
- владелец(u) чтение и запись
- группа(g) только чтение
- другие(o) только чтение

Пример 755:
- владелец(u) все права
- группа(g) чтение и выполнение
- другие(o) чтение и выполнение

В языках программирования например таких как C,
к правам добавляют 0 в начале каждого числа, что означает, что число восьмеричное, т.е. пишут 0644 вместо 644. При изменении прав с коммандной строки как правило этого не требуется.

Четырехзначное представление прав(4755), дополнительные права
биты SUID, SGID, sticky:

  • SUID или setuid: изменить "User ID" во время выполнения
  • SGID или setgid: изменить "Group ID" во время выполнения
  • sticky бит: запрещает удаление для всех пользователей кроме владельца. Ранее бит означал "держаться" в памяти после завершения процесса
Таблица. Числовое представление дополнительных прав:

Текстовое представление дополнительных бит:
дополнительные биты обозначаются следующими символами:
"S","s" - SUID, SGID
"T","t" - sticky бит
позиция этих бит, совпадает с позициями (3,6,9) прав выполнения "x"
впри этом, если прав на выполнение нет используется "верхний регистр" т.е. большие символы. Если права на выполнение установлены используются "нижний регистр" т.е. маленькие символы.

примеры:

Установлен SUID:
- r w s - - - - - - установлены биты SUID и выполнение для владельца
- r - S - - - - - - установлен бит SUID, не установлен бит выполнения

Установлен SGID:
- r w x r w s - - - установлены биты SGID и выполнение для группы
- r w x r - S - - - установлен бит SGID, не уст. выполнение для группы

Установлен sticky бит:
- r w x r w x r w t установлены биты sticky и выполнение для других
- r w x r w x r - T установлен sticky бит, но не уст. выполнение для других

отличия действия прав, при установке на файлы и папки:

права файлы папки
чтение чтение содержимого получение списка файлов
запись запись содержимого изменение списка файлов
(создание,удаление,переименование)
выполнение файл можно выполнить пользователь или процесс, может сделать папку "текущей/рабочей"
SUID Установить "User ID" при выполнении Перекрыть идентификатор пользователя при создании файла/папки (использовать идентификатор владельца корневой папки)
SGID Установить "Group ID" при выполнении Перекрыть идентификатор группы при создании файла/папки (использовать идентификатор группы корневой папки)
sticky запретить удаление всем, кроме владельца

команда изменеия прав chmod:
chmod [-R] права файл/папка

"-R" применить права рекурсивно ко всем файлам и подпапкам

Примеры:
chmod -R 755 folder/
chmod 644 file
и т.д.

Есть возможность менять права не целиком, а лишь добавлять или отменять права только определенным группам пользователей
используя символы вместо восьмеричных чисел.
"u" - пользователь/владелец
"g" - группа пользователей
"o" - остальные пользователи
"a" - все группы пользователей

Формат прав [[+-=], ...

Примеры:
chmod -R a+x folder/ выполнение для всех групп рекурсивно
chmod a+rx file чтение и выполнение для всех
chmod u+rx,g-rx file добавить чтение и выполнение для владельца, и
отозвать права для группы
chmod a+r,o= file добавить чтение для всех типов групп и отозвать
все права у всех других пользователей

команда изменения владельца chown:

Chown [-R] владелец:группа файл/папка

Примеры:
chown -R 0:0 folder/ установить владельца/группу = root рекурсивно
chown myuser:mygroup file установить myuser/mygroup для файла



Эта статья также доступна на следующих языках: Тайский

  • Next

    Огромное Вам СПАСИБО за очень полезную информацию в статье. Очень понятно все изложено. Чувствуется, что проделана большая работа по анализу работы магазина eBay

    • Спасибо вам и другим постоянным читателям моего блога. Без вас у меня не было бы достаточной мотивации, чтобы посвящать много времени ведению этого сайта. У меня мозги так устроены: люблю копнуть вглубь, систематизировать разрозненные данные, пробовать то, что раньше до меня никто не делал, либо не смотрел под таким углом зрения. Жаль, что только нашим соотечественникам из-за кризиса в России отнюдь не до шоппинга на eBay. Покупают на Алиэкспрессе из Китая, так как там в разы дешевле товары (часто в ущерб качеству). Но онлайн-аукционы eBay, Amazon, ETSY легко дадут китайцам фору по ассортименту брендовых вещей, винтажных вещей, ручной работы и разных этнических товаров.

      • Next

        В ваших статьях ценно именно ваше личное отношение и анализ темы. Вы этот блог не бросайте, я сюда часто заглядываю. Нас таких много должно быть. Мне на эл. почту пришло недавно предложение о том, что научат торговать на Амазоне и eBay. И я вспомнила про ваши подробные статьи об этих торг. площ. Перечитала все заново и сделала вывод, что курсы- это лохотрон. Сама на eBay еще ничего не покупала. Я не из России , а из Казахстана (г. Алматы). Но нам тоже лишних трат пока не надо. Желаю вам удачи и берегите себя в азиатских краях.

  • Еще приятно, что попытки eBay по руссификации интерфейса для пользователей из России и стран СНГ, начали приносить плоды. Ведь подавляющая часть граждан стран бывшего СССР не сильна познаниями иностранных языков. Английский язык знают не более 5% населения. Среди молодежи — побольше. Поэтому хотя бы интерфейс на русском языке — это большая помощь для онлайн-шоппинга на этой торговой площадке. Ебей не пошел по пути китайского собрата Алиэкспресс, где совершается машинный (очень корявый и непонятный, местами вызывающий смех) перевод описания товаров. Надеюсь, что на более продвинутом этапе развития искусственного интеллекта станет реальностью качественный машинный перевод с любого языка на любой за считанные доли секунды. Пока имеем вот что (профиль одного из продавцов на ебей с русским интерфейсом, но англоязычным описанием):
    https://uploads.disquscdn.com/images/7a52c9a89108b922159a4fad35de0ab0bee0c8804b9731f56d8a1dc659655d60.png