- Права на вложенные фойлы и папки.
- Re: Права на вложенные фойлы и папки.
- Re: Права на вложенные фойлы и папки.
- Re: Права на вложенные фойлы и папки.
- Re: Права на вложенные фойлы и папки.
- Re: Права на вложенные фойлы и папки.
- Re: Права на вложенные фойлы и папки.
- Как установить права на файлы/папки рекурсивно в Linux
- SAMBA: организация доступа к подпапкам через единую точку входа
- Как дать права на папку пользователю Linux
- Права пользователя на папку Linux
- Выводы
- Права доступа к файлам в Linux
- Основные права доступа к файлам в Linux
- Специальные права доступа к файлам в Linux
- Как посмотреть права доступа к файлам в Linux
- Как изменить права файла в Linux
- Выводы
Права на вложенные фойлы и папки.
Есть папка и есть в ней другие папки и разные файлы. Как графически проставить им все одинаковые права? Наутилус почему-то не распространяет права на вложенные файлы и папки.
Re: Права на вложенные фойлы и папки.
Графически — фиг его знает. А так:
chmod -R 777 /home/user/folder/*
Чтобы установить права доступа только на директории, исключая содержащиеся в них файлы, используй:
find /home/user/folder/ -type d -exec chmod 777 <> ;
Аналогично для файлов:
find /home/user/folder/ -type f -exec chmod 666 <> ;
Re: Права на вложенные фойлы и папки.
>chmod -R 777 /home/user/folder/*
А чтобы от рута раскидать определенные папки по пользователям, разным группам разные права и т.д?
Re: Права на вложенные фойлы и папки.
Re: Права на вложенные фойлы и папки.
chown —help
chgrp —help
chown -R vasya:users /home/vasya/porno/
сменит владельца каталога /home/vasya/porno/ и всех подкаталогов и файлов (рекурсивно) на юзера «vasya» и группу «users»
Re: Права на вложенные фойлы и папки.
> Есть папка и есть в ней другие папки и разные файлы. Как графически проставить им все одинаковые права? Наутилус почему-то не распространяет права на вложенные файлы и папки.
Папки, графически. ну спасибо, развеселили.
Re: Права на вложенные фойлы и папки.
блин, он таки приходит. «папка», «графически».
Источник
Как установить права на файлы/папки рекурсивно в Linux
Слово рекурсия подходящее слово для того чтобы охарактеризовать работу этой команды по смене прав. Однако не всем знаком этот термин, полагаю можно не вдаваться в подробности, а просто сказать, что разговор идет о том, как можно сменить права доступа на директорию, а так же все вложенные директории и файлы.
Итак, для смены прав будет использоваться всё та же команда chmod, однако к ней будет добавлен параметр –R, который собственно и указывает на то, что необходимо сменить права не только самой директории, но и на вложенные папки и файлы.
Меняем права на директорию /home/qwerty, а так же на всё содержимое директории.
Цифра 755 содержит три атрибута, которые можно растолковать так:
7 — rwx — читать, писать, выполнять
6 — rw- — читать, писать
5 — r-x — читать, выполнять
4 — r— — читать
3 — -wx — писать, выполнять
2 — -w- — писать
1 — —x — выполнять
0 — — — ничего нельзя делать
Три цифры – три отдельных атрибута, первая – права для пользователя, вторая – права для группы, третья – права для остальных.
Кроме всего этого, можно по аналогии, как и с правами, сменить владельца каталогов и файлов в директории. Для этого достаточно воспользоваться командой chown с параметром –R.
Данная команда сменит владельца директории /home/qwerty, а так же все вложенные директории и файлы.
Источник
SAMBA: организация доступа к подпапкам через единую точку входа
Задача: обеспечить такой общий доступ к файлам с помощью SAMBA, чтобы люди с других машин могли через специальную папку common заходить в только им разрешённые подпапки этой директории folderA и folderB, причём и у файлов и у папок требовалось обеспечить права по маске 770. То есть пользователи одной папки должны были иметь право работать со всеми документами в этой папке, независимо от того, кто их создал. Требовалось также запретить прямой доступ к подпапкам минуя основную с внешних компьютеров.
Таким образом, иерархия папок выгядит следующим образом:
common
— folderA
— folderB
В процессе решения задачи оказалось, что со вложенными папками SAMBA работает по только ей ведомым алгоритмам и всё то, что понаписано в манах, к ним практически не применимо за небольшими исключениями. Тем не менее, постом и молитвою удалось сотворить работоспособный конфиг, в котором выполняются все вышеуказанные требования.
Вот этот конфиг (/etc/samba/smb.conf):
[global]
workgroup = WORKGROUP
security = user
guest ok = no
[common]
path = /var/samba
valid users = @everybody
force group = +everybody
writeable = yes
create mask = 0660
force create mode = 0110
directory mask = 0770
[folderA]
path = /var/samba/folderA
valid users = @users_folderA
force group = +users_folderA
browseable = no
[folderB]
path = /var/samba/folderB
valid users = @users_folderB
force group = +users_folderB
browseable = no
Здесь три группы пользователей: everybody, users_folderA и users_folderB.
Пользователей, допустим, тоже 3: den, sam и alex.
Пользователям den и sam разрешено пользоваться только папкой users_folderA, а пользователю alex — только папкой users_folderB. Путь в эти подпапки лежит через папку common (/var/samba), поэтому все пользователи включены в отдельную группу everybody. Она является своего рода точкой начального входа для уполномоченных пользователей.
Сохраняем конфиг, проверяем его и перезапускаем SAMBA:
# testparm
# service smbd restart
# service nmbd restart
Теперь разберёмся с организацией папок и прав на них.
Права необходимо выставить следующие:
# chown root:everybody /var/samba
# chmod 770 /var/samba
# chown root:users_folderA /var/samba/folderA
# chmod 2770 /var/samba/folderA
# chown root:users_folderB /var/samba/folderB
# chmod 2770 /var/samba/folderB
Тем самым мы запрещаем всем кроме членов уполномоченной группы everybody просматривать и создавать файлы в папке common и всех её подпапках как с внешних узлов, так и из внутреннего шелла.
При этом, как ни странно, права при создании файлов и подпапок во внутрених папках folderA и folderB наследуются из прав, прописанных в секции [common] для родительской папки. Более того, их уже не обязательно явно указывать в подсекциях [folderA] и [folderB] — они просто игнорируются.
Права 2770, выставленные на папки folderA и folderB гарантируют, что все файлы и подпапки, находящиеся в них, будут всегда создаваться с соответствующими подгруппами этих родительских папок, что предоставляет пользователям подгрупп полный доступ к любым документам и подпапкам, даже если они созданы другими пользователями.
Директива force create mode = 0110 необходима для того, чтобы дополнтельно выставить на вновь создаваемые файлы executable бит для владельца и группы, который не выставляется директивой create mask. Директива force create mode действует по принципу ИЛИ с основной маской доступа, и выставляет бит в том случае, если он не выставлен директивой create mask.
Директива force group = +подгруппа запрещает доступ к папкам всем, кто не входит в эту подгруппу. Честно говоря, не понимаю, каким образом пользователь, не входящий в подгруппу, вообще мог бы получить какой-либо доступ к соответствующей подпапке, однако лишняя предосторожность не помешает.
Директива writable = yes в главной секции разрешает запись в основную папку common, но в то же время жёстко задаёт права записи и в подпапки этой папки, которые невозможно переопределить во внутренних секциях. Это странное наследование правил записи разрешает запись в подпапках folderA и folderB только в том случае, если вы пришли к ним через родительскую папку common. Если же попытаться обратиться к подпапкам напрямую, то они окажутся доступными только для чтения и даже уполномоченные пользователи подгрупп ничего не смогут сделать с содержимым этих подпапок.
Директива browsable = no вообще скрывает подпапки из прямой видимости извне. Поэтому, когда вы просматриваете сетевое окружение с других компьютеров, вы увидите только папку common.
Таким образом, задача полностью решена, однако некоторые особенности SAMBA никак не соотносятся с тем, что написано в её man-ах, а то и противоречат им.
Источник
Как дать права на папку пользователю Linux
Система прав доступа к файлам и папкам в Linux организована очень интересно. Права разделяются на три категории: права владельца, права группы файла и права всех остальных. Прочитать подробнее про права в Linux можно в отдельной статье.
Иногда возникает необходимость дать определенному пользователю или программе возможность доступа к папке. На первый взгляд, это может показаться сложным, но решается все довольно просто. В этой статье мы разберем как дать права на папку пользователю Linux.
Права пользователя на папку Linux
Как я уже сказал, права делятся на три категории для владельца, для группы и для всех остальных. Таким образом, мы можем дать пользователю доступ к папке несколькими способами:
- Изменить права для всех — тогда все пользователи получат доступ к нашей папке, в том числе и нужный пользователь. Но, обычно, так никто не делает, потому что это небезопасно и в производственных системах важные данные могут попасть в чужие руки;
- Изменить владельца папки на нашего пользователя — по умолчанию владелец имеет полные права на папку, то есть запись и чтение. Если мы сделаем владельцем нашего пользователя, то он автоматически получит все права, а другие пользователи по-прежнему не смогут получить доступ к папке. Но такой вариант тоже не совсем правильный, потому что, обычно, у папки уже есть владелец и изменив владельца мы уберем у него доступ;
- Добавить к папке группу и добавить в нее пользователя — самый верный путь. Файл или папка может принадлежать определенной группе пользователей, но только одной, и мы можем установить для этой группы отличающиеся от владельца права. Но в группу можно добавить несколько пользователей, поэтому мы никого не оставляем без доступа. По умолчанию, для всех файлов устанавливается группа владельца, но это можно очень просто изменить.
Теперь давайте разберем как это реализуется на практике. Допустим, у нас есть папка /storage, владельцем которой является пользователь /root:
ls -l / | grep storage
У папки такие права, что записывать в нее данные может только root, а другие пользователи могут их только смотреть. Нам надо предоставить к ней доступ на запись и чтение пользователю sergiy. Сейчас у него такого доступа нет:
Давайте создадим группу storage и добавим в нее пользователя sergiy:
sudo groupadd storage
sudo usermod -aG storage sergiy
Смотрим список групп нашего пользователя:
После добавления пользователя в группу нужно перелогиниться, чтобы система увидела это изменение. Затем меняем группу нашей папки на storage:
sudo chgrp storage /storage
Если нужно дать права на папку в Linux еще какому-нибудь пользователю, то достаточно добавить его в эту группу. Посмотрим список пользователей группы:
Теперь наша папка выглядит вот так:
ls -l / | grep storage
Осталось подправить права для группы, нужно дать разрешение на чтение и запись:
chmod g+rw /storage
Затем пользователь sergiy сможет записывать и читать файлы из этой папки, а все остальные пользователи только читать.
Выводы
В этой небольшой статье мы рассмотрели дать права пользователю linux на доступ к папке. Для серверов это может быть достаточно частой задачей, поскольку пользователи — это не только люди, использующие систему, но и программы, выполняемые от имени того или иного пользователя. А это создает еще одно применение для этой системы прав. Если у вас остались вопросы, спрашивайте в комментариях!
Источник
Права доступа к файлам в Linux
В операционной системе Linux есть много отличных функций безопасности, но она из самых важных — это система прав доступа к файлам. Linux, как последователь идеологии ядра Linux в отличие от Windows, изначально проектировался как многопользовательская система, поэтому права доступа к файлам в linux продуманы очень хорошо.
И это очень важно, потому что локальный доступ к файлам для всех программ и всех пользователей позволил бы вирусам без проблем уничтожить систему. Но новым пользователям могут показаться очень сложными новые права на файлы в linux, которые очень сильно отличаются от того, что мы привыкли видеть в Windows. В этой статье мы попытаемся разобраться в том как работают права файлов в linux, а также как их изменять и устанавливать.
Основные права доступа к файлам в Linux
Изначально каждый файл имел три параметра доступа. Вот они:
- Чтение — разрешает получать содержимое файла, но на запись нет. Для каталога позволяет получить список файлов и каталогов, расположенных в нем;
- Запись — разрешает записывать новые данные в файл или изменять существующие, а также позволяет создавать и изменять файлы и каталоги;
- Выполнение — вы не можете выполнить программу, если у нее нет флага выполнения. Этот атрибут устанавливается для всех программ и скриптов, именно с помощью него система может понять, что этот файл нужно запускать как программу.
Но все эти права были бы бессмысленными, если бы применялись сразу для всех пользователей. Поэтому каждый файл имеет три категории пользователей, для которых можно устанавливать различные сочетания прав доступа:
- Владелец — набор прав для владельца файла, пользователя, который его создал или сейчас установлен его владельцем. Обычно владелец имеет все права, чтение, запись и выполнение.
- Группа — любая группа пользователей, существующая в системе и привязанная к файлу. Но это может быть только одна группа и обычно это группа владельца, хотя для файла можно назначить и другую группу.
- Остальные — все пользователи, кроме владельца и пользователей, входящих в группу файла.
Именно с помощью этих наборов полномочий устанавливаются права файлов в linux. Каждый пользователь может получить полный доступ только к файлам, владельцем которых он является или к тем, доступ к которым ему разрешен. Только пользователь Root может работать со всеми файлами независимо от их набора их полномочий.
Но со временем такой системы стало не хватать и было добавлено еще несколько флагов, которые позволяют делать файлы не изменяемыми или же выполнять от имени суперпользователя, их мы рассмотрим ниже:
Специальные права доступа к файлам в Linux
Для того, чтобы позволить обычным пользователям выполнять программы от имени суперпользователя без знания его пароля была придумана такая вещь, как SUID и SGID биты. Рассмотрим эти полномочия подробнее.
- SUID — если этот бит установлен, то при выполнении программы, id пользователя, от которого она запущена заменяется на id владельца файла. Фактически, это позволяет обычным пользователям запускать программы от имени суперпользователя;
- SGID — этот флаг работает аналогичным образом, только разница в том, что пользователь считается членом группы, с которой связан файл, а не групп, к которым он действительно принадлежит. Если SGID флаг установлен на каталог, все файлы, созданные в нем, будут связаны с группой каталога, а не пользователя. Такое поведение используется для организации общих папок;
- Sticky-bit — этот бит тоже используется для создания общих папок. Если он установлен, то пользователи могут только создавать, читать и выполнять файлы, но не могут удалять файлы, принадлежащие другим пользователям.
Теперь давайте рассмотрим как посмотреть и изменить права на файлы в Linux.
Как посмотреть права доступа к файлам в Linux
Конечно, вы можете посмотреть права доступа к файлам в Linux с помощью файлового менеджера. Все они поддерживают эту функцию, но так вы получите неполную информацию. Для максимально подробной информации обо всех флагах, в том числе специальных, нужно использовать команду ls с параметром -l. Все файлы из каталога будут выведены в виде списка, и там будут показаны все атрибуты и биты.
Чтобы узнать права на файл linux выполните такую команду, в папке где находится этот файл:
За права файлов в linux тут отвечают черточки. Первая это тип файла, который рассмотрен в отдельной статье. Дальше же идут группы прав сначала для владельца, для группы и для всех остальных. Всего девять черточек на права и одна на тип.
Рассмотрим подробнее, что значат условные значения флагов прав:
- — — нет прав, совсем;
- —x — разрешено только выполнение файла, как программы но не изменение и не чтение;
- -w- — разрешена только запись и изменение файла;
- -wx — разрешено изменение и выполнение, но в случае с каталогом, вы не можете посмотреть его содержимое;
- r— — права только на чтение;
- r-x — только чтение и выполнение, без права на запись;
- rw- — права на чтение и запись, но без выполнения;
- rwx — все права;
- —s — установлен SUID или SGID бит, первый отображается в поле для владельца, второй для группы;
- —t — установлен sticky-bit, а значит пользователи не могут удалить этот файл.
В нашем примере, файл test1 имеет типичные разрешения для программ, владелец может все, группа только чтение и выполнение, а все остальные — только выполнение. Для test2 дополнительно установлен флаг SUID и SGID. А для папки test3 установлен Sticky-bit. Файл test4 доступный всем. Теперь вы знаете как посмотреть права на файл linux.
Как изменить права файла в Linux
Чтобы изменить права на файл в linux вы можете использовать утилиту chmod. Она позволяет менять все флаги, включая специальные. Рассмотрим ее синтаксис:
$ chmod опции категория действие флаг файл
Опции сейчас нас интересовать не будут, разве что только одна. С помощью опции -R вы можете заставить программу применять изменения ко всем файлам и каталогам рекурсивно.
Категория указывает для какой группы пользователей нужно применять права, как вы помните доступно только три категории:
- u — владелец файла;
- g — группа файла;
- o — другие пользователи.
Действие может быть одно из двух, либо добавить — знак «+», либо убрать — знак — «-«. Что касается самих прав доступа, то они аналогичны выводу утилиты ls: r — чтение, w — запись, x — выполнение, s — suid/sgid, в зависимости от категории, для которой вы его устанавливаете, t — устанавливает sticky-bit. Например, всем пользователям полный доступ к файлу test5:
chmod ugo+rwx test5
Или заберем все права у группы и остальных пользователей:
chmod go-rwx test5
Дадим группе право на чтение и выполнение:
chmod g+rx test5
Остальным пользователям только чтение:
Для файла test6 установим SUID:
А для test7 — SGID:
Посмотрим что получилось:
Как видите, изменить права на файл в Linux очень просто. К тому же вы можете изменить основные права с помощью файлового менеджера.
Выводы
Вот и все, теперь вы знаете не только что такое права доступа к файлам в Linux, но и как их посмотреть, и даже как их изменить. Это очень важная тема, в которой действительно стоит разобраться новичкам, чтобы использовать свою систему более полноценно. Если у вас остались вопросы, спрашивайте в комментариях!
На завершение хочу предложить неплохое видео про права доступа в Linux:
Источник