Съвет: Направете директория, споделена между множество потребители в 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.    талскарт каза той

      Да, crontab също е добър. Какво сложихте, за да присвоите 775 разрешения на съдържанието?

  3.   rawBasic каза той

    Страхотен съвет .. .. запазен при нужда;) ..

  4.   Луис каза той

    Добре, вие създавате папката / дома / споделено и му присвоявате групата "споделено", но

    На кой потребител принадлежи тази папка? Тоест кой е собственикът? Аз, другият човек или основният потребител, чийто акаунт е деактивиран, тъй като използвам sudo?

    От друга страна имам следния проблем: Файловете, които създавам, не могат да бъдат изтрити от другия човек, а файловете, които другият човек създава, не мога да изтрия себе си.

    Какво сгреших?

    1.    талскарт каза той

      Когато създавате папката със sudo, трябва да останете с root като собственик. Можете също така да промените това с командата chown, за да зададете друг потребител.

      От друга страна, проверете дали файловете, които създавате, го правят със 775 разрешения (което дава umask 002). Ако те нямат тези разрешения, може да има някои грешни настройки.

      По същия начин си струва да се изясни, че umask засяга всеки нов файл, който е създаден в директорията, но ако те преместят или копират съдържание от друго място, се запазват оригиналните разрешения, а не тези, които сме задали в директорията.

      1.    Луис каза той

        Хей! Прав си.

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

        Има ли решение за това?

        Бих могъл да използвам перли.

      2.    талскарт каза той

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

        За да получите всичко ново, преминете към споделената група с разрешения 775.

      3.    талскарт каза той

        Игнорирайте * в края на всеки ред, мислех за нещо друго, когато го сложих 😛

      4.    Луис каза той

        Благодаря приятел.

  5.   Ернесто каза той

    Много добър пост, но предпочитам да имам отделен дял, в който да мога да сложа всичко, което искам да споделя. Имам щедър 500 GB диск, в който използвам 100 GB с Linux и 400 GB дял (ntfs), в който е цялата музика, снимки и т.н. ... На моя компютър сме двама потребители и всеки може да има достъп до дяла ntfs и поставяме и премахваме това, което искаме, когато искаме. Ако не искам да споделям нищо, имам някои неща в потребителското си име. 🙂

    1.    Луис каза той

      Вече е друг начин да го направите, но проблемът не е къде да поставите файловете, а да конфигурирате разрешенията и да контролирате достъпа на различните потребители.

      Можете да го имате на NTFS дял, правилно, но имате и фрагментация, по-бавна от EXT4 и по-малко сигурност, въпреки че ако е добре за вас да го имате по този начин, той е еднакво валиден.

  6.   Райнерхг каза той

    Добре! Добър съвет, но все пак бих добавил задача за промяна на разрешенията на 775 от новите файлове при всяко влизане и решаване на проблема с файловете, преместени от друга папка.
    Също така, благодаря ви много за споделянето!

  7.   Хоакин каза той

    Интересно, благодаря!

  8.   анонимен каза той

    Вдигам нещо по отношение на основната група за споделяне на някои gnu / linux дистрибуции. Някои дистрибуции създават потребителя с потребители на основната група и не използват основна група, равна на името на потребителя.
    Разликата е, че при използване на потребителите на основната група по подразбиране всичко се споделя с потребителите на групата, към които ще принадлежат всички потребители, създадени в този дистрибутор, ако вместо това те са създадени със същата група като името на потребителя, по подразбиране не нищо ще бъдат споделени.

    Пример:
    $ ls -l /home/user/*.txt
    -rw-r - r– 1 carlos carlos 126 25 март 2012 бележки.txt

    $ ls -l /home/user/*.txt
    -rw-r - r– 1 потребители на carlos 126 25 март 2012 бележки.txt

    Не препоръчвам да използвате потребителите на основната група, по-добре да създадете своя собствена основна група, когато създавате потребителя.

    #groupadd carlos
    # 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.

    #groupadd carlos
    # usermod -g carlos потребители
    # cd / home
    # chown -R carlos: carlos carlos

    Що се отнася до споделянето, можете да създадете потребител, наречен споделен с вашата споделена основна група, и за да няма проблеми с разрешението при копиране, първо променяте потребителя
    с "$ su - shared" след това, което искате, се копира в / home / shared, с това разрешенията на копираното ще станат споделен потребител.
    Ако вече има файлове за копиране, принадлежащи на други потребители и първични групи, трябва да ги промените всички.

    # cd / home
    # chown -R споделено: споделено споделено

    Остава само нещо в неизвестност, което не знам как да направя, за да копирам графично като споделен потребител, тоест без да се налага да правя $ su - споделено

  9.   анонимен каза той

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

    $ su - споделено
    $pcmanfm
    $ делфин
    $mc
    и т.н. и т.н.

    1.    талскарт каза той

      Тъкмо щях да отговоря на това. Ако не, другият е crontab, който променя собственика на файловете всеки x път с a
      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 "и ако е необходимо с файловете можете да направите нещо подобно, но с помощта на" -type f "и даване на разрешение 664.

    И накрая, един от начините да накарате няколко акаунта да имат достъп до файл или папка, независимо кой е собственикът или групата, е чрез командата "setfacl", която е в пакета acl (ако добре си спомням). Използването му е добре обяснено на страницата с ръководството.

  11.   Унай мартин каза той

    Имам следния проблем. Създадох 4 потребители (web1, web2, web3, web4) и искам да създам папка за група за достъп до потребителите на уеб групата. Когато създавам .htaccess файла, знам, че трябва да поставя изискване valid-user, но ако поставя изисквам valid-user web1 web2 web3 web4, за да имат достъп до папката с паролата си, когато се опитвам да вляза в папката, тя ме пита за потребителя и парола на всеки от тях. Как да получа само запитване за потребителско име и парола на този, който иска да влезе? защото се предполага, че единият не знае паролата на другия.

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

    Здравейте.

    Четвъртият терминал трябва да има "споделено" множествено число:

    sudo usermod -G сподели себастиан

    sudo usermod -G сподели mywomen

    Поздрави.

    Gustavo

  13.   Иван каза той

    Наздраве:

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

    Благодаря за помощта.

    1.    Рафаел каза той

      Също така инсталирам centos 6 и искам да го използвам със samba, която ми позволява да споделям файлове от linux и windows, знам малко, не използвам linux много, но на работа ме попитаха как мога да споделя папки но в графичен режим ??.

  14.   Рикардо каза той

    Здравей Моля, помогнете ми! ... Оказва се, че като направя това в моя потребител в съзнанието на Linux, сега загубих привилегии. Не мога да тичам нещо като судо. Получавам следното съобщение "Извинете, потребителят" потребителско име "не е упълномощен да изпълнява" command_to_run "като корен в" потребителско име ""

    Мисля, че когато смених потребителя си в споделената група, отнех привилегии и сега как да ги възстановя ???

  15.   Гилермо каза той

    Ей приятелю, има ли начин да направиш същото, но да споделяш файлове с други хора в интернет локалната мрежа

  16.   Фабиански каза той

    За това трябва да използвате SAMBA като файлов сървър. Наздраве

  17.   David каза той

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

  18.   Хавиер Кирога Алмейда каза той

    Как да създам група в друга група?

  19.   Родриго Ернан Рамос каза той

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

    би трябвало:
    sudo usermod -a -G споделен себастиан

    първият начин премахва останалите групи на потребителя.
    и ако сте изпотени, губите привилегиите си