Как установить права доступа на запись в папку и на все подпапки и файлы:
chmod -R 755 /home/vasya смена прав, -R рекурсивно, т.е. изменит и то, что внутри каталога vasya циферки - это три отдельных атрибута: 7 - rwx - читать, писать, выполнять 6 - rw- - читаь, писать 5 - r-x - читать, выполнять 4 - r-- - читать 3 - -wx - писать, выполнять 2 - -w- - писать 1 - --x - выполнять 0 - --- - ничего нельзя делать Первая цифра означает применения прав для пользователя, Вторая - для группы Третья - права для всех остальных Для смены владельца файлов/каталогов используем chown: chown -R vasya:users /home/vasya поменяет владельца и группу каталога vasya и содержимое онного!
Сегодня хочется задеть одну очень скользкую тему: права (и обязанности) на файлы в системах, основанных на Unix.
Как всегда, хочется рассказать интересно и не упустить важные моменты. Но многим это просто не надо. Им нужен очередной stackoverflow с ответами, в которые не надо вдумываться… Вжух-вжух и ты ботнет.
Поэтому вот рецепты (tl;dr), а объяснение будет ниже.
Чтобы сменить владельца файлов в директории и во всех поддиректориях (рекурсивно), выполните:
sudo chown -R user:group /home/user/path/to/directory/
sudo chown -R www-data:www-data /home/user/www/site/upload/ chmod o+r /var/www/index.html chmod -R o+r /var/www/index.html find /var/www/html-site -type f -exec chmod 644 {} \; find /var/www/html-site -type d -exec chmod 755 {} \; sudo su user_name $ sudo chown -R user:group /data/ chown: неверный пользователь: «user:group» Файлы в Unix
Права в Unix
gosha : gosha adm cdrom sudo dip plugdev lpadmin sambashare libvirtd $ grep cdrom /etc/group cdrom:x:24:gosha
drwxr-xr-x 2 root root 4096 май 6 03:24 bin |||||||||| |||||||||+-исполнение для всех остальных - разрешено ||||||||+--запись для всех остальных - НЕ разрешено |||||||+---чтение для всех остальных - разрешено ||||||+----исполнение для группы владельца - разрешено |||||+-----запись для группы владельца - НЕ разрешено ||||+------чтение для группы владельца - разрешено |||+-------исполнение для владельца - разрешено ||+--------запись для владельца - разрешено |+---------чтение для владельца - разрешено +----------тип файла - диретория
Например, чтобы apache смог в какой-то папке сохранять файлы, выполняем:
Чтобы дать права на чтение файла для всех, выполните:
Чтобы сделать это для всей папки и подпапок (рекурсивно):
Чтобы для всех файлов в папке (рекурсивно) выставить права «владелец может читать и менять, остальные — только читать»:
Чтобы для папки и подпапок (рекурсивно) выставить права «владелец может просматривать содержимое и создавать файлы и папки, остальные — только просматривать»:
Чтобы проверить, что у пользователя есть права, самое простое — зайти под ним:
— прочитать файл / создать файл прямо под этим пользователем.
Ну и самое интересное, что я нашёл в популярных вопросах:
— замените user на имя пользователя (не «Иван Иванович Иванов», а «ivanov»), а «:group» можно не указывать.
Начнём с того, что файлы в Unix бывают разные. Идеология «всё есть файл» предполагает, что файлы — не то, чем кажутся.
Так что даже с понятием «файл» не так уж и просто. Зато есть возможность на всех них единообразно раздавать права, пользоваться ими. Например, можно сделать cat на устройство, echo для записи в сеть и т. д.
Во FreeBSD я успешно делал cat на директорию, правда получал не особо читаемую информацию. Но и её можно было использовать для получения нужной информации о файле типа «каталог».
В особо весёлых Unix-ах, например Plan9 можно использовать вместо интерфейса сокетов файлы типа /net/tcp. В общем, как всегда идеология «всё есть что-то» не имеет границ здравого смысла. И это прекрасно!
Здесь мы рассмотрим базовую модель прав в Unix (модель дискреционного управления доступом), без всяких расширений типа атрибутов файлов, эффективных прав и прочих липких битов.
Суть модели прав довольно проста:
Теперь подробнее по первому пункту.
Давайте посмотрим права на папку /bin, например, с помощью команды
ls -l / | grep bin :
Кроме указанного представления полномочий доступа (символьного), существует так же и числовое представление. Для общего понимания, приведу таблицу соответствия числового (двоичного и десятичного) значения прав доступа и буквенного:
В приведенной таблице показано, что право чтения, соответствует значению 4, право записи — 2, право выполнения — 1, отсутствие права — 0, складывая данные показатели, можно представлять и назначать права в числовом виде. Таким образом, вместо
drwxr-xr-x можно написать 755 . Часто можно увидеть именно числовое определение прав доступа — теперь вы понимаете, что это значит.
Часто можно увидеть на файле права 644 — постарайтесь понять, что это значит, чтобы закрепить полученные знания.
|
вторник, 23 января 2018 г.
Права на папку и файлы
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий