Как сделать общую папку в linux

Обновлено: 04.07.2024

Будучи системным администратором, у вас может быть каталог, к которому вы захотите дать доступ на чтение и запись данных для каждого пользователя на Linux сервере.

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

Создание папки и группы

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

Добавление пользователя в группу

После того, как общая папка Linux и группа создана, нужно добавить в группу существующего пользователя, который будет иметь право на запись в каталог /var/www/reports/:

Флаги и аргументы, использованные в приведенной выше команде

  • -a - добавляет пользователя в дополнительную группу;
  • -G - указывает название группы группы;
  • project - название группы;
  • losst - имя пользователя.

Настройка прав доступа

Теперь нужно настроить права доступа к каталогу. Опция -R в приведенной ниже команде разрешает проведение рекурсивных операций в подкаталоги:

Значение числа 2775 в команде chmod

  • 2 - новые файлы всегда будут получать ту группу, которая стоит у папки, в которой они находятся;
  • 7 - выдает все права (rwx) владельцу папки;
  • 7 - выдает все права (rwx) группе;
  • 5 - выдает право на чтение (r-x) другим пользователям.

Создание пользователя и добавление в группу

Создание подкаталогов для каждого пользователя

Выводы

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

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

Чтобы добавить пользователя "vasya" в группу "www-data", необходимо в терминале ([pre0] -a добавить пользователя в дополнительную группу. Используется только

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

Этоn пост о том, как в Linux добавить пользователя в группу. Мы опишем быстрый способ добавления пользователя в группу при создании пользователя, а также для

Представим ситуацию, на домашнем компьютере установлен Linux. Данным компьютером пользуетесь Вы и Ваша жена. Для этого в системе создано два пользователя, у каждого свои настройки почтовика, свои закладки, свой WM и наконец свои обои. Вроде бы все хорошо и все всех устраивает, но вот есть некий контент, свойственный для десктопа, для которого необходимо организовать общий и главное полный доступ для обоих пользователей. Что тут можно сделать? В голову сразу приходят несколько решений:

1. Установить для общего каталога соответствующий umask;
2. Установить соответствующий default acl;
3. Установить бит SGID.

В этой статье я предложу свой способ решения данной проблемы. Нет, способ не красивый и не изящный, потому, вместе с описанием способа, предлагаю Хабрасообществу обсудить этот вопрос и предложить свои решения для организации общего каталога на Linux десктопе.

Необходимые инструменты

Этих инструментов всего два:
1) fam или gamin — сервис мониторинга файловой системы. Что использовать, выбирать Вам, но я рекомендую gamin, потому как fam сам по себе устарел, да и gamin работает стабильней.
2) fileschanged — маленькая консольная утилита, которая по сути является клиентской программой fam или gamin.

Пример использования

Пусть наш подопытный каталог будет ~/Фото. Все действия будем проводить с ним.
Для начала нам нужно создать скрипт/usr/local/bin/script следующего содержания

Этот скрипт будет изменять права на все новые элементы в каталоге ~/Фото. Для файлов rw-rw-r--, для каталогов rwxrwxr-x. Если используете fam, не забудьте запустить fam daemon

Теперь при помощи fileschanged нужно этот скрипт выполнить.

fileschanged -cCfr -x /usr/local/bin/script ~/Фото &

Вот собственно и все. Теперь fileschsnged будет слушать что говорит fam (gamin) по поводу изменений в каталоге ~/Фото и ко всему новому применять скрипт/usr/local/bin/script.

А как Вы организуете общий каталог?

Написано по мотивам статьи из моего блога

UPD: Еще одно решение подсказал khim. Суть заключается в следующем:
1. Оба пользователя должны быть в разных первичных группах. Так вроде сделано у RedHat. При создании нового пользователя создается одноименная группа.
2. Создаем для обоих пользователей группу family (например).
3. Владельцем общего каталога делаем группу family и устанавливаем права на него 2775.
4. Для gnome, запускаем gconf-editor и в разделе /system/storage/default_options/vfat устанавливаем umask 002. Это значит, что на всех монтируемых устройствах с ФС fat права на файлы будут 664. Как это сделать в kde пока не могу сказать, нет его под рукой.
5. Теперь смело копируем контент в общий каталог. Владельцем этого контента станет группа family (унаследует от каталога), а права останутся 664.
PS. Первый пункт для того, чтобы скопированные файлы с носителя fat в личный каталог были доступны только Вам.
PSS. Все это хорошо, но как быть с CD. Там файлы только для чтнения и umask установить не получиться.

Пожалуй нет ни одного офиса, в котором не применялись бы общие ресурсы локальной сети, будь то папки или принтеры. Крупные и средние компании используют возможности Active Directory, компании поменьше - используют штатные средства ОС Windows или Samba, но на серверах под управлением ОС Linux. Рассмотрим все случаи.

Что такое Samba?

Samba - серверное приложение, реализующее доступ клиентских терминалов к папкам, принтерам и дискам про протоколу SMB/CIFS.


Настройка общих папок

Linux

Установка и настройка Samba-сервер для Ubuntu выполняется следующими этапами.

Обновляем информацию о репозиториях и устанавливаем обновления для существующих пакетов в системе:

apt-get update && apt-get upgrade

Устанавливаем пакет Samba:

apt-get install -y samba samba-client

Создадим резервную копию файла конфигурации:

