Общие папки 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.
Как сделать общую папку в linux, настройка samba
Сегодня я покажу как можно расшарить папки в Ubuntu для домашних сетей, что бы можно было заходить в ваши папки в linux, например с компьютера с Windows.
sudo apt-get update sudo apt-get install samba
После того как samba будет установлена нужно поправить конфиг. Для этого набираем:
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak sudo nano /etc/samba/smb.conf
В файл вставляем следующие строчки:
[global] workgroup = WORKGROUP server string = servername netbios name = SERVERNAME #servername замените на имя вашего хоста log file = /var/log/samba/%m.log max log size = 50 security = user #запрещаем гостевой доступ map to guest = Bad User dns proxy = no # следовать по симлинкам unix extensions = no wide links = yes follow symlinks = yes # utf кодировка dos charset = cp866 unix charset = UTF8 # отключаем принтеры load printers = no show add printer wizard = no printcap name = /dev/null disable spoolss = yes # можно ограничить доступ по адресам/сетям # hosts allow = 127. 192.168.24. # по умолчанию все файлы, начинающиеся с точки будут иметь атрибут "скрытый" hide dot files = yes #добавляем шару #название общей папки [system_trash] #путь до нее path = /mnt/system_trash guest ok = no read only = no browsable = yes writeable = yes
Далее нужно посмотреть что бы имени вашего хоста соответствовал ip адрес этого хоста:
Здесь должна быть строчка вида:
После этого сохраняем файл (в нано комбинация клавиш ctrl+x) и перезапускаем самбу:
sudo /etc/init.d smbd restart sudo /etc/init.d samba restart
Далее нужно добавить пользователя в пользователи samba (пользователь должен существовать в системе). Добавим нового пользователя в систему и самбу:
sudo adduser user sudo smbpasswd -a user
После того как пользователь будет добавлен можно пробовать зайти на нашу шару с виндовой машины. Вводим логин и пароль пользователя. Должна будет открыться наша шара.
Для справки — что бы посмотреть пользователей samba нужно набрать команду:
Что бы удалить пользователя Samba:
Как в Linux сделать общую сетевую папку
В Linux можно легко создать общую сетевую папку, которая будет доступна для всех устройств в сети. Это может быть полезно, если вы хотите разделить файлы между несколькими устройствами или создать централизованное хранилище для вашей семьи или офиса.
Создание общей сетевой папки в Linux может быть достигнуто несколькими способами, но мы рассмотрим наиболее распространенный метод, используя Samba.
Шаг 1: Установите Samba
Первым шагом является установка Samba на вашем Linux-сервере. Samba — это свободная реализация протокола SMB/CIFS, который позволяет общаться между компьютерами в сети.
Вы можете установить Samba, используя менеджер пакетов вашего дистрибутива Linux. Например, если у вас есть Ubuntu, вы можете выполнить следующую команду:
sudo apt-get install samba
Шаг 2: Создайте общую папку
После установки Samba вы можете создать общую папку, которую вы хотите сделать доступной в сети. Для этого создайте новую папку в любом месте на вашем сервере. Например, вы можете создать папку с именем » shared » в домашней директории:
mkdir ~/shared
Шаг 3: Настройте Samba
Теперь, когда у вас есть общая папка, вы должны настроить Samba, чтобы разрешить доступ к этой папке другим устройствам в сети.
Откройте файл конфигурации Samba, который находится в /etc/samba/smb.conf , с помощью любого текстового редактора. Например, вы можете выполнить следующую команду, чтобы открыть этот файл в редакторе Nano:
sudo nano /etc/samba/smb.conf
В файле smb.conf найдите раздел [global] и добавьте следующие строки в конец этого раздела:
workgroup = WORKGROUP
security = user
Замените «WORKGROUP» на имя вашей рабочей группы, если она отличается от значения по умолчанию. Это позволит вашему серверу Samba быть частью рабочей группы и облегчит доступ к общим ресурсам.
Далее, добавьте следующие строки в конец файла smb.conf, чтобы создать новый раздел для общей папки:
[shared]
path = /home//shared
valid users = @users
force group = users
create mask = 0660
directory mask = 0771
read only = no
Замените «/home//shared» на путь к вашей общей папке. Это указывает Samba на местоположение папки, которую вы хотите сделать общей в сети.
Шаг 4: Создайте пользователей Samba
Теперь вам необходимо создать пользователей Samba, которые будут иметь доступ к общей папке. Вы можете использовать существующих пользователей Linux или создать новых пользователей Samba.
Чтобы создать нового пользователя Samba, выполните следующую команду:
sudo smbpasswd -a
Замените на имя пользователя, которое вы хотите создать.
Шаг 5: Перезапустите Samba
После настройки Samba вам нужно перезапустить службу Samba, чтобы внести изменения в силу. Вы можете сделать это, выполните следующую команду:
sudo systemctl restart smbd
Шаг 6: Подключитесь к общей папке
Теперь вы можете подключиться к общей папке на вашем Linux-сервере с другого устройства в сети.
На Windows-компьютере вы можете открыть Проводник и выбрать «Сеть» в левой панели. Вы должны увидеть ваш Linux-сервер в списке устройств. Щелкните правой кнопкой мыши на сервере и выберите «Подключить сетевой диск». Затем выберите букву диска и введите путь к вашей общей папке, например, \\linux-server\shared.
На Linux-компьютере вы можете использовать любой файловый менеджер, чтобы подключиться к общей папке. В Nautilus, выберите «Серверы» в левой панели и введите адрес вашего Linux-сервера, например, smb://linux-server/shared.
В заключение, создание общей сетевой папки в Linux не является сложной задачей. С помощью Samba вы можете легко настроить доступ к общим ресурсам на вашем Linux-сервере для других устройств в сети.