Kirjoittaja Aihe: Mitä tuo SGID merkitsee? (Ihmettelyä käyttöoikeuksista)  (Luettu 1850 kertaa)

Snufkin

  • Käyttäjä
  • Viestejä: 612
    • Profiili
Osaisiko joku selittää minulle (vaikka rautalangasta vääntäen), mikä on tuon ison S-kirjaimen funktio kansion käyttöoikeuksissa. Esim.
Koodia: [Valitse]
drwx--S--- tarkoittaa (ehkä) että ko. kansioon luodot tiedostot saavat sinne käyttöoikeuden
Koodia: [Valitse]
-rw-rw---. Mutta en ymmärrä miksi. Jos ryhmällä ei ole ko kansioon käyttöoikeuksia, niin voiko sillä silti olla sen alla olevaan tiedostoon? Mihin tällaista tarvitaan?

Tuolta koitin asiaan opiskella.
https://www.redhat.com/en/blog/suid-sgid-sticky-bit
« Viimeksi muokattu: 24.09.25 - klo:17.06 kirjoittanut Snufkin »
Xubuntu 22.04 LTS, Fujitsu Lifebook E754

igor_2

  • Käyttäjä
  • Viestejä: 805
    • Profiili
Vs: Mitä tuo SGID merkitsee?
« Vastaus #1 : 14.08.25 - klo:15.48 »
Linuxin tiedosto-oikeuksissa iso S (käyttäjäryhmän tai muiden kohdalla) tarkoittaa sitä, että setgid-bitti on asetettu, mutta suoritusoikeutta (x) ei ole.

Tarkemmin selitettynä:

    Kun suoritusoikeus (x) on asetettu, setgid-bitti näkyy pienenä s-kirjaimena: drwx--s---. Tällöin tiedosto perii sen ryhmän oikeudet, joka omistaa kansion tai tiedoston.

    Kun suoritusoikeutta (x) ei ole, setgid-bitti näkyy isona S-kirjaimena: drwx--S---. Tämä tarkoittaa, että setgid on asetettu, mutta se ei ole toiminnassa. Koska ryhmällä ei ole suoritusoikeutta, perittyjä oikeuksia ei voida hyödyntää.

Toisin sanoen, iso S-kirjain on merkki potentiaalista, jonka käyttö on estetty suoritusoikeuden puuttumisen vuoksi. Se on harvinaisempi ja usein ei-toivottu tila.

Snufkin

  • Käyttäjä
  • Viestejä: 612
    • Profiili
Vs: Mitä tuo SGID merkitsee?
« Vastaus #2 : 14.08.25 - klo:16.54 »
Tarkoittaako tuo, että jos kansion oikeuksissa Groupilla on vain tuo S, ja siten kansion alle luotuun tiedostoon muodostuu Groupille rw, niin kansiota ei pääse selaamaan, mutta jos tietää yksittäisen tiedoston nimen (ja polun) niin sitä voi lukea ja kirjoittaa?
Xubuntu 22.04 LTS, Fujitsu Lifebook E754

SuperOscar

  • Käyttäjä
  • Viestejä: 4247
  • Ocatarinetabellatsumtsum!
    • Profiili
    • Legisign.org
Vs: Mitä tuo SGID merkitsee?
« Vastaus #3 : 16.08.25 - klo:14.29 »
Se on harvinaisempi ja usein ei-toivottu tila.

Täytyipä kokeilla, koska itselläni tilanne ei ole ollut mitenkään harvinainen.

Ilmeisesti helppo tapa saada tuo aikaiseksi on tällainen:
  • asetetaan kokeiluun käytettävälle tunnukselle umask 077 (= tiedostoja ja kansioita luotaessa oikeudet tulevat vain käyttäjälle itselleen) – tämä on minulla vakio, mikä saattaa olla syynä siihen, että törmään ongelmaan usein
  • luodaan kansio, jonka omistaja on esimerkiksi root (tai ainakin mikä tahansa muu kuin kokeiluun käytettävä tunnus) ja omistava ryhmä sellainen, johon kokeiluun käytettävä tunnus kuuluu, ts. esim. root:staff (jos tunnus kuuluu staffiin)
  • annetaan kansiolle oikeudet 6775 (= rwxrwsr-x) eli asetetaan tarrabitti ryhmälle ja
  • lopuksi siirrytään kansioon kokeilutunnuksella ja luodaan uusi alikansio.

