Tip: laat een directory delen tussen meerdere gebruikers in Linux

terminal

Vandaag kom ik terug met een andere tip die ik persoonlijk veel gebruik: in staat zijn om een ​​directory gedeeld te hebben tussen verschillende gebruikers op een Linux. Ik heb ze in een situatie gebracht, met mijn vrouw thuis gebruiken we allebei dezelfde pc Arch Linux maar elk met zijn eigen gebruiker. We merkten dus het probleem op met die mappen die we delen zoals muziek of foto's, aangezien elke map zijn eigen bestanden had, die dingen dupliceerden.

Het was toen dat we dachten maak een gedeelde map, maar er is het probleem van machtigingen. Als de map van mij is, ziet ze het niet, als het bestand door mij is gemaakt, verwijdert ze het niet, enzovoort In het begin was de patch dat we elke keer dat we iets bewerkten voor toegang tot die bestanden 777 permissies gaven totdat we de oplossing vonden, Groepsrechten!

Wat zijn groepsrechten?

Dat is het beste, wijs aan die gedeelde map en al zijn inhoud een speciale groep toe met lees- en schrijfrechten, waarmee alle leden van de groep toegang hebben tot genoemde directory. Dit maakt het dan mogelijk dat we door het toevoegen van onze gebruikers aan de genoemde groep al kunnen communiceren in die directory.

En hoe configureer ik het?

Dit is het beste deel en ik vertel u verder hoe ik het met mijn vrouw heb gedaan. Het eerste is om die directory aan te maken, die ik als voorbeeld «gedeelde".

sudo mkdir /home/compartido

Ik creëer het binnen / home en buiten onze accounts, om te voorkomen dat de bovenste mappen last hebben van hun eigen rechten. Nu moeten we de groep maken, die we zullen plaatsen «gedeelde»

sudo groupadd compartidos

En we wijzen deze groep toe aan de map die we eerder hebben gemaakt en we wijzigen ook de rechten, zodat alles wat we erin maken, of het nu mappen of bestanden zijn, ook tot deze groep behoort.

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

We moeten er ook onze gebruikers aan toevoegen. Dan zullen we deze opdracht voor elk moeten herhalen:

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

Tot nu toe hebben we de directory «/ home / shared»Die tot de groep behoort«gedeelde«, Waarmee alle leden-gebruikers van dezelfde toegang zullen kunnen krijgen en alles wat in de directory wordt aangemaakt, zal behoren tot de groep waarvan ieder van ons hen zal kunnen zien.

Nu ontbreekt slechts één laatste stap, die optioneel kan zijn, maar het is om het umask van de gebruikers te wijzigen, om ervoor te zorgen dat elk nieuw bestand dat we maken, kan worden gewijzigd door de andere leden van de groep. Dit heeft gevolgen voor de hele gebruiker, niet alleen voor de directory, dus ze moeten zien of het voor hen werkt of niet. In mijn geval, aangezien alleen mijn vrouw en ik het systeem gebruiken, stoort het ons niet en wijzen we onszelf een umask van 002 toe, wat betekent dat elk aangemaakt bestand begint met 775 permissies.

Het umask bewerken

Om de umask te bewerken, moet u in elke gebruiker het .profile- of .bashrc-bestand bewerken dat zich in het huis van de gebruiker bevindt en de waarde van umask aanpassen met het gewenste nummer. Als de optie er niet is, moeten we deze toevoegen.

U kunt ook het bestand / etc / profile bewerken, zodat de wijziging van invloed is op alle gebruikers

Dus in de console plaatsen we:

sebastian@multivacs ~> vim .profile

En we zullen zoiets als dit zien:

vi-profiel2

Dus we gaan naar de regel met umask, we drukken op de letter i om te kunnen bewerken en we verwijderen de # om de opmerking te verwijderen. We veranderen het nummer in 002. Als de regel niet verschijnt, moeten ze deze toevoegen.

Eenmaal klaar, drukken we op de toets Esc om de bewerkingsmodus te verlaten en dan schrijven we :+q+w. Wat ons ertoe brengt de wijzigingen op te slaan en de Vi te verlaten.

Het zal er zo uitzien:

vi-profiel

En dat is het! Als ze hun gebruikerssessie sluiten en opnieuw openen, worden de wijzigingen doorgevoerd, waarmee de gedeelde map al werkt.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   levendig zei

    Goede tip.

  2.   KZKG ^ Gaara zei

    Genial.

    Enkele jaren geleden merkte ik dat ik dit zelf moest doen, wat ik niet wist was de umask ... ik legde in plaats daarvan een taak in de crontab 🙂

    Bedankt voor de tip

    1.    thalskart zei

      Ja, de crontab is ook goed. Wat heb je gedaan om 775 rechten aan de inhoud toe te wijzen?

  3.   rauwBasis zei

    Goede tip .. ..opgeslagen indien nodig;) ..

  4.   Luis zei

    Ok, je maakt de map / home / shared en wijst de groep "shared" eraan toe maar

    Van welke gebruiker is deze map? Dat wil zeggen, wie is de eigenaar? Ik, de andere persoon of de rootgebruiker wiens account is uitgeschakeld sinds ik sudo gebruik?

    Aan de andere kant heb ik het volgende probleem: de bestanden die ik maak, kunnen niet door de andere persoon worden verwijderd en de bestanden die de andere persoon maakt, kan ik zelf niet verwijderen.

    Wat heb ik verkeerd gedaan?

    1.    thalskart zei

      Wanneer u de map met sudo maakt, moet u de rootgebruiker als eigenaar laten. U kunt dat ook wijzigen met het chown-commando om een ​​andere gebruiker toe te wijzen.

      Controleer aan de andere kant of de bestanden die u maakt dit doen met 775 permissies (wat umask 002 geeft). Als ze die rechten niet hebben, zijn er mogelijk verkeerde instellingen.

      Evenzo is het de moeite waard om te verduidelijken dat de umask van invloed is op elk nieuw bestand dat in de map wordt gemaakt, maar als ze inhoud van een andere plaats verplaatsen of kopiëren, blijven de oorspronkelijke machtigingen behouden en niet de machtigingen die we voor de map hebben ingesteld.

      1.    Luis zei

        Hallo! Je hebt gelijk.

        Ik heb gekeken en het probleem wordt veroorzaakt door het laatste wat u zegt: wanneer u een bestand van een andere locatie naar de gedeelde map verplaatst, blijven de oorspronkelijke machtigingen behouden.

        Is hier een oplossing voor?

        Ik zou parels kunnen gebruiken.

      2.    thalskart zei

        In dat geval zou het het beste zijn om een ​​crontab te plaatsen zoals KZKG ^ Gaara zei, waarin je elke X keer een commando zou kunnen plaatsen om de groep en permissies toe te wijzen aan de inhoud van de map.
        Dat wil zoiets zeggen in de crontab:
        sudo chgrp -R compartidos /home/compartido/*
        chmod -R 775 /home/compartido/*

        Om alles wat nieuw is, gaat u naar de gedeelde groep met machtigingen 775.

      3.    thalskart zei

        Negeer de * aan het einde van elke regel, ik dacht aan iets anders toen ik het plaatste 😛

      4.    Luis zei

        Dank je vriend.

  5.   ernesto zei

    Zeer goede post, maar ik heb liever een aparte partitie, waarin ik alles kan plaatsen wat ik wil delen. Ik heb een royale schijf van 500 GB, waarin ik 100 GB gebruik met Linux en een partitie van 400 GB (ntfs) met alle muziek, foto's, enz ... Op mijn pc zijn we twee gebruikers en elk heeft toegang tot de partitie ntfs en plaatsen en verwijderen wat we willen, wanneer we willen. Als ik niets wil delen, heb ik een aantal dingen in mijn gebruikersnaam. 🙂

    1.    Luis zei

      Nu is het een andere manier om het te doen, maar het probleem is niet waar de bestanden moeten worden neergezet, maar om de machtigingen te configureren en de toegang van de verschillende gebruikers te controleren.

      Je kunt het op een NTFS-partitie hebben, correct, maar je hebt ook fragmentatie, langzamer dan EXT4 en minder beveiliging, hoewel het even geldig is als het goed voor je is om het zo te hebben.

  6.   rainerhg zei

    Oke! Goede tip, maar ik zou nog steeds een taak toevoegen om de permissies te wijzigen naar 775 van de nieuwe bestanden bij elke login, en het probleem op te lossen van bestanden die uit een andere map zijn verplaatst.
    Ook heel erg bedankt voor het delen!

  7.   Joaquin zei

    Interessant, bedankt!

  8.   anoniem zei

    Ik breng iets naar voren over de primaire deelgroep van sommige GNU / Linux-distributies. Sommige distributies creëren de gebruiker met de primaire groepsgebruikers en gebruiken geen primaire groep die gelijk is aan de gebruikersnaam.
    Het verschil is dat bij gebruik van de primaire groepsgebruikers standaard alles wordt gedeeld met de groepsgebruikers waartoe alle gebruikers die in die distro zijn gemaakt, behoren, als ze in plaats daarvan zijn gemaakt met dezelfde groep als de gebruikersnaam, standaard niet niets zal worden gedeeld.

    voorbeeld:
    $ ls -l /home/user/*.txt
    -rw-r - r– 1 carlos carlos 126 25 maart 2012 notes.txt

    $ ls -l /home/user/*.txt
    -rw-r - r– 1 carlos-gebruikers 126 25 maart 2012 notes.txt

    Ik raad het gebruik van de primaire gebruikersgroep af, het is beter om uw eigen primaire groep te maken op het moment dat u de gebruiker maakt.

    #groepadd carlos
    # useradd -g carlos -G lp, wiel, uucp, audio, cdrom, cdrw, usb, lpadmin, plugdev -m -s / bin / bash carlos

    De -g carlos geeft aan om de oudergroep carlos te gebruiken.
    U kunt de primaire groep van een gebruiker wijzigen met # usermod -g, maar dat verandert niet de primaire groep van alle bestanden en mappen die al in / home / carlos staan, u zult ze allemaal moeten wijzigen.

    Voorbeeld: verander primaire groepsgebruikers van gebruiker carlos in primaire groep carlos en verander vervolgens
    alle bestands- en mapmachtigingen van de gebruiker carlos zodat ze van carlos carlos blijven.

    #groepadd carlos
    # usermod -g carlos-gebruikers
    # cd / home
    # chown -R carlos: carlos carlos

    Met betrekking tot delen, kunt u een gebruiker maken met de naam gedeeld met uw gedeelde primaire groep, en zodat er geen toestemmingsproblemen zijn bij het kopiëren, wijzigt u eerst de gebruiker
    met "$ su - shared" dan wordt wat je wilt gekopieerd naar / home / shared, hiermee en de permissies van wat gekopieerd wordt, wordt de gedeelde gebruiker.
    Als er al kopieerbestanden zijn van andere gebruikers en primaire groepen, moet u deze allemaal wijzigen.

    # cd / home
    # chown -R shared: gedeeld gedeeld

    Er is alleen nog iets in het ongewisse, wat ik niet weet om grafisch te kopiëren als de gedeelde gebruiker, dat wil zeggen, zonder $ su - shared te hoeven doen

  9.   anoniem zei

    Het was heel dom om grafisch te kopiëren, hehe, ik gebruik pcmanfm hier in openbox, maar je kunt de bestandsbeheerder gebruiken die je hebt of wilt, het wordt alleen uitgevoerd als een gedeelde gebruiker en niet als een rootgebruiker.

    $ su - gedeeld
    $pcmanfm
    $ dolfijn
    $mc
    etc etc

    1.    thalskart zei

      Ik wilde dat net beantwoorden. Zo niet, dan is de andere een crontab die de eigenaar van de bestanden elke x keer verandert met een
      chown -R compartido:compartido compartido

  10.   Hugo zei

    Het lijkt mij dat het commando "usermod -G thenewgroup elusuario" in feite de gebruikersgroep verandert in "thenewgroup". Om een ​​bestaande gebruiker aan een nieuwe groep toe te voegen, denk ik dat het juiste zou zijn "usermod -aG elnuevogrupo elusuario"

    Een ander ding is dat ik hier zie dat verschillende mensen aanbevelen om een ​​"chmod -R 775" te doen, maar dat heeft niet alleen invloed op mappen, maar ook op alle bestanden (waardoor ze uitvoerbaar worden), wat een onnodig risico met zich meebrengt. Het is beter om iets te doen als «find / home / shared -type d -print0 | xargs -0 chmod 755 "en indien nodig kunt u met de bestanden iets soortgelijks doen, maar met" -type f "en toestemming verlenen 664.

    Ten slotte is een manier om meerdere accounts toegang te geven tot een bestand of map, ongeacht wie de eigenaar of groep is, door het "setfacl" -commando te gebruiken dat in het acl-pakket zit (als ik het me goed herinner). Het gebruik ervan wordt goed uitgelegd op de handleidingpagina.

  11.   unai martin zei

    Ik heb het volgende probleem. Ik heb 4 gebruikers aangemaakt (web1, web2, web3, web4) en ik wil een toegangsgroepsmap maken voor de gebruikers van de webgroep. Wanneer ik het .htaccess-bestand maak, weet ik dat ik een geldige gebruiker moet plaatsen, maar als ik een geldige gebruiker moet plaatsen web1 web2 web3 web4 zodat ze toegang hebben tot de map met hun wachtwoord, wanneer ik probeer de map te openen het vraagt ​​me om de gebruiker en het wachtwoord van elk. Hoe kan ik alleen om de gebruikersnaam en het wachtwoord worden gevraagd van degene die wil invoeren? omdat wordt aangenomen dat de een het wachtwoord van de ander niet kent.

  12.   Gustavo F. Paredes zei

    Hey.

    De 4e terminal zou het "gedeelde" meervoud moeten hebben:

    sudo usermod -G gedeelde sebastian

    sudo usermod -G heeft mijn vrouw gedeeld

    Groeten.

    Gustavo

  13.   Ivan zei

    Proost:

    We migreren van Windows Server naar CentOs 6 en we zijn nog steeds bezig met aanpassen. Mijn vraag: Is er een grafische interface in CentOs om mappen te delen en gebruikers toegang te geven om bestanden te wijzigen, bewerken en / of verwijderen?, Of moet ik alle bovenstaande procedure volgen.

    Bedankt voor de hulp.

    1.    Rafael zei

      Ik installeer ook een centos 6 en ik wil het gebruiken met samba waarmee ik bestanden van linux en windows kan delen, ik weet een beetje, ik gebruik linux niet veel, maar op het werk werd mij gevraagd, hoe kan ik delen mappen maar in grafische modus ??.

  14.   Ricardo zei

    Hoi. Help me alstublieft! ... Het blijkt dat door dit te doen in mijn gebruiker in Linux-geest, ik nu privileges ben kwijtgeraakt. Ik kan zoiets als sudo niet uitvoeren. Ik krijg het volgende bericht "Excuseer, de gebruiker" gebruikersnaam "is niet geautoriseerd om" command_to_run "uit te voeren als root in" gebruikersnaam ""

    Ik denk dat toen ik mijn gebruiker veranderde in de gedeelde groep, ik privileges verwijderde, en hoe kan ik ze nu herstellen ???

  15.   Guillermo zei

    Hé vriend is er een manier om hetzelfde te doen, maar bestanden delen met andere mensen op het internet-LAN

  16.   Fabian zei

    Hiervoor moet u SAMBA als File Server gebruiken. Proost

  17.   David zei

    Hoi. Toen ik bij het commando sudo chmod g + s dirname kwam, vertelt het me dat het bestand of de map niet bestaat. Weet u wat het probleem is?

  18.   Javier Quiroga Almeida zei

    Hoe maak ik een groep aan in een andere groep?

  19.   Rodrigo Hernán Ramos zei

    De lijn:
    sudo usermod -G gedeelde sebastian

    zou moeten zijn:
    sudo usermod -a -G gedeeld sebastian

    de eerste manier verwijdert de rest van de gebruikersgroepen.
    en als je bezweet bent, verlies je je privileges