- Как создать общую директорию для всех пользователей в Linux
- Общая папка в Ubuntu: зачем нужна и как создать
- Устанавливаем сервер Samba
- Установка
- Настройки
- Создаем общую папку Samba, доступную для всех
- Редактируем настройки
- Перезапуск Samba
- Проверка правильности конфигурации Samba
- Защищенная папка Samba, доступная только по паролю
- Общие папки Linux
- Общие папки в Linux
Как создать общую директорию для всех пользователей в Linux
В общих папках – шарах, удобно хранить музыку, фотографии, доступные для каждого пользователя Linux на данном компьютере. Папки с общим доступом (shared) подходят для совместных проектов, обмена данными.
В этой инструкции будет показано, как в Linux создать папку, в которую каждый пользователь будет иметь возможность сохранить данные или прочитать их, т.е. все добавленные пользователи будут иметь права чтения/записи.
Настройка общей папки связана с настройкой надлежащих разрешений доступа. Самым эффективным и надёжным методом является добавление всех пользователей, которые должны иметь права на чтение и на запись, в общую группу, для которой на определённую папку (шару) будут даны права на запись и чтение.
Начнём с создания папки и общей группы, если они ещё не существуют. Это можно сделать следующим образом:
sudo mkdir -p /share sudo groupadd share
Обратите внимание, что создаётся папка share в корневом каталоге. Вы можете выбрать другое имя и другое расположение для общей папки. Также вы можете выбрать другое имя для группы.
Затем добавляем существующих пользователей, кто должен иметь права запуси в директорию /share, в группу share как показано ниже:
sudo usermod -a -G share mial
Используемые в команде выше флаги и аргументы означают:
- -a – добавление пользователя в дополнительную группу.
- -G – указывает имя группы.
- share – имя группы.
- mial – существующий пользователь.
После этого переходим к настройке должных разрешений на директорию, опция -R означает рекурсивные операции в поддиректориях:
sudo chgrp -R share /share sudo chmod -R 2775 /share
Объяснение разрешения 2775 в вышеприведённой команде chmod:
- 2 – включает бит setGID, подразумевая, что вновь созданные подфайлы наследуют ту же группу, что и каталог, и вновь созданные подкаталоги наследуют установленный бит GID родительского каталога.
- 7 – даёт разрешения rwx для владельца.
- 7 – даёт разрешения rwx для группы.
- 5 – даёт разрешения rx для других.
Вы можете создать больше системных пользователей и добавить их в группу директории следующим образом:
sudo useradd -m -c "Aaron Kili" -s/bin/bash -G share aaronkilik sudo useradd -m -c "John Doo" -s/bin/bash -G share john sudo useradd -m -c "Ravi Saive" -s/bin/bash -G share ravi
Теперь вы можете создавать файлы/папки и делиться ими с другими пользователями в той же группе.
Как видим, у обычного пользователя имеются права на редактирование содержимого новой общей папки:
Может потребоваться перезапуск системы (повторный вход пользователя), чтобы сделанные изменения вступили в силу.
Общая папка в Ubuntu: зачем нужна и как создать
Основная цель такой папки — возможность обмена файлами в локальной сети между Linux и Windows-машинами. Специфической привязки к 1С-направлению здесь нет, но такая папка поможет разработчикам хранить файлы конфигураций 1С, а также выгрузки документации по разработке и отчеты для обеспечения оперативного доступа при отсутствии ответственного сотрудника на месте.
В целом Ubuntu поставляется с общей папкой в домашнем каталоге. Она недоступна по умолчанию, но настраивается несколько различных типов обмена файлами в локальной сети компании. Изначальное предназначение папки — инструмент личного обмена файлами.
Главное стартовое условие — компьютеры, между которыми предполагается организовать обмен, должны быть локальной сети.
Устанавливаем сервер Samba
В качестве предпочтительного способа мы выбрали сервер Samba — есть и другие способы, но они требуют наличие Интернета. Samba — проверенное годами решение для ситуаций, когда файлы нужно хранить на сервере Linux.
Samba — Linux, Windows или Mac OS совместимый пакет программного обеспечения, позволяющий обмениваться файлами, документами и принтерами по сети.
Установка
apt install samba samba-common
Для тестирования настроек устанавливаем клиент Samba.
apt install samba-common-bin
Настройки
Скопируем шаблонный файл настроек на случай возврата в исходное состояние.
cp /etc/samba/smb.conf /etc/samba/smb.conf.backup
Удаляем все закомментированные строки из файла настроек.
bash -c ‘grep -v -E «^#|^;» /etc/samba/smb.conf.backup | grep . > /etc/samba/smb.conf’
Создаем отдельного системного пользователя
useradd -m -c «Name_User» -s /bin/bash usersamba
Создаем общую папку Samba, доступную для всех
Настраиваем права доступа к папке:
chown -R nobody:nogroup /home/usersamba/smb/
chmod ug+rwx /home/usersamba/smb/
chmod -R 0775 /home/usersamba/smb/
chown root:»пользователи домена» /home/usersamba/smb/
Редактируем настройки
sudo gedit /etc/samba/smb.conf
Добавляем в конец файла /etc/samba/smb.conf следующие строки: usersamba заменяем на имя пользователя компьютера с Samba.
Папка будет открыта для чтения и записи.
Перезапуск Samba
systemctl restart smbd.service
Проверка правильности конфигурации Samba
Защищенная папка Samba, доступная только по паролю
Для того, чтобы защитить открытую папку паролем, достаточно изменить параметр guest ok на no.
Чтобы скрыть в обзоре сети папку, можно изменить параметр browsable на no.
Общие папки Linux
Если вы администрируете какой-либо сервер, у вас может возникнуть необходимость создать общую папку, к которой будут иметь доступ все пользователи на сервере. Например, необходимо, чтобы они имели возможность создавать в ней файлы и все эти файлы были доступны всем пользователям на сервере.
В этой небольшой статье мы рассмотрим как настраиваются общие папки Linux с помощью стандартной системы полномочий Linux.
Общие папки в Linux
Как вы знаете, в Linux есть своя система полномочий для файлов и папок, в которой можно разрешить чтение, запись и выполнение для пользователя владельца, определённой группы пользователей и всех остальных. Если вы забыли как это работает ознакомьтесь со статьей Права доступа к файлам и Группы пользователей Linux.
Сначала давайте создадим саму папку:
Если надо разрешить доступ к папке всем, то достаточно установить такие права:
sudo chmod ugo+rw -R /var/share
sudo chmod 766 -R /var/share
Эти две команды аналогичны. Они включают для владельца файла полный доступ к нему, а для группы и всех остальных — только чтение и запись. Опция -R позволяет применить изменения рекурсивно ко всем подпапкам и файлам в этом каталоге. Для того чтобы разрешить вообще всё используйте маску прав 777:
sudo chmod 777 -R /var/share
Теперь все пользователи смогут не только создавать и читать файлы в этой папке, но и выполнять их.
Если же надо чтобы папка была доступна только нескольким пользователям, надо объединить их в группу. Например, в группу 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
Маска прав 774 разрешает всё группе и владельцу, и разрешает только чтение всем остальным. Можно запретить им и чтение заменив 4 на 0, получится 770. После этого оба пользователя losst и losst1 смогут создавать файлы в этой папке, а также оба получат доступ к созданным файлам.
Как видите всё очень просто. А если вам надо создать общую папку, доступную по сети посмотрите на статью про настройку NFS или Samba.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.