Як встановити папку, щоб все, що в ній було створено, успадковувало дозволи?


18

У мене є папка / data (фактично розділ) для всіх даних, які повинні бути доступні всім користувачам (у цьому випадку члени сім'ї). У всіх нас є індивідуальні облікові записи користувачів, і часто всі вони входять у будь-який час на цьому ПК.

Як я можу налаштувати дозволи, щоб ми всі зберігали доступ до файлів там, незалежно від того, хто їх створює, включаючи нові папки? Якщо я створюю папку, вона отримує мого користувача та групу, тому ніхто більше не може писати на неї.


для відвідувачів. Якщо ви просто хочете успадкувати назву групи chmod -R g+s /parentdir. Примітка: запускайте chmod -R до цього, якщо потрібно
Thamme Gowda

1
Зверніть увагу на вищесказане: -Rпрапор до chmodдуже рідко корисний, оскільки ми рідко хочемо, щоб каталоги (які завжди потребують дозволу на виконання) та звичайні файли (для яких рідко потрібен будь-який дозвіл на виконання) мали однакові дозволи
Zanna,

Відповіді:


17

Інший підхід полягає у використанні списків контролю доступу, набору дозволів на файли.

Перш за все, ми повинні встановити пакет acl Встановити acl :

sudo apt-get install acl

Перед Ubuntu 14.04 розділ повинен бути змонтований з можливістю aclроботи наступного. Він може бути доданий у /etc/fstab, як у

UUID=<XXXX>  /media/shared  ext4  noatime,acl  0  2

або для вже встановленої файлової системи

sudo mount -o remount,acl /media/shared

Далі слід створити нову групу, до якої будуть додані всі користувачі, дозволені отримати доступ до спільного доступу в режимі читання / запису. Я це називаю usershare. Можна було використовувати вже існуючу групу.

sudo addgroup usershare

Тепер ми додаємо користувачів enzotibі steevcдо цієї групи:

sudo gpasswd -a steevc  usershare
sudo gpasswd -a enzotib usershare

(діє на наступному вході).

Потім ми додаємо ACL з rwxдозволами для групи usershareдо всіх файлів, які вже є/media/shared

sudo setfacl -Rm g:usershare:rwX /media/shared

Нарешті ми додаємо ACL за замовчуванням з rwxдозволами для групи usershareдля всіх файлів, створених відтепер всередині/media/shared

sudo setfacl -d -Rm g:usershare:rwX /media/shared

Тепер усі користувачі usershareгрупи мають повні дозволи на всі файли в /media/shared. На дозволи кожного користувача у своїх та інших домашніх каталогах це не впливає.

Я перевірив це рішення і, здається, працює, але пропозиції та виправлення вітаються.

Зауваження : нові файли та каталоги, створені у розглянутому каталозі, матимуть дозвіл на запис для usershareгрупи, але файли, скопійовані або переміщені в папку, зберігатимуть свої початкові дозволи. Якщо користувачеві, наскільки я розумію, потрібен лише доступ для запису до новостворених каталогів, це не проблема. В іншому випадку він повинен змінювати дозволи вручну. Дивіться цю відповідь про те, як подолати це, визначивши umask користувачів 002.


Я не знаю acl дуже добре, чи можете ви протестувати та скопіювати файл із дозволами, такими як rw-r - r--, із вашої домашньої папки у спільну папку та побачити, чи змінилися дозволи на стандартний rwx для usershareгрупи?
організуйте

@arrange: ні, це не працює за призначенням. Збирається вказати у відповіді. Дякую
enzotib

Я додам, що /etc/fstab/ remountstep не обов'язковий, тому що він ext4повинен бути встановлений з aclопцією, активною за замовчуванням.
enzotib

8
  1. Зробіть папку.

    Наприклад:

    mkdir /mnt/family
    

    Якщо вам потрібно змонтувати розділ для них ... якщо ext4 все , що вам потрібно в /etc/fstabIS

    UUID=xxx    /mnt/family ext4    **rw,exec,defaults,auto,async   0   2**
    
  2. Створіть груповий myfam.

    addgroup myfam
    
  3. Додайте деяких користувачів до цієї групи

    adduser papa myfam  
    adduser mom myfam
    
  4. Тепер візьміть і дайте дозвіл.

    Я думаю, слід почати, починаючи з зміни umask.

    Дозволи та файлові системи за замовчуванням у 12.04

    chown -R you.myfam /mnt/family  
    chmod -R g+rwx /mnt/family  
    

    Зараз найголовніше. Цей рядок створює setgidвсе, що ви створюєте під цією папкою, мають ваші користувачі як власник та група myfam. Це дозволило системі перекрити основну групу користувачів.

    chmod -R g+s /mnt/family   
    

3

Найпростіше, що спадає на думку - це додати кожного користувача до групи всіх інших користувачів.

Потім змініть umask кожного користувача з 022 на 002, це можна зробити в /etc/profile.

Редагувати

Перший крок можна замінити наступним: зробити так, щоб усі користувачі належали до usersгрупи в якості основної групи.

Еді2

Як запропонував @James_Henstridge, встановити біт setgid в головному каталозі може бути зручно, так що нові створені файли та каталоги матимуть ту саму групу, незалежно від користувача. Таким чином ви можете уникнути набору usersяк основної групи для користувачів.


Ви можете відредагувати свою відповідь, щоб також запропонувати встановити біт setgid для всіх каталогів, /dataщоб нові файли успадкували право власності на групу.
James Henstridge

edit3 :) Якщо ви скопіюєте файл у /dataпапку, дозволи не успадковуються, тому старі файли з дозволами gw іншими не змінюються. edit4: налаштування usersяк вашої основної групи та umask0002, безумовно, не є гарною ідеєю, оскільки будь-хто з цієї групи зможе змінити будь-який із ваших новостворених файлів.
організуйте