cp /etc/samba/smb.conf /etc/samba/smb.conf_sample

Создадим директории для файлов, например в каталоге /media:

Важно! По умолчанию, директория /media располагается в корне системы /, для нее редко создается свой раздел. По этой причине возможно переполнение корневого раздела. Во избежание этой неприятной ситуации, рекомендуем монтировать отдельный жесткий диск в /media/samba.

Создаем каталог для всех пользователей:

Изменим права доступа к каталогу:

chmod -R 0755 /media/samba/public

Также следует воспользоваться командой chown для смены владельца и/или группы.

Создаем директорию для ограниченного круга лиц:

С помощью системных инструментов создадим группу пользователей:

Добавляем пользователей Samba:

Созданных пользователей добавляем в группу:

usermod -aG smbgrp user1

Изменим группу, которой принадлежит приватная директория:

chgrp smbgrp /media/samba/private

С помощью инструментов Samba создадим пароль для добавленного пользователя:

smbpasswd -a user1

С помощью текстового редактора, например, nano, редактируем конфигурационный файл samba:

Удаляем все строки из файла. Вставляем следующие:

[global]
workgroup = WORKGROUP
security = user
map to guest = bad user
wins support = no
dns proxy = no
[public]
path = /media/samba/public
guest ok = yes
force user = nobody
browsable = yes
writable = yes
[private]
path = /media/samba/private
valid users = @smbgrp
guest ok = no
browsable = yes
writable = yes

Сохраняем используя сочетание Ctrl + X, затем нажимаем Y и Enter.

Объясним значения строк. конфигурационный файл состоит из трех секций:

global - данная секция отвечает за общие настройки Samba-сервера;

public и private - секции описания настроек директорий общего доступа.

В секции global присутствуют пять параметров:

  • workgroup - рабочая группа. Для упрощения работы пользователей WORKGROUP указывается, как группа по умолчанию. Если в вашей сети имя рабочей группы изменено, то следует изменить это значение и для Samba;
  • security - уровень безопасности сервера. Значение user означает авторизацию по паре логин/пароль;
  • map to guest - параметр определяет способ обработки запросов. Значение bad user означает, что запросы с неправильным паролем будут отклонены, даже если такое имя пользователя существует;
  • wins support - включить или выключить поддержку WINS;
  • dns proxy - возможность проксирования запросов к DNS.

Настройки директорий выполняются в соответствующих секциях:

path - полный путь до директории на жестком диске;

guest ok - возможность доступа к каталогу без пароля (гостевой);

browsable - показывать ли каталог (“шару”) на сервере среди прочих. Если параметр установлен как “no”, то доступ будет возможен по полному пути, например ip-addresshidden_directory;

force user - пользователь от которого ведется работа с каталогом. Для повышения безопасности сервера, обычно используют nobody. Главное, не использовать пользователя root - это небезопасно.

writable - установка значения как “yes” позволяет пользователю выполнять действия над файлами внутри каталога - переименование, добавление, удаление, перемещение в подкаталог и копирование;

valid users - список пользователей у которых есть доступ к каталогу. Если пользователей несколько, их имена указываются через запятую. Если необходим доступ для пользователей принадлежащих группе, перед именем группы устанавливается символ ”at” @ (“собака”).

Важно! Имя директории общего доступа, отображаемое пользователям, равно имени секции в которой оно описано.


Добрый день, сегодня мы рассмотрим как при помощи пакета samba создать общую папку в Linux, которая будет доступна по сети для любого пользователя. А так же чтобы общая папка была доступна на ОС Windows.

Итак, приступим к установке.

Шаг 1. Для начала нам необходимо установить samba, для этого воспользуемся командой: yum install -y samba


Вместе с samba будет установлено несколько дополнительных пакетов.

Шаг 2. Далее нам будет необходимо отредактировать файл конфигурации, для этого воспользуемся текстовым редактором vim:

Первый раздел global содержит следующие параметры

Сделаем бекап нашего дефолтного файла, сделав его копию и добавив к имени .bak, выполним команду: cp smb.conf smb.conf.bak


Создадим каталог который будет использоваться для публичного доступа пользователями

mkdir -p /samba/public


Изменим права для доступа к каталогу на 0755, для этого выполним


Создадим директория доступ к которой будут иметь только определенные пользователи.


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

Далее создадим пользователя sambauser

Присвоим пользователю ранее созданную группу

Просмотрим список групп у пользователя sambauser, для этого выполним


Изменим группу для приватного каталога, для того чтобы пользователи не имеющие данную группу не могли получить доступ к данному каталогу


Для авторизации в системе, по сети нашего пользователя, нам необходимо задать пароль для пользователя.


Откроем снова наш конфигурационный файл и приведем его к виду.

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


Далее проверим что, имя нашего сервера указано в хост файле. В качестве поддомена укажем localhost. Выполним команду vim /etc/hosts и укажем следующую строку.


Сохраним файл host. После чего перезапустим сервер samba. Выполним systemctl restart smb.


Теперь для того, чтобы мы могли подключиться к одной из наших директорий выключим firewalld.

После чего уберем firewalld из автозагрузки выполнив команду

Проверим выключен ли firewalld выполнив


На этом установка Samba завершена! Далее мы рассмотрим как вы можете подключиться к общий папке в ОС Windows.

Читайте также: