Kirjoittaja Aihe: [ ratkaistu ] Tiedosto-oikeuksien rajottaminen eri käyttäjän tietojen osalta  (Luettu 1017 kertaa)

teele

  • Käyttäjä
  • Viestejä: 818
    • Profiili
Nyt pilvikoneen tiedostojen muokkaminen geditillä menee hienosti. Mutta jos oikeasti pilvikoneella olisi eri käyttäjiä, miten pitäisi asettaa rajoituksia, että käyttäjä1 ei näkisi käyttäjä2:n tiedostoja. Kummatkin käyttäjät ovat /home - hakemistossa.

www-data löytää näytettävän nettisivun /var/www/html hakemistossa olevan symbolisen linkin avulla. Linkki osoittaa käyttäjän kotihakemistossa olevaan tiedostoon.

Vain käyttäjän itsensä ja www-datan pitää päästä lukemaan tiedostoja. Muokkaaminen onkin jo näköjään kielletty. 

Millaisilla luku-, kirjoitus-, ja muokkausoikeuksien asetuksilla tilanne voitaisiin ratkaista.


« Viimeksi muokattu: 16.01.24 - klo:18.53 kirjoittanut teele »

kamara

  • Käyttäjä
  • Viestejä: 2952
    • Profiili
Voithan kokeilla jotain seuraavaa...

Koodia: [Valitse]
mkdir testidir
ls -l testidir
groups
sudo chmod 700 -R testidir
sudo chown root:root -R testidir
ls testdir
ls testdir -l
sudo ls -l testidir

Jos haluat antaa jollekin ryhmälle oikeuksia, niin silloin esim Tällä tavalla voit antaa dialout-ryhmän jäsenille luku ja kirjoitusoikeudet...
Koodia: [Valitse]
sudo chown root:dialout -R testdir
sudo chmod 770 -R testidir

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11443
    • Profiili
    • Tomin kotisivut
Kannattaa olla varovainen chmodin -R-vivun kanssa. Tuo 7 antaa myös kaikille tiedostoille suoritusoikeuden, mikä ei useinkaan ole tarkoitus. Tässä parempia vaihtoehtoja:
Koodia: [Valitse]
chmod -R o-rwx hakemisto
chmod -R u+rwX hakemisto

Ensimmäinen poistaa (miinus) muilta (o niin kuin other) luku-, kirjoitus- ja suoritusoikeuden rekursiivisesti. Toinen lisää (plus) käyttäjälle (u niin kuin user) luku- ja kirjoitusoikeudet tiedostoihin ja luku-, kirjoitus- ja suoritusoikeudet hakemistoille. Iso X nimittäin koskee vain hakemistoja; pieni x koskisi myös tiedostoja. Lisäksi on hyvä tietää, että yhtäsuuruusmerkki asettaisi oikeudet täsmälleen ja omistajamäärittelyjä (u, g ja o) voi laittaa useita peräkkäin, jos niiden oikeuksia on tarkoitus muuttaa samalla tavalla.

Tämä on muuten riittävä komento estää muiden käyttäjien pääsy omaan kotihakemistoon:
Koodia: [Valitse]
chmod go-rwx ~
Tämän jälkeen kotihakemiston ryhmän käyttäjillä ja muilla ei ole luku-, kirjoitus- tai suoritusoikeutta kotihakemistoon. Lukuoikeus antaa oikeuden listata tiedostoja ja kirjoitusoikeus antaa mm. oikeuden luoda tiedostoja, kuten voisi odottaakin. Suoritusoikeus on vähän epäintuitiivisempi hakemistojen kohdalla, mutta se antaa oikeuden avata hakemiston sisältämiä tiedostoja ja hakemistoja, jos tietää niiden nimen. Mikäli käyttäjällä ei ole suoritusoikeutta, niin hän ei voi lukea, mitään ko. hakemiston sisältä.
« Viimeksi muokattu: 09.01.24 - klo:13.40 kirjoittanut Tomin »
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

