Порада. Розмістіть каталог, яким спільно користуються кілька користувачів у Linux

термінал

Сьогодні я повертаюся з черговою підказкою, якою я особисто користуюсь: мати можливість мати спільний каталог між кількома користувачами Linux. Я ставлю їх у ситуацію, коли з дружиною вдома ми обоє використовуємо один і той же ПК Arch Linux але кожен зі своїм користувачем. Отже, ми помітили проблему з тими папками, якими ми ділимось, як музика або фотографії, оскільки кожна з них мала свої файли, що дублювали речі.

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

Що таке групові дозволи?

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

І як мені це налаштувати?

Це найкраща частина, і я продовжую розповідати вам, як я це зробив зі своєю дружиною. Перше, що потрібно, це створити той каталог, який для прикладу я буду називати «спільний".

sudo mkdir /home/compartido

Я створюю його всередині / вдома та поза нашими акаунтами, щоб уникнути того, щоб верхні каталоги турбувались своїми дозволами. Тепер ми повинні створити групу, яку ми поставимо «поділився»

sudo groupadd compartidos

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

sudo chgrp -R compartidos /home/compartido
sudo chmod g+s dirname

Крім того, ми повинні додати до нього своїх користувачів. Тоді нам доведеться повторити цю команду для кожного:

sudo usermod -G compartido sebastian
sudo usermod -G compartido mimujer

Поки що у нас є каталог «/ додому / спільно»Який належить до групи«поділився«, З тим, до чого зможуть отримати доступ усі користувачі-члени одного і того ж, що все створене в каталозі, буде належати до групи з тим, що будь-хто з нас зможе їх бачити.

Тепер нам потрібен лише останній крок, який може бути необов’язковим, але це зміна umask користувачів, щоб гарантувати, що кожен новий файл, який ми створюємо, може бути змінений іншими членами групи. Це позначається на всьому користувачі, а не тільки на каталозі, тому вони повинні перевірити, працює він для них чи ні. У моєму випадку, оскільки тільки ми з дружиною використовуємо систему, це нас не турбує, і ми призначаємо umask 002, що означає, що кожен створений файл починається з 775 дозволів.

Редагування umask

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

Ви також можете відредагувати файл / etc / profile, щоб зміни вплинули на всіх користувачів

Отже, в консолі ми помістили:

sebastian@multivacs ~> vim .profile

І ми побачимо приблизно таке:

vi-профіль2

Отже, ми переходимо до рядка, де написано umask, натискаємо лист i щоб мати можливість редагувати, а ми видаляємо #, щоб видалити коментар. Ми змінюємо номер на 002. Якщо рядок не з’являється, вони повинні його додати.

Після закінчення ми натискаємо клавішу Esc щоб вийти з режиму редагування, а потім ми пишемо :+q+w. Що змушує нас зберігати зміни та виходити з Vi.

Це буде виглядати так:

vi-профіль

І все! Якщо вони закриють свій сеанс користувача і знову його відкриють, будуть внесені зміни, з якими спільний каталог вже буде працювати.


28 коментарі, залиште свій

Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.

  1.   елав - сказав він

    Чудова порада.

  2.   KZKG ^ Гаара - сказав він

    Геніальний.

    Кілька років тому я побачив необхідність зробити це сам, чого я не знав, це umask ... Натомість я поставив завдання в crontab 🙂

    Дякую за підказку

    1.    тальскарт - сказав він

      Так, кронтаб теж хороший. Що ви поставили, щоб призначити вмісту 775 дозволів?

  3.   rawBasic - сказав він

    Чудова порада .. ..збережена при необхідності;) ..

  4.   Луїс - сказав він

    Гаразд, ви створюєте папку / home / shared і присвоюєте їй групу "спільного доступу", але

    До якого користувача належить ця папка? Іншими словами, хто є власником? Я, інша особа або користувач root, чий обліковий запис вимкнено, оскільки я використовую sudo?

    З іншого боку, я виявляю таку проблему: файли, які я створюю, не можуть бути видалені іншою особою, а файли, які створює інша людина, я не можу видалити.

    Що я зробив неправильно?

    1.    тальскарт - сказав він

      Створюючи папку з sudo, вам слід залишити root як власника. Ви також можете змінити це за допомогою команди chown, щоб призначити іншого користувача.

      З іншого боку, переконайтеся, що створені вами файли роблять це з дозволами 775 (що дає umask 002). Якщо вони не мають цих дозволів, можливо, неправильна конфігурація.

      Так само варто пояснити, що umask впливає на кожен новий файл, створений у каталозі, але якщо вони переміщують або копіюють вміст з іншого місця, зберігаються оригінальні дозволи, а не ті, які ми встановили для каталогу.

      1.    Луїс - сказав він

        Гей! Ти маєш рацію.

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

        Чи є це рішення?

        Я міг би використовувати перли.

      2.    тальскарт - сказав він

        У такому випадку найкращим було б поставити crontab, як сказав KZKG ^ Гаара, в якому ви могли б кожного разу X ставити команду для присвоєння групи та дозволів вмісту папки.
        Тобто сказати щось подібне в crontab:
        sudo chgrp -R compartidos /home/compartido/*
        chmod -R 775 /home/compartido/*

        Щоб отримати все нове, перейдіть до спільної групи з дозволами 775.

      3.    тальскарт - сказав він

        Ігноруйте * у кінці кожного рядка, я думав про щось інше, коли ставлю 😛

      4.    Луїс - сказав він

        Дякую, друже.

  5.   ернвесто - сказав він

    Дуже хороший пост, але я волію мати окремий розділ, в який я можу помістити все, чим хочу поділитися. У мене є щедрий 500 Гб диск, на якому я використовую 100 Гб з Linux і 400 Гб розділу (ntfs), в якому є вся музика, фотографії тощо ... На моєму ПК ми двоє користувачів, і кожен може отримати доступ до розділу ntfs і покласти і видалити те, що ми хочемо, коли ми хочемо. Якщо я не хочу нічим ділитися, у мене є кілька речей на моє ім’я користувача. 🙂

    1.    Луїс - сказав він

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

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

  6.   Райнерг - сказав він

    Добре! Хороша порада, але я все одно додав би завдання змінити дозволи на 775 нових файлів при кожному вході, і це вирішило б проблему файлів, переміщених з іншої папки.
    Крім того, велике спасибі за обмін!

  7.   Хоакін - сказав він

    Цікаво, дякую!

  8.   Anonimo - сказав він

    Я піднімаю щось стосовно основної групи спільного використання деяких дистрибутивів gnu / linux. Деякі дистрибутиви створюють користувача з користувачами основної групи, а не використовують первинну групу, рівну імені користувача.
    Різниця полягає в тому, що за допомогою основних користувачів групи за замовчуванням все ділиться з користувачами групи, до яких належатимуть усі користувачі, створені в цьому дистрибутиві, якщо замість цього вони створені з тією ж групою, що і ім’я користувача, за замовчуванням нічого не буде бути спільним.

    Приклад:
    $ ls -l /home/user/*.txt
    -rw-r - r– 1 carlos carlos 126 25 березня 2012 р. notes.txt

    $ ls -l /home/user/*.txt
    -rw-r - r– 1 користувачі carlos 126 25 березня 2012 р. notes.txt

    Я не рекомендую використовувати основну групу користувачів, краще створювати власну первинну групу при створенні користувача.

    #groupadd Карлос
    # useradd -g carlos -G lp, колесо, uucp, аудіо, cdrom, cdrw, usb, lpadmin, plugdev -m -s / bin / bash carlos

    -G carlos вказує на використання батьківської групи carlos.
    Ви можете змінити основну групу користувача за допомогою # usermod -g, але це не змінить первинну групу всіх файлів і папок, які вже є в / home / carlos, вам доведеться змінити їх усі.

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

    #groupadd Карлос
    # usermod -g користувачів Carlos
    # cd / home
    # chown -R carlos: карлос карлос

    Щодо спільного доступу, ви можете створити користувача, якого називають спільним із вашою спільною основною групою, і, щоб при копіюванні не виникало проблем із дозволом, спочатку ви змінюєте користувача
    з "$ su - shared", тоді те, що ви хочете скопіювати в / home / shared, при цьому і дозволи на те, що скопійовано, стануть спільним користувачем.
    Якщо вже є файли для копіювання, що належать іншим користувачам та основним групам, вам доведеться змінити їх усі.

    # cd / home
    # chown -R спільний: спільний спільний

    У підвішеному стані залишилось лише те, що я не знаю, як графічно скопіювати як спільний користувач, тобто без необхідності робити $ su - shared

  9.   Anonimo - сказав він

    Дуже безглуздо було копіювати графічно, хе-хе, я використовую pcmanfm тут у openbox, але ти можеш використовувати файловий менеджер, який ти маєш або хочеш, він виконується лише як спільний користувач, а не як користувач root.

    $ su - ділиться
    $pcmanfm
    $ дельфін
    $ мк
    і так далі і тому подібне

    1.    тальскарт - сказав він

      Я якраз збирався відповісти на це. Якщо ні, інший - це crontab, який кожного x разу змінює власника файлів на
      chown -R compartido:compartido compartido

  10.   Хьюго - сказав він

    Мені здається, що команда "usermod -G thenewgroup elusuario" в основному змінює групу користувачів на "thenewgroup". Щоб додати існуючого користувача до нової групи, я вважаю правильним буде "usermod -aG elnuevogrupo elusuario"

    Інша справа, що я бачу тут, що кілька людей рекомендують робити "chmod -R 775", але це впливає не тільки на каталоги, але й на всі файли (роблячи їх виконуваними), що створює непотрібний ризик. Краще зробити щось на зразок «find / home / shared -type d -print0 | xargs -0 chmod 755 ", і при необхідності з файлами ви можете зробити щось подібне, але за допомогою" -типу f "та надання дозволу 664.

    Нарешті, один із способів зробити так, щоб кілька облікових записів мали доступ до файлу або папки, незалежно від того, хто є власником або групою, - це використання команди "setfacl", яка знаходиться в пакеті acl (якщо я правильно пам'ятаю). Його використання добре пояснено на сторінці посібника.

  11.   Унайський мартін - сказав він

    У мене така проблема. Я створив 4 користувачів (web1, web2, web3, web4), і я хочу створити папку групи доступу для користувачів веб-групи. Коли я створюю файл .htaccess, я знаю, що я повинен поставити require valid-user, але, якщо я поставлю вимагати valid-user web1 web2 web3 web4, щоб вони могли отримати доступ до папки зі своїм паролем, коли я намагаюся отримати доступ до папки він запитує у мене користувача та пароль кожного з них. Як отримати запитання лише про ім’я користувача та пароль того, хто хоче ввести? оскільки передбачається, що один не знає пароль іншого.

  12.   Густаво Ф. Паредес - сказав він

    Здравствуйте.

    Четвертий термінал повинен мати "спільний" множину:

    sudo usermod -G поділився себастьяном

    sudo usermod -G поділився моєю жінкою

    Привіт.

    Густаво

  13.   Іван - сказав він

    Вітаємо:

    Ми переходимо з Windows Server на CentOs 6 і все ще перебуваємо в процесі адаптації. Мій запит: чи є в CentOs графічний інтерфейс для обміну папками та надання користувачам доступу для модифікації, редагування та / або видалення файлів ?, Або мені слід виконати всю вищезазначену процедуру.

    Дякую за допомогу.

    1.    Rafael - сказав він

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

  14.   Рікардо - сказав він

    Привіт. Будь ласка, допоможіть мені! ... Виявляється, роблячи це у мого користувача на увазі Linux, тепер я втратив привілеї. Я не можу запускати нічого подібного до судо. Я отримую таке повідомлення "Вибачте, користувач" ім'я користувача "не має права виконувати" command_to_run "як корінь в" ім'я користувача ""

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

  15.   Білл - сказав він

    Привіт, друже, чи є спосіб зробити те саме, але поділитися файлами з іншими людьми в Інтернет-мережі

  16.   Фабіанський - сказав він

    Для цього ви повинні використовувати SAMBA як файловий сервер. з повагою

  17.   Девід - сказав він

    Привіт. Коли я дійшов до команди sudo chmod g + s dirname, вона повідомляє мені, що файл або каталог не існує. Чи знаєте ви, в чому проблема?

  18.   Хав'єр Кірога Альмейда - сказав він

    Як створити групу в іншій групі?

  19.   Родріго Ернан Рамос - сказав він

    Лінія:
    sudo usermod -G поділився себастьяном

    має бути:
    sudo usermod -a -G поділився Себастьян

    перший спосіб видаляє решту груп користувачів.
    а якщо ви спітнілі, ви втрачаєте свої привілеї