@arrange: стосовно редагування4 я запропонував включити в usersгрупу лише тих користувачів, яким дозволено мати доступ до спільної доступу. Це було питанням зручності, він також міг створити для цього ще одну групу. Що стосується вашої edit3, то вона неправильна, скопійований файл набуває групи папок.
enzotib

@enzotib: щоб повторити свою думку іншими словами: edit4 - якщо usersце моя основна група і в цій групі більше користувачів, то вони можуть змінювати мої файли навіть поза спільним каталогом; edit3 - Я написав дозволи , а не групи папок.
влаштовуйте

@arrange: ваша думка правильна, я просто написав ще одну відповідь, може бути цікаво почути вашу думку.
enzotib

2

Це звучить як робота для ACL. Giles має дуже ретельний відповідь на сайті SE Unix і Linux , які допомогли мені вирішити ту ж саму проблему.


1
Це спрацювало! Я бачив інші відповіді, використовуючи ACL, але це єдиний, який я бачив, який змінює дозволи не лише нових файлів і каталогів, створених у спільному каталозі, але й тих, скопійованих або переміщених до нього.
ダ ン ボ ー

0

Я не розумію, чи всі linux-linux, linux-windows, linux - ???, використовуючи Samba ?, SSH ?, голуби ;; у будь-якому випадку вам потрібно включити інших до Групи зі своїм іменем користувача (вашою групою), і вони отримають ті ж дозволи, що і ви.


Це кілька користувачів на одному ПК. Я впевнений, що повинен бути спосіб отримати дозволи за замовчуванням на щось корисне.
steevc

0

Я зіткнувся з цим питанням під час пошуку відповідей на свою проблему ГРУПОВОГО ВПРОВАДЖЕННЯ. Я прочитав питання, і, здається, я вже реалізую те, що намагається виконати.

Тож я потрудився відповісти на це.

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

У мене на локальному сервері є багатоцільовий сервер, який використовує ubuntu 12.04 LTS Desktop Edition. У мене є мікс-клієнтські машини Linux та Windows.

