Sfat: Aveți un director partajat între mai mulți utilizatori din Linux

Terminal

Astăzi mă întorc cu un alt sfat pe care, personal, îl folosesc foarte mult: să poată avea un director partajat între mai mulți utilizatori pe un Linux. Le-am pus într-o situație, cu soția mea acasă folosim amândoi același computer cu Arch Linux dar fiecare cu propriul utilizator. Deci, am observat problema cu acele foldere pe care le împărtășim ca muzică sau fotografii, deoarece fiecare avea fișierele sale, duplicând lucruri.

Atunci ne-am gândit creați un folder partajat, dar aceasta este problema permisiunilor. Dacă dosarul este al meu, nu îl vede, dacă fișierul pe care îl creez, nu îl șterge și așa mai departe. La început, patch-ul a fost că am acordat 777 permisiuni acelor fișiere de fiecare dată când am editat ceva pentru ca celălalt să acceseze până când am găsit soluția, Permisiuni de grup!

Ce sunt permisiunile de grup?

Acesta este cel mai bun, atribuiți acel director partajat și întregul său conținut un grup special cu permisiuni de citire și scriere, cu care toți membrii grupului vor avea acces la directorul menționat. Acest lucru permite, prin urmare, că doar prin adăugarea utilizatorilor noștri la grupul respectiv, putem interacționa deja în acel director.

Și cum îl configurez?

Aceasta este cea mai bună parte și continuăm să vă spun cum am făcut-o cu soția mea. Primul lucru este să creezi acel director, pe care, de exemplu, îl voi numi «partajat“.

sudo mkdir /home/compartido

Îl creez în interiorul / acasă și în afara conturilor noastre, pentru a evita ca directoarele superioare să se deranjeze cu propriile lor permisiuni. Acum trebuie să creăm grupul, pe care îl vom pune «partajat»

sudo groupadd compartidos

Și atribuim acest grup directorului pe care l-am creat anterior și îi schimbăm și permisiunile, astfel încât tot ceea ce creăm în interior, fie că sunt directoare sau fișiere, să aparțină și acestui grup.

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

De asemenea, trebuie să adăugăm utilizatorii noștri la acesta. Apoi, trebuie să repetăm ​​această comandă pentru fiecare:

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

Până acum, avem directorul «/ acasă / partajat»Care aparține grupului«partajat«, Cu ceea ce vor putea accesa toți utilizatorii membri ai aceluiași și tot ce este creat în director, va aparține grupului cu ceea ce oricare dintre noi le va putea vedea.

Acum avem nevoie doar de un ultim pas, care poate fi opțional, dar este să schimbăm masca utilizatorilor, pentru a ne asigura că fiecare fișier nou pe care îl creăm este modificabil de către ceilalți membri ai grupului. Acest lucru afectează întregul utilizator, nu doar directorul, așa că trebuie să vadă dacă funcționează pentru ei sau nu. În cazul meu, deoarece doar eu și soția mea folosim sistemul, nu ne deranjează și atribuim o mască umedă de 002, ceea ce înseamnă că fiecare fișier creat începe cu 775 de permisiuni.

Editarea masca

Pentru a edita masca, fiecare utilizator trebuie să editeze fișierul .profile sau .bashrc care se află în interiorul casei utilizatorului și să modifice valoarea umaskului cu numărul dorit. Dacă opțiunea nu există, trebuie să o adăugăm.

De asemenea, puteți edita fișierul / etc / profile, astfel încât modificarea să afecteze toți utilizatorii

Deci, în consolă punem:

sebastian@multivacs ~> vim .profile

Și vom vedea așa ceva:

vi-profil2

Deci, mergem la linia care spune umask, apăsăm litera i pentru a edita și a elimina # pentru a elimina comentariul. Schimbăm numărul în 002. Dacă linia nu apare, trebuie să o adauge.

Odată terminat, apăsăm tasta Esc pentru a ieși din modul de editare și apoi scriem :+q+w. Ceea ce ne face să salvăm modificările și să ieșim din Vi.

Va arăta ca această imagine:

profil vi

Și gata! Dacă își închid sesiunea de utilizator și o redeschid, vor fi luate modificările, cu care directorul partajat va funcționa deja.


28 comentarii, lasă-le pe ale tale

Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.

  1.   plin de viață el a spus

    Sfat grozav.

  2.   KZKG ^ Gaara el a spus

    Genial.

    Cu câțiva ani în urmă, am văzut nevoia să fac asta singur, ceea ce nu știam era masca ... Am pus o sarcină în crontab ont

    Multumesc pentru sfat

    1.    thalskart el a spus

      Da, și crontabul este bun. Ce ați pus, pentru a atribui 775 permisiuni conținutului?

  3.   rawBasic el a spus

    Sfat excelent .. .. salvat dacă este necesar;) ..

  4.   Luis el a spus

    Ok, creați folderul / acasă / partajat și îi atribuiți grupul „partajat”, dar

    Cărui utilizator îi aparține acest folder? Cu alte cuvinte, cine este proprietarul? Eu, cealaltă persoană sau utilizatorul root al cărui cont este dezactivat de când folosesc sudo?

    Pe de altă parte, găsesc următoarea problemă: Fișierele pe care le creez nu pot fi șterse de cealaltă persoană, iar fișierele create de cealaltă persoană nu le pot șterge.

    Ce am făcut greșit?

    1.    thalskart el a spus

      Când creați folderul cu sudo, ar trebui să rămâneți cu utilizatorul root ca proprietar. De asemenea, puteți modifica acest lucru cu comanda chown pentru a aloca un alt utilizator.

      Pe de altă parte, verificați dacă fișierele pe care le creați fac acest lucru cu 775 de permisiuni (ceea ce dă umask 002). Dacă nu au aceste permisiuni, pot exista anumite setări greșite.

      În mod similar, merită clarificat faptul că masca umask afectează fiecare fișier nou creat în director, dar dacă mută sau copiază conținut dintr-un alt loc, permisiunile originale sunt menținute și nu cele pe care le-am setat în director.

      1.    Luis el a spus

        Hei Ai dreptate.

        Am căutat și problema este cauzată de ultimul lucru pe care îl spuneți: când mutați un fișier dintr-o altă locație în folderul partajat, permisiunile originale sunt menținute.

        Există o soluție la asta?

        Aș putea folosi perle.

      2.    thalskart el a spus

        În acest caz, cel mai bun lucru ar fi să puneți un crontab așa cum a spus KZKG ^ Gaara, în care ați putea pune o comandă pentru a atribui grupul și permisiunile pentru conținutul folderului de fiecare dată.
        Adică așa ceva în crontab:
        sudo chgrp -R compartidos /home/compartido/*
        chmod -R 775 /home/compartido/*

        Pentru tot ce este nou, treceți la grupul Partajat cu permisiunile 775.

      3.    thalskart el a spus

        Ignorați * la sfârșitul fiecărei linii, mă gândeam la altceva când am pus-o 😛

      4.    Luis el a spus

        Mulțumesc prietene.

  5.   Ernesto el a spus

    Postare foarte bună, dar prefer să am o partiție separată, în care să pot pune tot ce vreau să împărtășesc. Am un disc generos de 500 GB, în care folosesc 100 GB cu Linux și o partiție de 400 GB (ntfs) în care se află toată muzica, fotografiile etc ... Pe computerul nostru suntem doi utilizatori și fiecare poate accesa partiția ntfs și punem și eliminăm ceea ce vrem, când vrem. Dacă nu vreau să împărtășesc nimic, am câteva lucruri în numele meu de utilizator. 🙂

    1.    Luis el a spus

      Da, este un alt mod de a face acest lucru, dar problema nu este unde să puneți fișierele, ci să configurați permisiunile și să controlați accesul diferiților utilizatori.

      O puteți avea pe o partiție NTFS, corectă, dar aveți și fragmentare, mai lentă decât EXT4 și mai puțină securitate, deși dacă este bine pentru dvs. să o aveți așa, este la fel de valabilă.

  6.   rainerhg el a spus

    Bine! Sfat bun, dar aș adăuga în continuare o sarcină pentru a modifica permisiunile la 775 din noile fișiere la fiecare autentificare și pentru a rezolva problema fișierelor mutate dintr-un alt folder.
    De asemenea, vă mulțumesc foarte mult pentru distribuire!

  7.   Joaquin el a spus

    Interesant, mulțumesc!

  8.   anonim el a spus

    Am ridicat ceva cu privire la grupul principal de partajare a unor distribuții gnu / linux. Unele distribuții creează utilizatorul cu utilizatorii grupului principal și nu folosesc un grup primar egal cu numele utilizatorului.
    Diferența este că folosind utilizatorii grupului principal, în mod implicit, totul este partajat cu utilizatorii grupului căruia îi vor aparține toți utilizatorii creați în acea distribuție, dacă în schimb sunt creați cu același grup cu numele utilizatorului, în mod implicit nu nimic nu va fi împărtășit.

    Exemplu:
    $ ls -l /home/user/*.txt
    -rw-r - r– 1 carlos carlos 126 25 Mar 2012 note.txt

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

    Nu recomand să utilizați utilizatorii grupului principal, mai bine să creați propriul grup principal atunci când creați utilizatorul.

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

    -G carlos indică utilizarea grupului părinte carlos.
    Puteți schimba grupul principal al unui utilizator cu # usermod -g, dar acest lucru nu va schimba grupul principal al tuturor fișierelor și folderelor care sunt deja în / home / carlos, va trebui să le schimbați pe toate.

    Exemplu: schimbați utilizatorii grupului principal din utilizatorul carlos în grupul principal carlos și apoi schimbați
    toate permisiunile de fișiere și dosare ale utilizatorului carlos, astfel încât să rămână din carlos carlos.

    #groupadd carlos
    # usermod -g utilizatori carlos
    # cd / acasă
    # chown -R carlos: carlos carlos

    În ceea ce privește partajarea, puteți crea un utilizator numit partajat cu grupul dvs. primar partajat și, astfel încât să nu existe probleme de permisiune la copiere, schimbați mai întâi utilizatorul
    cu „$ su - shared”, atunci ceea ce doriți este copiat în / home / shared, cu aceasta și permisiunile pentru ceea ce este copiat vor deveni utilizatorul partajat.
    Dacă există deja fișiere de copiere aparținând altor utilizatori și grupuri principale, trebuie să le schimbați pe toate.

    # cd / acasă
    # chown -R shared: shared shared

    Rămâne doar ceva în limb, pe care nu știu cum să îl fac pentru a copia grafic ca utilizator partajat, adică fără a fi nevoie să faceți $ su - shared

  9.   anonim el a spus

    A fost un lucru foarte prostesc să copiez grafic, hehe, eu folosesc pcmanfm aici în openbox, dar puteți utiliza managerul de fișiere pe care îl aveți sau doriți, este executat doar ca utilizator partajat și nu ca utilizator root.

    $ su - partajat
    $pcmanfm
    $ delfin
    $mc
    etc etc

    1.    thalskart el a spus

      Tocmai am fost pe punctul de a răspunde la asta. Dacă nu, cealaltă este o crontab care schimbă de fiecare dată proprietarul fișierelor cu un
      chown -R compartido:compartido compartido

  10.   Hugo el a spus

    Mi se pare că comanda „usermod -G thenewgroup elusuario” ceea ce face este, în principiu, să schimbe grupul utilizatorului în „thenewgroup”. Pentru a adăuga un utilizator existent într-un grup nou, cred că lucrul corect ar fi „usermod -aG elnuevogrupo elusuario”

    Un alt lucru este că văd aici că mai multe persoane recomandă să faceți un „chmod -R 775”, dar care nu afectează doar directoarele, ci și toate fișierele (făcându-le executabile), ceea ce introduce un risc inutil. Mai bine faceți ceva de genul «găsiți / acasă / partajat-tip d -print0 | xargs -0 chmod 755 "și dacă este necesar cu fișierele puteți face ceva similar, dar folosind" -tip f "și acordând permisiunea 664.

    În cele din urmă, o modalitate de a face ca mai multe conturi să aibă acces la un fișier sau dosar, indiferent de cine este proprietarul sau grupul, este utilizând comanda „setfacl” care se află în pachetul acl (dacă îmi amintesc bine). Utilizarea sa este bine explicată pe pagina manualului.

  11.   Unai martin el a spus

    Am următoarea problemă. Am creat 4 utilizatori (web1, web2, web3, web4) și vreau să creez un folder de grup de acces pentru utilizatorii grupului web. Când creez fișierul .htaccess știu că trebuie să pun require valid-user, dar, dacă pun require valid-user web1 web2 web3 web4, astfel încât să poată accesa folderul cu parola lor, când încerc să accesez folderul, acesta îmi cere utilizatorul și parola fiecăruia. Cum pot fi solicitat doar numele de utilizator și parola celui care vrea să intre? deoarece se presupune că unul nu știe parola celuilalt.

  12.   Gustavo F. Paredes el a spus

    Buna ziua.

    Al 4-lea terminal ar trebui să aibă pluralul „partajat”:

    sudo usermod -G shared Sebastian

    sudo usermod -G a împărtășit-o pe femeia mea

    Salutări.

    Gustavo

  13.   Ivan el a spus

    Noroc :

    Migrăm de la Windows Server la CentOs 6 și suntem încă în proces de adaptare. Întrebarea mea: Există o interfață grafică în CentOs pentru a partaja dosare și pentru a oferi utilizatorilor acces la modificarea, editarea și / sau ștergerea fișierelor?

    Multumesc pentru ajutor.

    1.    Rafael el a spus

      De asemenea, instalez un centos 6 și vreau să-l folosesc cu samba care îmi permite să partajez fișiere de pe linux și windows, știu puțin, nu folosesc mult linux, dar la serviciu am fost întrebat, cum pot face pentru a partaja foldere dar în modul grafic ??.

  14.   Ricardo el a spus

    Salut. Vă rog să mă ajutați! ... Se pare că, făcând acest lucru în utilizatorul meu din mintea linux, acum am pierdut privilegii. Nu pot rula ceva de genul sudo. Primesc următorul mesaj „Scuzați-mă, utilizatorul„ nume de utilizator ”nu este autorizat să execute„ command_to_run ”ca root în„ nume de utilizator ”„

    Cred că atunci când mi-am schimbat utilizatorul în grupul partajat, mi-am luat privilegii și acum cum le pot restabili ???

  15.   Guillermo el a spus

    Hei prieten, există vreo modalitate de a face același lucru, dar partajând fișiere cu alte persoane pe internet LAN

  16.   Fabian el a spus

    Pentru aceasta trebuie să utilizați SAMBA ca server de fișiere. Noroc

  17.   David el a spus

    Salut. Când am ajuns la comanda sudo chmod g + s dirname îmi spune că fișierul sau directorul nu există. Știți care este problema?

  18.   Javier Quiroga Almeida el a spus

    Cum creez un grup într-un alt grup?

  19.   Rodrigo Hernán Ramos el a spus

    Linia:
    sudo usermod -G shared Sebastian

    ar trebui să fie:
    sudo usermod -a -G shared Sebastian

    prima modalitate elimină restul grupurilor de utilizatori.
    iar dacă ești transpirat, îți pierzi privilegiile