Главная >> Инструкции >> Общие папки Linux

Общие папки Linux

Если вы администрируете какой-либо сервер, у вас может возникнуть необходимость создать общую папку, к которой будут иметь доступ все пользователи на сервере. Например, необходимо, чтобы они имели возможность создавать в ней файлы и все эти файлы были доступны всем пользователям на сервере.

В этой небольшой статье мы рассмотрим как настраиваются общие папки Linux с помощью стандартной системы полномочий Linux.

Общие папки в Linux

Как вы знаете, в Linux есть своя система полномочий для файлов и папок, в которой можно разрешить чтение, запись и выполнение для пользователя владельца, определённой группы пользователей и всех остальных. Если вы забыли как это работает ознакомьтесь со статьей Права доступа к файлам и Группы пользователей Linux.

Сначала давайте создадим саму папку:

sudo mkdir /var/share

Если надо разрешить доступ к папке всем, то достаточно установить такие права:

sudo chmod ugo+rw -R /var/share

Или:

sudo chmod 766 -R /var/share

Эти две команды аналогичны. Они включают для владельца файла полный доступ к нему, а для группы и всех остальных - только чтение и запись. Опция -R позволяет применить изменения рекурсивно ко всем подпапкам и файлам в этом каталоге. Для того чтобы разрешить вообще всё используйте маску прав 777:

sudo chmod 777 -R /var/share

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

Если же надо чтобы папка была доступна только нескольким пользователям, надо объединить их в группу. Например, в группу project. Если такой группы не существует, создайте её:

sudo groupadd project

Для добавления пользователя в группу используется команда usermod. Например, для пользователей losst и losst1 команды будут выглядеть так:

usermod -aG project losst
usermod -aG project losst1

Затем группу папки надо изменить на project. Для этого можно воспользоваться командой chgrp:

sudo chgrp project -R /var/share

Осталось сделать права для этой папки. Кроме стандартных прав, которые разрешают чтение, запись и выполнение файлов для группы project нам необходимо установить SGID бит. Если этот флаг устанавливается для файла, то он позволяет выполнять этот файл с правами группы файла, но если он устанавливается для папки, то все файлы и папки, создаваемые в ней будут получать ту же группу что и у этой папки. Это как раз то, что нам надо:

sudo chmod ug+rwx -R /var/share
sudo chmod +s -R /var/share

Или:

sudo chmod 2774 /var/share

Маска прав 774 разрешает всё группе и владельцу, и разрешает только чтение всем остальным. Можно запретить им и чтение заменив 4 на 0, получится 770. После этого оба пользователя losst и losst1 смогут создавать файлы в этой папке, а также оба получат доступ к созданным файлам.

Как видите всё очень просто. А если вам надо создать общую папку, доступную по сети посмотрите на статью про настройку NFS или Samba.

4 комментария к “Общие папки Linux”

  1. Здравствуйте, уважаемый. =) В силу специфики работы сижу полностью на бубунте. =) Информацию по настройке черпаю чаще всего у Вас. Сейчас занимаюсь шарой для сетевых пользователей. И, появился вопрос. Нужно ли создавать на файло-сервере пользователя, если он заходит в свою расшаренную папку удалённо? Т.е., не будет ли достаточно указать в информации о разрешениях для папки кто ею владеет? Спасибо!

    Ответить
  2. Здравствуйте, админ.
    Описанный способ работает только наполовину, кмк
    Ок, создали папку с 777. User1 залогинился и создал в ней файл, который теперь принадлежит ему и группе имени его. Дефолтные права для other - read.
    User2 залогинился, и не может поправить в этом файле пару строк, потому что нельзя.
    Что делать?

    Ответить
  3. "Теперь все пользователи смогут не только создавать и читать файлы в этой папке, но и выполнять их." - Неверно. Права выполнения на папку не влияют на права выполнения файлов в этой папке. Для папок это право "на проход".

    Ответить

Оставьте комментарий