Ось як я це налаштував:

1.На моєму сервері у мене є облікові записи користувачів з ім'ям adminтаclientone

Обліковий adminзапис - це обліковий запис, створений під час встановлення ubuntu, а clientoneобліковий запис - це обліковий запис, створений за допомогою меню USER ACCOUNTS в ubuntu. Він має лише стандартний дозвіл, відсутність адміністративних привілеїв, і він додається до usersгрупи. Звичайно, ви можете зробити це, використовуючи лише термінал. Додайте більше додаткових облікових записів користувачів для своїх клієнтських машин.

2. Спільний розділ / папка автоматизовано у fstab, використовуючи лише параметр за замовчуванням.

3. Моя мережа знаходиться в середовищі робочих груп, і вона знаходиться в mylanробочій групі.

Усі машини в моєму інтернеті налаштовані на використання mylanробочої групи.

4.В моїй спільній папці з назвою sharedвже є файли в ній. Тому я змінюю власника та групу для нього рекурсивно, використовуючи команду нижче.

 sudo chown -Rv admin:users /shared

5.Я також встановлюю дозвіл папок та файлів на /sharedпапку рекурсивно за допомогою команди

 sudo chmod -Rv 750 /shared

гостьові машини в моїй mylanробочій групі не мають доступу до акцій за допомогою chmod 750

ви можете використовувати

 sudo chmod -Rv 755 /shared

Усі майбутні облікові записи користувачів у usersгрупі мають лише дозвіл на виконання виконання.

6.У моїй клієнтській машині один (windows xp) я налаштовую обліковий запис користувача на ім’я clientone. Те саме ім’я користувача та пароль, як і у створеного на моєму сервері ubuntu. Другий обліковий запис з ім’ям clienttwoтакож створений на сервері ubuntu, і це той самий обліковий запис користувача, який використовується у моїй другій машині (linuxmint 15).

7.У моїй клієнтській машині один при вході за допомогою clientoneоблікового запису я переходжу до запуску команди, а потім введіть

 //192.168.10.254/shared

192.168.10.254- ip-адреса мого сервера ubuntu, /sharedце папка, якою поділяється на моєму сервері ubuntu. На моїй клієнтській машині два (linuxmint 15), я переходжу до меню> Мережа та в діалоговому рядку Location: я набрав:

 smb://192.168.10.254/shared

Якщо вам запропоновано ввести пароль, введіть пароль свого облікового запису користувача. А також ваш пароль, якщо KEYRING увімкнено на ваших Linux-машинах.

Цей працює для мене в моїй власній налаштуваннях мережі. Мій сервер - це багатоцільовий сервер, який виконує функції сервера кальмарів, xbmc і mediatomb сервера та сервера amahi.

Я все ще шукаю способи, як покращити обмін файлами частиною моєї установки. Наведена вище інструкція не є кулезахисним рішенням, ви можете спробувати. Я тестую і пробую річ ACL ”разом із автоматичним монтажем спільних папок. Оскільки вимога щодо спільного використання вашої папки ускладнюється, наведена вище інструкція не гарантуватиме вам успіху.

Додана інформація:

У мене на моєму сервері встановлений Amahi Server, я також використовував його для створення облікових записів користувачів, які хотів отримати доступ до спільних папок. Я також використовував його для створення нових загальних папок.

Коли ви хочете отримати більш складний дозвіл користувачів для різних користувачів, ACL - це саме той, що потрібно використовувати.


0

У мене є відеофайли на моє ім’я, але коли я входжу на ім’я своїх дочок, її обліковий запис не може бачити відеофайли. Отже, те, що я робив, переходив до облікових записів користувачів, розблоковувався (вгорі праворуч), потім змінив її тип облікового запису з "стандартного" на "адміністратор (що таке мій обліковий запис), і тепер усі відеофайли, справді все, відображаються при вході під її акаунт.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.