teele

  • Käyttäjä
  • Viestejä: 818
    • Profiili
Tulipa pikkasen kokeiltua kaikenlaista .... nyt tilanne on vähän jumissa

Aluksi tilanne oli tällainen

Koodia: [Valitse]
$ getent passwd käyttäjä1    -----> ei mitään
$ getent passwd käyttäjä2
käyttäjä2:x:1002:1002:,,,:/home/käyttäjä1:/bin/bash

sitten laitoin

Koodia: [Valitse]

$ sudo usermod -d /home/käyttäjä2/ käyttäjä2
[code]

mutta nyt on ilmaantunut ylimääräinen : polkuun

[code]
$ getent passwd käyttäjä2
käyttäjä2:x:1002:1002:,,,:/home/käyttäjä2/:/bin/bash

ehkä olisi pitänyt käyttää muotoa

Koodia: [Valitse]
sudo usermod -d /new/home/dir -m username

jossa -m -valitsin on mukana. Kuten tavallista, sen vaihtoehdon huomasin vasta sitten jälkeen päin.

Onko mitään keinoa saada käyttäjä2:n kotihakemistotiedoista ylimääräistä : -kierrosta pois.
« Viimeksi muokattu: 13.01.24 - klo:12.47 kirjoittanut teele »

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11443
    • Profiili
    • Tomin kotisivut
En kyllä nää ylimääräistä kaksoispistettä. Sen sijaan lisäsit kotihakemiston polkuun loppuun kauttaviivan. passwd-tiedostossa kaksoispistettä käytetään kenttien erottamiseen, ja jos lasket kaksoispisteiden määrän molemmissa riveissä, niin huomaat niitä olevan yhtä monta.
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

teele

  • Käyttäjä
  • Viestejä: 818
    • Profiili
Ok, selvä

Kiitos neuvoista, opettelu jatkuu, luultavasti palaan vielä uusin ongelmin ....  :)

juyli

  • Käyttäjä / moderaattori
  • Viestejä: 1200
    • Profiili
...opettelu jatkuu, luultavasti palaan vielä uusin ongelmin ....  :)
Käyttäjäoikeudet ovat Linux/Unix -järjestelmien perusteita. https://www.linux.fi/wiki/Tiedoston_oikeudet
Tuo Linux-wiki kannattaa silmäillä, jos perusasioista kiikastaa...
https://www.linux.fi/wiki/Etusivu

teele

  • Käyttäjä
  • Viestejä: 818
    • Profiili
Mahdollinen ratkaisu ei olekaan kovin monimutkainen, ainakin tähän asti näyttäisi toimivan

Ensin o-ryhmältä kaikki oikeudet pois.

Koodia: [Valitse]
sudo chmod -R o-rwx käyttäjä1

Sitten oikeuksien karsimisen makuun päästyä kaikki oikeudet pois ryhmältäkin

Koodia: [Valitse]
sudo chmod -R g-rwx käyttäjä1

Tässä vaiheessa oli hyvä tarkistaa, että ryhmä on sellainen, kuin pitääkin

Koodia: [Valitse]
getent group käyttäjä1

Lopuksi sitten oikeuksien karsimisen sijasta annetaan ryhmälle sopivasti oikeuksia

Koodia: [Valitse]
sudo chmod -R g+rx käyttäjä1

käyttäjä2 kanssa toimitaan samalla tavalla.

Nyt kummankin käyttäjät pääsevät muokkaamaan omia tekstejään graafisen tekstimuokkaimen avulla, mutta eivät joudu vahingossa toistensa hakemistoihin.

Jos ryhmät kaipaavat lisäjäseniä, niitä voi laittaa vaikka näin

Koodia: [Valitse]
sudo usermod -a -G groupname username

Ratkaisu n ä y t t ä ä toimivan, mutta jos siinä näkyy ongelmia  .....

Muokk.
Ja näkyihän niitä, kun selain käynnistettiin uudestaan, sivut ovatkin selaimessa kiellettyjä :(

.










« Viimeksi muokattu: 13.01.24 - klo:19.13 kirjoittanut teele »

nm

  • Käyttäjä
  • Viestejä: 16251
    • Profiili
Muokk.
Ja näkyihän niitä, kun selain käynnistettiin uudestaan, sivut ovatkin selaimessa kiellettyjä :(

www-data -käyttäjätunnuksella pitää olla pääsy hakemistoihin ja lukuoikeus tiedostoihin.

teele

  • Käyttäjä
  • Viestejä: 818
    • Profiili
en tiedä, olenko jo liian väsynyt, mutta ainakin ajatuksena on ollut, että jokaisen käyttäjän ryhmässä on käyttäjä itse ja www-data

tällainen oli, tai ainakin oli tarkoitus olla tarkistelumalli

Koodia: [Valitse]
getent group käyttäjä1 
käyttäjä1:x:1002:www-data

Säikeessä Tiedosto-oikeuksissa outoa on ehkä tarkemmin siitä, miten olen söhlinyt, näyttää siltä, että pääkäyttäjä ei pääse muiden käyttäjien hakemistoihin sudoilemallakaan. Tämä voi olla tässä söhlityssä tilanteessa ihan määrittelyjen mukaista, mutta ei vain ole aikaisemmin tullut vastaan.

Pitää vielä tarkistaa getentillä, onko www-data todella mukana kaikissa ryhmissä, menee varmaan seuraavan päivän puolelle ...

nm

  • Käyttäjä
  • Viestejä: 16251
    • Profiili
Voit myös vaihtaa su:lla www-data-käyttäjäksi, niin pääset kokeilemaan miten hakemistoihin siirtyminen ja tiedostojen lukeminen onnistuu. www-datalle ei varmaankaan ole määritelty komentotulkkia, mutta sen avaaminen onnistunee näin:

Koodia: [Valitse]
sudo su
Koodia: [Valitse]
su -s /bin/bash www-data
Pääset takaisin omalle tunnuksellesi exit-komennolla tai Ctrl+D:llä.
« Viimeksi muokattu: 13.01.24 - klo:21.44 kirjoittanut nm »

teele

  • Käyttäjä
  • Viestejä: 818
    • Profiili
kokeilin tällaista

Koodia: [Valitse]
$ sudo su
[sudo] password for slam1:
root@pilvikone:/home/pääkäyttäjä# chmod -R g+rx /home/käyttäjä1
root@pilvikone:/home/pääkäyttäjä# exit
exit

sitten kirjauduin uudestaan åilvi koneelle normaalina pääkäyttäjänä ja katsoin, mutta mikään ei muuttunut, rx ei ole ryhmässä

Koodia: [Valitse]
pääkäyttäjä@pilvikone:~$ cd /home
pääkäyttäjä@pilvikone:/home$ ls -l
drwxr-x---  7 käyttäjä1  käyttäjä1 4096 Jan 13 19:52 käyttäjä1


Kirjautumalla käyttäjä1:nä en myöskään onnistunut lisäämään ryhmäoikeuksia

nm

  • Käyttäjä
  • Viestejä: 16251
    • Profiili
Kyllä tuolla näkyy ryhmän oikeuksissa r ja x:

drwxr-x---  7 käyttäjä1  käyttäjä1 4096 Jan 13 19:52 käyttäjä1

Sen osalta homma on siis hoidossa, mutta olennaista on myös, että kaikki käyttäjätunnukset joille haluat antaa pääsyn kyseiseen hakemistoon, kuuluvat ryhmään "käyttäjä1". Tarkista kirjautumalla tunnuksella ja komentamalla groups

teele

  • Käyttäjä
  • Viestejä: 818
    • Profiili
Ehkä asia alkaa vähän selvitä.

Kummankin käyttäjän ryhmätiedot ja oikeudet näyttävät toimivilta.

Koodia: [Valitse]
$ getent group käyttäjä1
takaovi:x:1002:www-data

$ getent group käyttäja2
käyttäjä2:x:1004:www-data

$ ls -l
total 24
drwxr-xr-x  7 käyttäjä2    käyttäjä2    4096 Jun 19  2023 käyttäjä2
drwxr-x---  7 käyttäjä1 käyttäjä1 4096 Jan 13 19:52 käyttäjä1

Mutta kun selaimella pyytää

Koodia: [Valitse]
käyttäjä2.dy.fi
tulee vastaukseksi

Koodia: [Valitse]
Forbidden

You don't have permission to access this resource.
Apache/2.4.41 (Ubuntu) Server at käyttäjä2.dy.fi Port 443

josta voisi päätellä, että hakemistoon ei ole oikeuksia, mikä tuntuikin juuri olevan ongelma.

Mutta käyttäjä2:n hakemistossa olikin tiedostoja, jotka oli tehty sudoilemalla ja niiden ryhmä ja omistaja olivat root. Kun kansiossa olevan index-tiedoston omitajaksi laitetaan käyttäjä2, vaikuttaa siltä, että selain hakee sen.

Eli taas n ä y t t ä i s i, että asettelu toimii, mutta yllätyksiin pitänee tottua. Näkyykö oikeus- ryhmä- ja sivustoasetteluissa jotain (piilo)-ongelmaa, onko periaate oikein tai miten asiantuntija ratkaisisi asian kätevämmin?

Muokk.

No niin, yllätys olikin jo valmiina :(

Vaikka ls -l  -komennon tulostuksessa käyttäjä1:n ja käyttäjä2:n oikeudet näyttävät selaimen kannalta toimivilta, eivät käyttäjä1:n hakemiston tiedot ole näkyvissä  pääteeltä sudoilemalla.
Hakmistoon ei pääse.

Koodia: [Valitse]
home$ cd käyttäjä1
-bash: cd: takaovi: Permission denied
/home$ sudo cd käyttäjä1
[sudo] password for slam1:
sudo: cd: command not found

Keinoksi tosin löytyy

Koodia: [Valitse]
$ sudo su
root@pilvikone/home# cd käyttäjä1

mutta se ei vaikuta kovin kätevältä eikä luultavasti olisi suositeltukaan.

Mikä käyttäjä1:n ja käyttäjä2:n ryhmä- ja muut-asetuksissa olisi ratkaiseva oikeus, ehkä ryhmän r, mennee kokeiluun heti, kun ehdin ....

Muokk 2.

Hakemistoon pääsee päätteeltä, kun lisätään oikeus

Koodia: [Valitse]
sudo chmod -R o+x käyttäjä1
mutta muu ei sitten taidakaan onnistua

Koodia: [Valitse]
/home/käyttäjä1$ ls
ls: cannot open directory '.': Permission denied

Pitäisikö normaalisti käytössä oleva pääkäyttäjä lisätä käyttäjä1:n ryhmään, luulisi sudoilun toimvan ilman tällaisia muutoksiakin.




 





« Viimeksi muokattu: 14.01.24 - klo:17.24 kirjoittanut teele »

nm

  • Käyttäjä
  • Viestejä: 16251
    • Profiili
Pitäisikö normaalisti käytössä oleva pääkäyttäjä lisätä käyttäjä1:n ryhmään

Kyllä, jos haluat rajata pääsyn vain käyttäjä1:lle ja käyttäjä1:n ryhmälle. Silloin kaikki tunnukset joiden pitää päästä käyttäjä1:n hakemistoon ja tiedostoihin on lisättävä käyttäjä1:n ryhmään. Root-tunnuksella on joka tapauksessa pääsy, joten sitä ei tarvitse erikseen lisätä.

teele

  • Käyttäjä
  • Viestejä: 818
    • Profiili

Ehkä tämän säikeen uskaltaisi laittaa nyt ratkaistuksi.

Taas tältä foorumilta tuli arvokkaita neuvoja, joita ilman tiedostohallinta ei olisi onnistunut.

Kiitos kaikista neuvoista  :)