Kirjoittaja Aihe: Tähti ei toimi sudolla ? [Ratkaistu]  (Luettu 2480 kertaa)

ajaaskel

  • Palvelimen ylläpitäjä
  • Käyttäjä
  • Viestejä: 3401
    • Profiili
Tähti ei toimi sudolla ? [Ratkaistu]
« : 18.07.12 - klo:11.43 »
Sarjassamme "vaatinee selitystä" kun tuli tämä tilanne:

Koodia: [Valitse]
sudo ls /home/emmy/.mozilla/firefox/*.default/chrome

ls: tiedostoa /home/emmy/.mozilla/firefox/*.default/chrome ei voi käsitellä: Tiedostoa tai hakemistoa ei ole

Kokeillaanpa sama "sudo su": lla, tuloksenhan pitäisi olla sama:

Koodia: [Valitse]
sudo su
ls /home/emmy/.mozilla/firefox/*.default/chrome
launchy.xml

Nyt se löytyikin eli "sudo": lla ei "globbing" (tähden laajennus) toimi tai "sudo" ei annakaan täysiä oikeuksia tuossa ensimmäisessä tapauksessa vai miten tuo pitäisi käsittää ?

Kohtasin tuon alkuaan kun "chown" kieltäytyi samassa tilanteessa.

Tuo esiintyy yhdellä 10.04 LTS -koneella.  Tutkin asetukset myös tämän avulla:

Koodia: [Valitse]
shopt
mutta se näyttää tavanomaiselta.
« Viimeksi muokattu: 18.07.12 - klo:14.06 kirjoittanut ajaaskel »
Autamme ilolla ja ilmaiseksi omalla ajallamme.  Ethän vaadi, uhoa tai isottele näin saamasi palvelun johdosta.

welmar

  • Käyttäjä
  • Viestejä: 1582
    • Profiili
Vs: Tähti ei toimi sudolla ?
« Vastaus #1 : 18.07.12 - klo:12.02 »
Toimiiko tähti yleensäkään normikäyttäjänä vai ainoastaan rootina? En kyllä ymmärrä miksi tähti vaatisi kirjautumisen roottina. Sudousers tiedostoa muokkaamalla vois ehkä saada toimimaan mutta en tiedä sen enempää.

ajaaskel

  • Palvelimen ylläpitäjä
  • Käyttäjä
  • Viestejä: 3401
    • Profiili
Vs: Tähti ei toimi sudolla ?
« Vastaus #2 : 18.07.12 - klo:12.15 »
Tähti toimii yleensä joka paikassa ja kaikilla käyttäjillä ihan normaalisti.  Tässä on vain jokin harvinainen (?) tilanne jonka aiheuttaja on hämärä vielä.    
« Viimeksi muokattu: 18.07.12 - klo:12.17 kirjoittanut ajaaskel »
Autamme ilolla ja ilmaiseksi omalla ajallamme.  Ethän vaadi, uhoa tai isottele näin saamasi palvelun johdosta.

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11481
    • Profiili
    • Tomin kotisivut
Vs: Tähti ei toimi sudolla ?
« Vastaus #3 : 18.07.12 - klo:12.30 »
Hmm. Onko käyttäjälläsi oikeuksia tutkia mitä tuolla hakemistossa on? (todennäköisesti ei, koska käytit sudoa) Eli voisiko olla niin, että sudo ei laajenna tähtimerkkiä vaan komentotulkki (bash?)? Sillä taas ei ole oikeuksia lukea tuota hakemistoa.
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

ajaaskel

  • Palvelimen ylläpitäjä
  • Käyttäjä
  • Viestejä: 3401
    • Profiili
Vs: Tähti ei toimi sudolla ?
« Vastaus #4 : 18.07.12 - klo:13.00 »
Hmm. Onko käyttäjälläsi oikeuksia tutkia mitä tuolla hakemistossa on? (todennäköisesti ei, koska käytit sudoa) Eli voisiko olla niin, että sudo ei laajenna tähtimerkkiä vaan komentotulkki (bash?)? Sillä taas ei ole oikeuksia lukea tuota hakemistoa.

Se on aina bash joka laajentaa tähden.   Saatat silti olla oikeilla jäljillä sillä "sudo" saa uuden ympäristön kopion käynnistyessään (?) mutta sen lisäksi oikeusmääritykset/omistajuus/ryhmä voivat liittyä tuohon toisena reunaehtona.  
Silti on hämärää mikä eroaa sudolla ajettaessa niin että tuo epäonnistuu.

Tutkin hieman oikeuksia, näyttää tältä:

drwxr-wr-w    emmy:emmy    emmy
    drwx------    emmy:emmy    .mozilla
        drwx------  emmy:emmy    firefox
            drwx--------    emmy:emmy    4mdnid8n.default
                drwxr-xr-x  root:root    chrome
                    -rwxr-xr-x  root:root    launchy.xml

 


Alkuperäinen tarkoitus oli korjata tuonne omistaja/ryhmä automaattisesti skriptissä, nyt tuo skripti kurahtaa tuossa kohdassa kun se ei onnistu sudolla tähden kanssa.  Tähti taasen tarvitaan kun tuossa kohdassa voi lukea mitä vain (ennen tuota ".default").    Tunnen myös "--" -kikan, se ei auta.
« Viimeksi muokattu: 18.07.12 - klo:13.37 kirjoittanut ajaaskel »
Autamme ilolla ja ilmaiseksi omalla ajallamme.  Ethän vaadi, uhoa tai isottele näin saamasi palvelun johdosta.

retu

  • Käyttäjä
  • Viestejä: 949
    • Profiili
Vs: Tähti ei toimi sudolla ?
« Vastaus #5 : 18.07.12 - klo:13.41 »
Se on juuri noin, kuten Tomin arvelee. Kun painat enteriä, bash laajentaa komentorivin. Siis ennen komennon suoritusta. Ongelman kiertämiseksi pitää vain avata toinen shell ja välittää komento sille yksinkertaisissa hipsuissa ettei 1. shell pääse sorkkimaan.
Koodia: [Valitse]
sudo bash -c 'ls /root/*'

ajaaskel

  • Palvelimen ylläpitäjä
  • Käyttäjä
  • Viestejä: 3401
    • Profiili
Vs: Tähti ei toimi sudolla ?
« Vastaus #6 : 18.07.12 - klo:14.06 »
Koodia: [Valitse]
sudo bash -c 'ls /home/emmy/.mozilla/firefox/*.default/chrome'
launchy.xml

Tuo toimii ok, kiitos.  

"sudo" ei olekaan aina ihan suoraviivainen "root" :in korvike mutta toimii näköjään ok tuolla "bash -c kova_lainaus"  -keinolla:

Koodia: [Valitse]
sudo bash -c  'ajettava_juttu_tähän'
Täytyypä muistaa tuo jatkossa sudon + tähden kanssa :)

Lainaus
Kun painat enteriä, bash laajentaa komentorivin. Siis ennen komennon suoritusta.

Eipä tullut mieleen ajatella tuon tapahtumaketjun järjestystä, hyvin huomattu sekä "Tomin" että "retu" !

Edit:
Skriptin kirjoittajalle tulikin pientä lisäpähkinää purtavaksi tuosta:  Parametrien välitystä on hankalaa saada toimimaan kun ajetaan "sudo bash -c": lla, parametrit ja ympäristömuuttujat eivät välity tuossa tilanteessa tavalliseen tapaan, lienee (?) estetty "sudo": ssa.  Jos laittaa jotain ympäristömuuttujaan ja katsoo
Koodia: [Valitse]
sudo bash -c 'env'niin mitään ei tule perille.

Löysin tuohon pari vinkkiä, joko välittämällä ympäristömuuttujat komentorivillä "sudo": n jälkeen tai käyttämällä "-E" -vipua "sudo": n perässä näyttäisi oman ympäristömuutujan välitys toimivan.
Tuosta komennosta tulisi tämän näköinen korjattuna:

Koodia: [Valitse]
sudo -E bash -c  'ajettava_juttu_tähän'
« Viimeksi muokattu: 23.07.12 - klo:22.45 kirjoittanut ajaaskel »
Autamme ilolla ja ilmaiseksi omalla ajallamme.  Ethän vaadi, uhoa tai isottele näin saamasi palvelun johdosta.