Tällöin ilmeisesti umaskin ja tarrabitin ristiriidan seurauksena ryhmän oikeuksiksi tulee --S.

En ole aivan varma, tarvitaanko ongelmaan törmäämiseksi kaikkea yllä mainittua, mutta ainakin tuolla tavoin tuntuu onnistuvan säännöllisesti.
pöytäkone 1, kannettavat 1–3, NUC: Debian GNU/Linux 13;  pöytäkone 2: openSUSE Tumbleweed; RPi 1: FreeBSD 14.2-RELEASE; RPi 2: LibreELEC 12

Snufkin

  • Käyttäjä
  • Viestejä: 612
    • Profiili
Vs: Mitä tuo SGID merkitsee?
« Vastaus #4 : 16.08.25 - klo:15.12 »
Tää pohdinta tuli vastaan yhdellä kurssilla, kun käytän ulkoista Linux-tietokonetta SSH:lla ja siellä luotuihin kotikansioihin alustuu automaattisesti tuo  drwx--S---  , vaikka asettaa oikeudet   chmod 700 .  Se siis periytynee jostain ylempää.

Tuohon ryhmään kuulunee sitten muita opiskelijoita ja kurssin vetäjä. En tiedä onko jossain vaiheessa tarpeen ajaa muiden tekemää koodia tms. ja voisiko se olla syy tällaiseen. Tai pitääkö kurssin opettajalla olla tuo oikeus.
« Viimeksi muokattu: 16.08.25 - klo:15.14 kirjoittanut Snufkin »
Xubuntu 22.04 LTS, Fujitsu Lifebook E754

Snufkin

  • Käyttäjä
  • Viestejä: 612
    • Profiili
Vs: Mitä tuo SGID merkitsee?
« Vastaus #5 : 16.08.25 - klo:15.32 »
Tässä vielä ls -al tulostus (hieman muokattuna). Siitä ilmenee, että ko. kansioon (.) on oikeus vain käyttäjällä, mutta sitten sen alle luotuihin kansioihin (Harj1) ja tiedostoihin (test.c) myös ryhmällä, samoin kuin ajo-oikeus. Mitään chmod-muutoksia ei ole noihin tehty.

Koodia: [Valitse]
drwx--S--- 12 user project 4096 14. 8. 14:59 .
drwxrws---  2 user project 4096 14. 8. 14:59 Harj1
-rw-rw----  1 user project  452 14. 8. 14:59 testi.c
-rwxrwx---  1 user project  452 14. 8. 14:59 a.out
Xubuntu 22.04 LTS, Fujitsu Lifebook E754

Snufkin

  • Käyttäjä
  • Viestejä: 612
    • Profiili
Vs: Mitä tuo SGID merkitsee?
« Vastaus #6 : 16.08.25 - klo:15.43 »
  • asetetaan kokeiluun käytettävälle tunnukselle umask 077 (= tiedostoja ja kansioita luotaessa oikeudet tulevat vain käyttäjälle itselleen) – tämä on minulla vakio, mikä saattaa olla syynä siihen, että törmään ongelmaan usein

Onko tuolla umask'lla väliä, jos vain yhden käyttäjän kone, jossa ei ole mitäänpalvelimia tms.?
Xubuntu 22.04 LTS, Fujitsu Lifebook E754

SuperOscar

  • Käyttäjä
  • Viestejä: 4247
  • Ocatarinetabellatsumtsum!
    • Profiili
    • Legisign.org
Vs: Mitä tuo SGID merkitsee?
« Vastaus #7 : 16.08.25 - klo:17.09 »
Onko tuolla umask'lla väliä, jos vain yhden käyttäjän kone, jossa ei ole mitäänpalvelimia tms.?

Se on tietysti niin ja näin. Itse olen kokenut, että koko ajatus erillisistä käyttäjätunnuksista on aika turha, jos kaikki kuitenkin näkevät toistensa kaikki tiedostot. Mieluummin hoidan näkymisen ryhmien kautta tapauskohtaisesti.
pöytäkone 1, kannettavat 1–3, NUC: Debian GNU/Linux 13;  pöytäkone 2: openSUSE Tumbleweed; RPi 1: FreeBSD 14.2-RELEASE; RPi 2: LibreELEC 12

Snufkin

  • Käyttäjä
  • Viestejä: 612
    • Profiili
Vs: Mitä tuo SGID merkitsee?
« Vastaus #8 : 16.08.25 - klo:17.11 »
Onko tuolla umask'lla väliä, jos vain yhden käyttäjän kone, jossa ei ole mitäänpalvelimia tms.?

Se on tietysti niin ja näin. Itse olen kokenut, että koko ajatus erillisistä käyttäjätunnuksista on aika turha, jos kaikki kuitenkin näkevät toistensa kaikki tiedostot. Mieluummin hoidan näkymisen ryhmien kautta tapauskohtaisesti.

Mutta yhden käyttäjän koneessa ei ole kuin yksi käyttäjä (+root).
Xubuntu 22.04 LTS, Fujitsu Lifebook E754

SuperOscar

  • Käyttäjä
  • Viestejä: 4247
  • Ocatarinetabellatsumtsum!
    • Profiili
    • Legisign.org
Vs: Mitä tuo SGID merkitsee?
« Vastaus #9 : 16.08.25 - klo:19.07 »
Mutta yhden käyttäjän koneessa ei ole kuin yksi käyttäjä (+root).

Minulla on yleensä vähintään kaksi, usein kolme: oma varsinainen tunnus, puhtaana pidettävä koekäyttäjätunnus kokeiluihin ja ”karaoketunnus”, jota voi pitää auki vieraille.
pöytäkone 1, kannettavat 1–3, NUC: Debian GNU/Linux 13;  pöytäkone 2: openSUSE Tumbleweed; RPi 1: FreeBSD 14.2-RELEASE; RPi 2: LibreELEC 12

Snufkin

  • Käyttäjä
  • Viestejä: 612
    • Profiili
Vs: Mitä tuo SGID merkitsee?
« Vastaus #10 : 24.09.25 - klo:17.06 »
Jatkanpa tähän vanhaan ketjuun ihmettelyä käyttöoikeuksista

Jos minulla on kansiossa käyttöoikeudet vain itselleni, mutta sitten kansiossa olevassa tiedostossa myös ryhmälle, niin näkeekö joku rymäläinen tuon tiedoston, jos tietää siihen suoran polun?
Koodia: [Valitse]
drwx------   ... .
-rw-rw----   ... tiedosto

Miten saan asetettua niin, että kaikki uusiin tiedostoihin tulee oikeudet vain minulle? Ja siis ilman, että jokaista tiedostoa pitää erikseen säätää.

Koodia: [Valitse]
-rw-------   ... tiedosto
Kyseessä yhteiskäyttökone ja haluaisin pitää oman koodini salassa.
Xubuntu 22.04 LTS, Fujitsu Lifebook E754

SuperOscar

  • Käyttäjä
  • Viestejä: 4247
  • Ocatarinetabellatsumtsum!
    • Profiili
    • Legisign.org
Vs: Mitä tuo SGID merkitsee?
« Vastaus #11 : 24.09.25 - klo:17.15 »
Jos minulla on kansiossa käyttöoikeudet vain itselleni, mutta sitten kansiossa olevassa tiedostossa myös ryhmälle, niin näkeekö joku rymäläinen tuon tiedoston, jos tietää siihen suoran polun?
Koodia: [Valitse]
drwx------   ... .
-rw-rw----   ... tiedosto

Ei näe. Mutta jos välissä olevissa kansioissa on g+x, näkee. Lukuoikeutta ei tarvita.

Lainaus
Miten saan asetettua niin, että kaikki uusiin tiedostoihin tulee oikeudet vain minulle?

Nimenomaan tämä on nykyään tehty tavattoman hankalaksi. Esimerkiksi nimenomaisesti Gnome tuntuu aktiivisesti olevan piittaamatta alla olevan järjestelmän asettamista oikeuksista ja käyttää oikeuksia 644 (= rw-r--r--) aina.

Periaatteessa pitäisi riittää, että asettaa /etc/login.defs-tiedostossa UMASK-rivillä arvon 077, mutta se ei ole riittänyt vuosiin graafisille ohjelmille.

Ihan vastikään joku kuitenkin jossakin toisessa säikeessä vinkkasi, miten Arch Linuxin wiki neuvoo käyttämään SystemD:tä ja PAMia tähän; en kuitenkaan löydä sitä säiettä juuri nyt enkä tullut vielä itsekään kokeilleeksi.
pöytäkone 1, kannettavat 1–3, NUC: Debian GNU/Linux 13;  pöytäkone 2: openSUSE Tumbleweed; RPi 1: FreeBSD 14.2-RELEASE; RPi 2: LibreELEC 12

Snufkin

  • Käyttäjä
  • Viestejä: 612
    • Profiili
Vs: Mitä tuo SGID merkitsee?
« Vastaus #12 : 24.09.25 - klo:17.31 »
Jos minulla on kansiossa käyttöoikeudet vain itselleni, mutta sitten kansiossa olevassa tiedostossa myös ryhmälle, niin näkeekö joku rymäläinen tuon tiedoston, jos tietää siihen suoran polun?
Koodia: [Valitse]
drwx------   ... .
-rw-rw----   ... tiedosto

Ei näe. Mutta jos välissä olevissa kansioissa on g+x, näkee. Lukuoikeutta ei tarvita.


Ok, kiitos. Pitää tutkia nuo välikansiot. Se ei ole kohtuuhon homma ihan manuaalisestikaan.

Lainaus
Periaatteessa pitäisi riittää, että asettaa /etc/login.defs-tiedostossa UMASK-rivillä arvon 077, mutta se ei ole riittänyt vuosiin graafisille ohjelmille.

Mä käytän ko. konetta vain komentotulkin (SSH:n) kautta, joten siihenkö tuo sitten toimisi?

En tosin taida päästä käsiksi muualle kuin omaan kansioon, jossa ei ole etc/-kansiota. Luonko sinne vain tuollaisen logi.defs-tiedoston?
Xubuntu 22.04 LTS, Fujitsu Lifebook E754

SuperOscar

  • Käyttäjä
  • Viestejä: 4247
  • Ocatarinetabellatsumtsum!
    • Profiili
    • Legisign.org
Vs: Mitä tuo SGID merkitsee?
« Vastaus #13 : 24.09.25 - klo:18.07 »
Mä käytän ko. konetta vain komentotulkin (SSH:n) kautta, joten siihenkö tuo sitten toimisi?

Toimisi, koska komentotulkeille umaskin asettaminen on helppoa ja ne kunnioittavat sitä. Riittää, että lisäät käynnistysskriptiin (~/.bashrc, ~/.zshenv tai vastaava):

Koodia: [Valitse]
umask 077
pöytäkone 1, kannettavat 1–3, NUC: Debian GNU/Linux 13;  pöytäkone 2: openSUSE Tumbleweed; RPi 1: FreeBSD 14.2-RELEASE; RPi 2: LibreELEC 12

nm

  • Käyttäjä
  • Viestejä: 16762
    • Profiili
Vs: Mitä tuo SGID merkitsee?
« Vastaus #14 : 24.09.25 - klo:18.13 »
Ihan vastikään joku kuitenkin jossakin toisessa säikeessä vinkkasi, miten Arch Linuxin wiki neuvoo käyttämään SystemD:tä ja PAMia tähän; en kuitenkaan löydä sitä säiettä juuri nyt enkä tullut vielä itsekään kokeilleeksi.

Täällä: https://forum.ubuntu-fi.org/index.php?topic=59462.msg452061#msg452061

Mutta tässä yhden käyttäjätunnuksen ja komentotulkin tapauksessa tosiaan riittää lisätä rivi umask 077 tiedostoon .bashrc (jos komentotulkkina on Bash)
« Viimeksi muokattu: 24.09.25 - klo:18.15 kirjoittanut nm »

Snufkin

  • Käyttäjä
  • Viestejä: 612
    • Profiili
Vs: Mitä tuo SGID merkitsee?
« Vastaus #15 : 24.09.25 - klo:19.03 »
Toimisi, koska komentotulkeille umaskin asettaminen on helppoa ja ne kunnioittavat sitä. Riittää, että lisäät käynnistysskriptiin (~/.bashrc, ~/.zshenv tai vastaava):

Koodia: [Valitse]
umask 077

Kiitos, tämä toimi!
(lisäsin .bashrc:hen omien aliaksien joukkoon)
Xubuntu 22.04 LTS, Fujitsu Lifebook E754

SuperOscar

  • Käyttäjä
  • Viestejä: 4247
  • Ocatarinetabellatsumtsum!
    • Profiili
    • Legisign.org
pöytäkone 1, kannettavat 1–3, NUC: Debian GNU/Linux 13;  pöytäkone 2: openSUSE Tumbleweed; RPi 1: FreeBSD 14.2-RELEASE; RPi 2: LibreELEC 12