Возможно использование следующих опций: -H Если установлена опция -R , следовать по ссылкам из командной строки. (Ссылки найденные при обходе дерева каталогов не прослеживаются) -L Если опция -R установлена, следовать по всем символическим ссылкам. -P Если опция -R установлена, не следовать по ссылкам. Поведение по-умолчанию. -R Рекурсия. Изменить UserID и/или GroupID для всего дерева директорий и файлов начиная с указанной. Остерегайтесь совпадения с жесткой ссылкой на родительский каталог "..", при использовании шаблона ".*". -f Не сообщать о неудачной попытке изменить владельци и группу не менять код завершения операции, для сигнализирования о неудаче. -h Если файл является символической ссылкой, изменить UserID и/или GroupID только на саму ссылку. -v Режим вывода сообщений о ходе выполнения программы. Если опция указана более одного раза, chown выведет имя файла вслед за старыми и новыми UserID/GroupID . Опции -H , -L и -P , будут проигнорированы, если опция -R не установлена. Кроме того, все эти опции, переопределяет друг друга, и поведение команды chown , будет определятся опцией которая указана последней. Опции владелец и группа не являются обязательными, но должна быть указана хотя-бы одна из них. Если указывается только группа , перед ней ставится знак : (двоеточие). Параметр владелец файла, может быть представлен как в виде числового выражения UserID, так и в виде символического имени. Если имя пользователя совпадает с его UserID, операнд используется как "имя пользователя". То же самое относится к параметру группа . Принадлежность файла может быть изменена только суперпользователем, по соображениям безопасности. Программа chown возвращает 0 при удачном завершении и >0 в случае возникновения ошибки. СМОТРИТЕ ТАКЖЕ chgrp(1), find(1), chown(2), fts(3), symlink(7)
В Linux все файлы связаны с владельцем и группой. Команда chown используется для изменения права пользователя и группы на определенный файл, каталог или ссылку.
В этой статье мы покажем вам, как использовать команду chown с помощью простых примеров.
Прежде чем перейти к использованию команды chown, давайте начнем с рассмотрения базового синтаксиса.
Выражения команд chown имеют следующий вид:
Chown USER[:GROUP] FILE(s)
Используйте команду ls -l, чтобы узнать, кому принадлежит файл или какая группа.
Чтобы иметь возможность изменять права собственности на файл, пользователь, выполняющий команду chown, должен иметь .
Чтобы изменить владельца файла, используйте команду chown, за которой следует имя пользователя нового владельца и целевой файл.
Chown USER FILE
Например, следующая команда изменит право собственности на файл с именем file1 нового владельца с именем andreyex:
Chown andreyex file1
Чтобы изменить право собственности на несколько файлов или каталогов, укажите их как список, разделенный пробелами. Например, приведенная ниже команда изменяет право собственности на файл с именем file1 и каталогом dir1 на нового владельца с именем andreyex:
Chown andreyex file1 dir1
Вместо имени пользователя можно использовать числовой идентификатор пользователя (UID). Следующий пример изменит право собственности на файл с именем file2 нового владельца с UID 1000:
Chown 1000 file2
Если числовой владелец существует как имя пользователя, то право собственности будет передано на имя пользователя.
Чтобы изменить владельца и группу файла, используйте команду chown, за которой следуют новый владелец и группа, разделенные двоеточием ( без промежуточных пробелов и целевого файла.
Chown USER:GROUP FILE
Следующая команда изменит право собственности на файл с именем file1 на нового владельца с именем andreyex и группой users:
Chown andreyex:users file1
Если вы опустите имя группы после двоеточия (, группа файла будет изменена на указанную группу пользователя.
Chown andreyex: file1
Команда chown может выполнять ту же функцию, что и , т. е. Она может изменять группу файлов.
Чтобы изменить только группу файла, используйте команду chown, за которой следует двоеточие (, и новое имя группы и целевой файл.
Chown:GROUP FILE
Следующая команда изменит владеющую группу файла с именем, file1 чтобы www-data:
Chown:www-data file1
Чтобы рекурсивно работать со всеми файлами и каталогами в каталоге ввода, используйте параметр -r (–recursive):
Chown -R USER:GROUP DIRECTORY
Например, следующая команда изменит права собственности на все файлы и каталоги в подкаталогах /var/www на нового владельца и группу с именем www-data:
Chown www-data: /var/www
К настоящему моменту вы должны хорошо понимать, как использовать команду chown в Linux. Если вы хотите узнать больше о команде chown, посетите страницу chown man.
Продолжаем подробно рассказывать вам о пользователях и группах в Linux и сегодня поговорим о том как пользоваться командами chown и chmod.
Chown — от английского change own. И так, как вы знаете в Linux есть пользователи и группы. У каждого пользователя есть свои файлы, созданные или загруженные. Каждый пользователь находится в собственной группе и может быть объеден c другими пользователями в другие группы.
Для того чтобы узнать кто владелец файла и в какой группе он находится, используйте команду:
Если вы хотите поменять или сменить владельца (пользователя) файла тогда вам поможет команда:
Sudo chown userName text.txt
В данном примере мы присвоили файл text.txt пользователю userName.
Если вы хотите поменять только группу, то можно воспользоваться командой chgrp:
Sudo chgrp groupName text.txt
Для того чтобы не вводить 2 разные команды делают так:
Sudo chown userName:groupName text.txt
Вначале указывается владелец файла, а после группа:
sudo chown имя_владельца : имя_группы text.txtЕсли вам нужно поменять в директории владельца и группу, а там множество файлов и папок тогда используйте ключ -R:
Sudo chown -R userName:groupName /var/www/site/
И так мы знаем, что существуют пользователи, группы. Теперь поговорим о правах доступа. Для чего этого необходимо? Например у вас есть директория в которой находятся личные файлы. Чтобы вы, владелец , например могли редактировать, просматривать файлы, группа , только видеть данные, файлы, а остальные пользователи которые не входят ни в одну из групп и не являются владельцами, вообще не могли ничего сделать, вот поэтому и необходимы права доступа.
Права на файл могут обозначаться цифрами и буквами:
Значения прав в цифрах суммируются:
Для каждого файла и директории назначаются отдельно права для владельца, группы и остальных пользователей.
Владелец | Группа | Остальные | ||
u | g | o | ||
права доступа буквы | права доступа цифры | |||
rwxrwxrwx | 777 | читают, записывают, выполняют все | ||
rwxr-xr-x | 755 | читает, записывает, выполняет | читать и запускать | |
rw-r—r— | 644 | чтение и запись | только четние | |
r——— | 400 | читает только владец | — | — |
Изменять права доступа на файл или директорию командой chmod можно как числами, так буквами.
Для того чтобы изменить права файлу или директорию командой chmod используя цифры, введите команду:
Sudo chmod 755 text.txt
Для директорий необходимо после chmod добавить ключ -R .
Чуть ниже полезная команда, как массово поменять права во всех папках и под папках.
Для папок:
Find /ваш_путь -type d -exec chmod 755 {} \;
Для файлов:
Find /ваш_путь -type f -exec chmod 644 {} \;
Для новичков изменять права доступа буквами будет слегка сложней, но данные знания пригодятся.
Как вы знаете что есть владелец, группа, остальные пользователи, они обозначаются следующим образом:
u | user | Владелец |
g | group |
Каждый файл или папка в 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:
- 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 | запретить удаление всем, кроме владельца |
"-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 для файла
Изменить владельца и права доступа на файлы и папки в Linux и *BSD системах
Представленная ниже информация будет полезная начинающим Linux и *BSD системным администраторам. По большому счету, в любой операционной системе, будь то Linux, Windows или FreeBSD, корректная работа приложений, сервисов и безопасность системы в целом напрямую зависит от прав доступа на файлы и папки. Используя ниже приведённые средства, можно решить практически 90% проблем, возникающих при настройке прав доступа.
Сменить владельца для всех папок и файлов . Для этих целей в Unix используется команда chown . Она обладает рядом параметров:
Таким образом, команда для смены смены владельца (и группы владельцев) для директорий и всех вложенных папок и фалов будет выглядеть так:
sudo chown -R user:group /home/user/dir/
Изменить права доступа на файл или папку в Linux и *BDS системах можно командой chmod . Стоит отметить, что в Unix имеются свои особенности в работе данной команды и принципа разделения прав. Так, кроме владельца файла или папки, можно настроить, какие операции может выполнять этот самый владелец и группа, а также все остальные пользователи. В Unix идёт разделение возможностей следующим способом — владелец, группа владельцев и другие. Также присутствует следующее разделение прав:
Для удобства использования и запоминания, используется следующая кодировка:
Складывая данные цифровые обозначения мы получим набор прав, предоставляемый владельцу/группе/другим. Разберем данную информацию на примере:
Изменять файл имеет право только владелец, группа владельце может читать, остальные — ничего не могут, соответственно команда будет такой:
chmod 640 /media/fileshare/file.txt
Создавать файлы в папке могут все, но видит их только владелец:
chmod 622 /media/fileshare/messages/
Чтобы все могли запускать какую-либо программу, но никто, кроме владельца, не мог её редактировать:
chmod 711 /media/share/exec
Для изменения прав на все вложенные файлы и папки (т.е. рекурсивно) используется опять же ключ «-R».
Выполняя данные операции, стоит понимать — изменять права на файлы и директории могут только администраторы и владелец этих папок и файлов.
Изменение прав только на файлы или только на папки — команда find . При этом файлы обозначаются как file (f), а директории, соответственно — d. Например:
Тематические материалы:Обновлено: 23.12.2020103583Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter