Доступ до спільної папки, Ubuntu

Автор | 24.03.2023

Щоб надати доступ до папки в Ubuntu для локальної мережі, потрібно виконати наступні кроки:

  1. Створити папку, до якої потрібно надати доступ:
sudo mkdir /path/to/shared/folder

2. Налаштувати права доступу до папки:

sudo chmod -R 777 /path/to/shared/folder

Цей крок надасть всім користувачам на запис та читання до папки.

  1. Встановити Samba для надання доступу до папки через мережу:
sudo apt-get install samba

4. Відкрити файл конфігурації Samba:

sudo nano /etc/samba/smb.conf

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

[shared]
path = /path/to/shared/folder
read only = no

У цьому прикладі “shared” – це назва розділу, який буде видно на комп’ютерах в мережі. “path” – це шлях до папки, яку потрібно надати доступ. “read only” встановлюється на “no”, щоб дозволити запис до папки.

  1. Зберегти зміни в конфігураційному файлі та перезапустити службу Samba:
sudo service smbd restart

Після цього папка буде доступна для користувачів в локальній мережі за адресою: smb://ip_address/shared, де “ip_address” – це IP-адреса комп’ютера з Ubuntu, який містить папку.

Трошки добавим можливостей в локальні мережі (на відміну від Windows, для цього є декілька інструментів)

Додаємо користувачів з різними правами доступу

Для створення користувачів і надання доступу до папок з різним рівнем доступу в Ubuntu, можна використовувати інструмент командного рядка adduser та налаштування прав доступу до папок з використанням команди chmod.

Для створення користувачів і надання доступу до папок з різним рівнем доступу в Ubuntu, можна використовувати інструмент командного рядка adduser та налаштування прав доступу до папок з використанням команди chmod.

Ось кілька кроків для створення користувачів і налаштування прав доступу до папок:

Створіть нового користувача за допомогою команди adduser і введіть необхідні дані:

sudo adduser username

Створіть нову папку і встановіть права доступу до неї:

sudo mkdir /path/to/folder
sudo chmod 755 /path/to/folder

Надайте власника папки встановленого користувача і групу, до якої він належить:

sudo mkdir /path/to/folder
sudo chmod 755 /path/to/folder

Додайте іншіх користувачів до групи, щоб надати їм доступ до папки:

sudo usermod -aG groupname otherusername

Встановіть права доступу до папки для інших користувачів:

sudo chmod 755 /path/to/folder

Якщо вам потрібно надати різний рівень доступу для різних користувачів, ви можете використовувати команду chmod для налаштування рівня доступу до папок залежно від користувача або групи. Наприклад, для надання повного доступу власникам папки і обмеженого доступу для інших користувачів:

sudo chmod 770 /path/to/folder
sudo chown username:groupname /path/to/folder
sudo chmod 750 /path/to/folder
sudo chown username2:groupname /path/to/folder

Ці команди налаштують права доступу до папки згідно з вказаними потребами. За допомогою цих команд можна створити і налаштувати доступ до папок для різних користувачів з різним рівнем доступу в Ubuntu.


У системі Ubuntu права на файли і папки керуються за допомогою системи прав доступу до файлів (File System Access Control), яка використовується у більшості сучасних операційних систем.

Щоб надати права доступу до папки, потрібно спочатку створити користувача, який буде мати доступ до цієї папки. Наприклад, створимо користувача з ім’ям user1 командою:

sudo adduser user1

Далі створимо папку, до якої будемо надавати доступ:

sudo mkdir /var/www/mypage

Для надання прав доступу до цієї папки можна використовувати команду chmod. Приклади команд для надання різних прав доступу:

  • Для надання прав на читання і запис користувачеві user1, виконайте:
sudo chmod u+rw /var/www/mypage

Для надання прав на читання, запис та виконання всім користувачам в системі, виконайте:

sudo chmod a+rwx /var/www/mypage
  • Цей спосіб не є безпечним, оскільки дає доступ до папки всім користувачам в системі.
  • Для надання прав на читання, запис і виконання користувачам, які належать до групи www-data, виконайте:
sudo chown -R user1:www-data /var/www/mypage
sudo chmod -R g+rw /var/www/mypage

  • У цьому прикладі ми спочатку надаємо власника папки user1, а групу www-data. Потім ми надаємо права на читання та запис користувачам, які належать до групи www-data.

Для перевірки прав доступу до папки можна використовувати команду ls -l, яка виведе детальну інформацію про файли та папки в поточному каталозі:

ls -l /var/www/mypage

Ця команда виведе список файлів та папок у папці /var/www/mypage, разом з інформацією про власника, групу, права доступу та іншу інформацію.




Cтворити групу “local folders access”, створити 3 користувача та ще одного з правом тільки читання з папки, створити папку в корені диску D, до якої надати доступ

Для створення групи та користувачів на Ubuntu можна використати команди groupadd та useradd. Наприклад, для створення групи “local folders access”, відкрийте термінал та введіть:

sudo groupadd local_folders_access

Для створення користувачів можна використати команду useradd. Наприклад, для створення 3 користувачів з іменами user1, user2, та user3, введіть таку команду:

sudo useradd -m -G local_folders_access user1
sudo useradd -m -G local_folders_access user2
sudo useradd -m -G local_folders_access user3
Ключ -m створює домашню директорію для користувача, а -G додає користувача до групи.

Для створення користувача з правом тільки читання з папки, використайте команду useradd з ключем -s для вказання шелу та ключем -G для додавання користувача до групи з правом читання. Наприклад:
sudo useradd -m -s /bin/false -G local_folders_access read_only_user

У цьому випадку користувач read_only_user має шел /bin/false та належить до групи local_folders_access, яка буде мати право читати вміст папки.

Щоб створити папку в корені диску D та надати доступ групі local_folders_access, введіть таку команду:

sudo mkdir /media/D/folder
sudo chgrp local_folders_access /media/D/folder
sudo chmod 775 /media/D/folder

Ця команда створює папку folder в корені диску D, надає групі local_folders_access власництво папки та права на неї, а також дозволяє читання, запис та виконання папки для користувача та групи. Користувачі, які не належать до групи local_folders_access, матимуть тільки право на читання папки.


зробити зведення користувачів, де вказано хто і до яких ресурсів має дозволи з якими правами, вивести в таблицю

Щоб зробити зведення користувачів з дозволами на ресурси в Ubuntu, можна скористатись командою getfacl, яка дозволяє отримати список дозволів на папки та файли. Ця команда виводить детальну інформацію про дозволи, включаючи користувачів та групи, які мають доступ до файлу або папки, а також їхні права.

Для створення зведення користувачів та їхніх дозволів можна використати такий скрипт:

#!/bin/bash

# Створити групу "local folders access"
sudo groupadd local_folders_access

# Створити 3 користувачів та надати їм дозволи на папку /mnt/diskD/
sudo useradd user1
sudo useradd user2
sudo useradd user3

sudo mkdir -p /mnt/diskD/
sudo chown root:local_folders_access /mnt/diskD/
sudo chmod 2770 /mnt/diskD/

sudo setfacl -m u:user1:rwx,g:local_folders_access:rwx /mnt/diskD/
sudo setfacl -m u:user2:rwx,g:local_folders_access:rw /mnt/diskD/
sudo setfacl -m u:user3:rx,g:local_folders_access:r /mnt/diskD/

# Створити користувача, який має право на читання папки /mnt/diskD/
sudo useradd read_only_user
sudo setfacl -m u:read_only_user:r,g::r /mnt/diskD/

# Вивести зведення користувачів та їхніх дозволів у вигляді таблиці
getfacl -R /mnt/diskD/ | awk -F ":" '{print $1}' | uniq | sed 's/^.//' | while read -r user; do echo -n "$user"; printf "\t"; getfacl -R /mnt/diskD/ | grep "$user:" | awk -F ":" '{print $3}' | sed 's/(//g' | sed 's/)//g' | sed 's/^[ \t]*//'; done | awk '{ printf("%-20s %-10s %-10s %-10s\n", $1, $2, $3, $4); }'

Опис роботи скрипту:

  1. Створити групу “local folders access” командою sudo groupadd local_folders_access.
  2. Створити 3 користувачів командами sudo useradd user1, sudo useradd user2 та sudo useradd user3.
  3. Створити папку /mnt/diskD/ командою sudo mkdir -p /mnt/diskD/.
  4. Надати групі “local folders access” права

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *