Kirjoittaja Aihe: Scriptin kirjoitus  (Luettu 9221 kertaa)

0 jäsentä ja 1 Vieras katselee tätä aihetta.

Poissa RaijaR

  • Jäsen
  • Viestejä: 1421
  • Sukupuoli: Nainen
Scriptin kirjoitus
« : 14.12.2020 - klo:19:02 »
Ihmettelen, että kuinka tyhmä ihminen voi ollakaan...

Olen siis tehnyt loistavan scriptin. Ja se kysyy salasanan rootille, ja tekee chmod -komennon, mutta se jää sitten möllimään paikalleen eli ei pääse "ulos"  :-[  Ei edes cnrl_c:llä  >:(
Scripit näyttää tältä:

#! /bin/bash
sudo chmod 777 /share/*
exit

Mitenkän tuosta saisi toimivan? Olisi vielä plussaa, jos sen saisi käynnistymään klikkaamalla.
Pöytäkone ASUS ExpertCenter PN52, Tumbleweed, jossa nippu distroja QEMU/KVM:ssä.
Ja Väinö-minibulli :D
Huom! Kirjoitusvihreet tulee jostain aravuudesta...

Poissa RaijaR

  • Jäsen
  • Viestejä: 1421
  • Sukupuoli: Nainen
Vs: Scriptin kirjoitus
« Vastaus #1 : 14.12.2020 - klo:19:26 »
Poistin yhden välilyönnin  :D Nyt näyttää toimiman. Eikun tekemään hienosäätöä...

#! /bin/bash  <--- tästä
sudo chmod 777 /share/*
exit

ps. sitä en ole koskaan ymmärtänyt, että onko #!/bin/bash  oikea komento vai onko se vain kommentti (ilmeisesti ei ole kommentti)
Pöytäkone ASUS ExpertCenter PN52, Tumbleweed, jossa nippu distroja QEMU/KVM:ssä.
Ja Väinö-minibulli :D
Huom! Kirjoitusvihreet tulee jostain aravuudesta...

Poissa SuperOscar

  • Käännösryhmä
  • *
  • Viestejä: 912
  • Sukupuoli: Mies
  • Tänään täällä, huomenna poissa
    • Legisign.org
Vs: Scriptin kirjoitus
« Vastaus #2 : 14.12.2020 - klo:20:05 »
Koodia: [Valitse]
#! /bin/bash
sudo chmod 777 /share/*
exit

Tuossa exit on turha, koska skriptin päättyessä poistutaan joka tapauksessa.

Lainaus
ps. sitä en ole koskaan ymmärtänyt, että onko #!/bin/bash  oikea komento vai onko se vain kommentti (ilmeisesti ei ole kommentti)

Sekä että. Muistaakseni käyttöjärjestelmä – siis se eikä esim. komentotulkki itse – lukee tiedoston alusta kaksi tavua (”#!”), toteaa että skripti on tulossa, lukee halutun komentotulkin (”/bin/bash”) ja ohjaa syötteen sille. Komentotulkki taas saa käsiteltäväkseen koko tiedoston, joten sen kannalta kommenttimerkki on tarpeen, jottei riviä lähdetä enää suorittamaan.
pöytäkone 1, kannettavat 1–3: Debian GNU/Linux 12; pöytäkone 2: openSUSE Tumbleweed; NUC: openSUSE Leap 15.5; RPi 1: FreeBSD 13.2-RELEASE; RPi 2: LibreELEC 11

Poissa RaijaR

  • Jäsen
  • Viestejä: 1421
  • Sukupuoli: Nainen
Vs: Scriptin kirjoitus
« Vastaus #3 : 15.12.2020 - klo:16:36 »
Kiitos SuperOscar selvityksestä  :)

Minähän sain (jo aiemmin) kuningasajatuksen: teenpä "one-click" systeemin, joka ajaa tuon scriptin eli "linkki sovellukseen"
En osaa tätäkään. Aukaisee kyllä konsolin, mutta siihen se sitten jääkin. Ei edes ilmoita, että sudo chmod 777 /share/* -komento on väärä.

Netistä hain vaikka minkälaista esimerkkiä, mutta aina tökkää siihen, ettei tee mitään muuta kuin avaa konsoli-istunnon.

Linkki sovellukseen:
[Desktop Entry]
Comment[fi_FI]=kommentti
Comment=kommentti
Exec=/home/raija/bin/chaper.sh
GenericName[fi_FI]=Nimi
GenericName=Nimi
Icon=system-run
MimeType=application/x-shellscript;
Name[fi_FI]=Chaper
Name=Chaper
Path=/home/raija/bin
StartupNotify=true
Terminal=true
TerminalOptions=
Type=Application
X-DBUS-ServiceName=
X-DBUS-StartupType=
X-KDE-SubstituteUID=false
X-KDE-Username=raija

Logit:
2020-12-15T16:34:26.993542+02:00 localhost systemd[1986]: Started Konsole - Pääteikkuna.
2020-12-15T16:34:27.050461+02:00 localhost konsole[1094]: kf.i18n: "Interpolation {$[gen %1]} in {$[gen %1] &asetukset...} failed: Non-string return value: undefined"
2020-12-15T16:34:27.050742+02:00 localhost konsole[1094]: kf.i18n: "Interpolation {$[gen %1]} in {$[gen %1] käyttö&ohj...} failed: Non-string return value: undefined"
2020-12-15T16:34:27.050838+02:00 localhost konsole[1094]: kf.i18n: "Interpolation {$[elat %1]} in {&Tietoa $[yleisnimi_...} failed: Non-string return value: undefined"




Pöytäkone ASUS ExpertCenter PN52, Tumbleweed, jossa nippu distroja QEMU/KVM:ssä.
Ja Väinö-minibulli :D
Huom! Kirjoitusvihreet tulee jostain aravuudesta...

Poissa SuperOscar

  • Käännösryhmä
  • *
  • Viestejä: 912
  • Sukupuoli: Mies
  • Tänään täällä, huomenna poissa
    • Legisign.org
Vs: Scriptin kirjoitus
« Vastaus #4 : 15.12.2020 - klo:18:32 »
Kokeiles niin, että Exec-rivillä ohjelmana on komentotulkki ja sillä parametrina skripti. Toisin sanoen:

Koodia: [Valitse]
Exec=/bin/bash /home/raija/bin/chaper.sh
Muoks: Jaa, kokeilin myös Exec-rivin osoittaessa suoraan skriptiin, ja kyllä se minulla toimi. Tosin tulosta en ehtinyt nähdä kun pääte sulkeutui mutta en usko siinä olleen mitään ihmeellistä.

Skripti oli tällainen:

Koodia: [Valitse]
#!/bin/bash

sudo ls -l /etc/ssh

(missä /etc/ssh on kansio, jonka sisältöä tavallinen käyttäjä ei näe), ja desktop-tiedosto sitten tällainen (yritin karsia pois kaiken turhan):

Koodia: [Valitse]
[Desktop Entry]
Name=Chaper
Exec=/home/tn/Tilap/test.sh
Path=/home/tn/Tilap
MimeType=application/x-shellscript;
Terminal=true
Type=Application
« Viimeksi muokattu: 15.12.2020 - klo:18:41 kirjoittanut SuperOscar »
pöytäkone 1, kannettavat 1–3: Debian GNU/Linux 12; pöytäkone 2: openSUSE Tumbleweed; NUC: openSUSE Leap 15.5; RPi 1: FreeBSD 13.2-RELEASE; RPi 2: LibreELEC 11

Poissa RaijaR

  • Jäsen
  • Viestejä: 1421
  • Sukupuoli: Nainen
Vs: Scriptin kirjoitus
« Vastaus #5 : 16.12.2020 - klo:00:10 »
En saa toimimaan, vaikka kopioin sinulta sen scriptin että desktopin. Vaihdoin vain käyttäjän raijaksi. Onhan sinullakin opensuse/KDE
« Viimeksi muokattu: 16.12.2020 - klo:00:24 kirjoittanut RaijaR »
Pöytäkone ASUS ExpertCenter PN52, Tumbleweed, jossa nippu distroja QEMU/KVM:ssä.
Ja Väinö-minibulli :D
Huom! Kirjoitusvihreet tulee jostain aravuudesta...

Poissa raimo

  • Jäsen
  • Viestejä: 218
  • Sukupuoli: Mies
Vs: Scriptin kirjoitus
« Vastaus #6 : 16.12.2020 - klo:00:24 »
Olethan antanut skriptille ajo-oikeudet?

Koodia: [Valitse]
chmod +x /home/raija/bin/chaper.sh
Tai kaikki:
Koodia: [Valitse]
chmod +a /home/raija/bin/chaper.sh

Poissa RaijaR

  • Jäsen
  • Viestejä: 1421
  • Sukupuoli: Nainen
Vs: Scriptin kirjoitus
« Vastaus #7 : 16.12.2020 - klo:13:33 »
Jep. Nuo aseteukset (chmod) olin jo asettanut aiemmin.
Nyt olen tupeksinut homman niin, että kun klikkaan tekemääni desktop-tiedostoa aukeaa kaksi konsolia (minun käyttäjätunnuksella), joista toiseen nämä herjat:

Koodia: [Valitse]
kf.i18n: "Interpolation {$[gen %1]} in {$[gen %1] &asetukset...} failed: Non-string return value: undefined"
kf.i18n: "Interpolation {$[gen %1]} in {$[gen %1] käyttö&ohj...} failed: Non-string return value: undefined"
kf.i18n: "Interpolation {$[elat %1]} in {&Tietoa $[yleisnimi_...} failed: Non-string return value: undefined"

^C

Varoitus: Ohjelma ”/usr/bin/konsole” kaatui.

Toinen konsoli-istunto vain aukeaa, eikä edelleenkään tapahdu mitään muuta.
En siis ole saanut mitään scriptiä toimimaan klikkaamalla, vaikka scripti sisältäisi vain pelkän list-komennon omasta tiedostosta.





Pöytäkone ASUS ExpertCenter PN52, Tumbleweed, jossa nippu distroja QEMU/KVM:ssä.
Ja Väinö-minibulli :D
Huom! Kirjoitusvihreet tulee jostain aravuudesta...

Poissa harmie

  • Valvoja
  • *
  • Viestejä: 2762
  • Sukupuoli: Mies
Vs: Scriptin kirjoitus
« Vastaus #8 : 16.12.2020 - klo:14:22 »
Vähän ohi aiheen, mutta onko joku syy miksi tota scriptiä pitäisi ajella manuaalisesti? Senhän voisi määrittää ajettavaksi koneen käynnistyessä automaattisesti.

Poissa RaijaR

  • Jäsen
  • Viestejä: 1421
  • Sukupuoli: Nainen
Vs: Scriptin kirjoitus
« Vastaus #9 : 16.12.2020 - klo:15:00 »
Se, että ko. scripti ajettaisiin automaattisesti koneen käynnistyessä, ei oikein vastaa tarkoitustaan.

Scriptin ajo manuaalisesti on vain hätäapu varsinaiseen ongelmaan eli siihen, että /share/ -hakemistoon tulee "väärät" oikeudet guest-koneen puolelta.

Guest: LinuxMint 20
Host: openSUSE Tumbleweed

Mintistä tehty tiedosto näyttää hyvältä Mintistä katsottuna. Tämän tiedoston siis haluan avata openSUSE (host) puolelta

raija@VM:~$ cd /share
raija@VM:/share$ touch mintissä-tehty-tiedosto.txt
raija@VM:/share$ chmod 777 *.*
raija@VM:/share$ ls -la
yhteensä 4
drwxrwxrwx  1 root  root    56 joulu  16 14:41 .
drwxr-xr-x 24 root  root  4096 joulu  11 22:52 ..
-rwxrwxrwx  1 raija raija    0 joulu  16 14:40 mintissä-tehty-tiedosto.txt

Mutta openSUSEn puolelta sitä ei saakaan avattua, koska käyttäjätunnus on qemu ja suojaukset estää avauksen

raija@localhost:~> cd /share
raija@localhost:/share> l
yhteensä 0
drwxrwxrwx 1 root root  56 16.12. 14:36 ./
drwxr-xr-x 1 root root 242 11.12. 23:23 ../
-rw------- 1 qemu qemu   0 16.12. 14:40 mintissä-tehty-tiedosto.txt
raija@localhost:/share> cat mintissä-tehty-tiedosto.txt
cat: mintissä-tehty-tiedosto.txt: Lupa evätty

raija@localhost:/share>
raija@localhost:/share>

Hostissa raija on lisätty qemu ryhmään. Yritetty myös luoda toinen käyttäjä Mintiin  :(
Yritykseni on siis jotenkin saada Mintistä tehty tiedosto/hakemisto avautumaan myös openSUSEn puolella (toisin päin toimii eli Mint pysyy avaamaan openSUSEta tehdyn tiedoston jne).

« Viimeksi muokattu: 16.12.2020 - klo:15:05 kirjoittanut RaijaR »
Pöytäkone ASUS ExpertCenter PN52, Tumbleweed, jossa nippu distroja QEMU/KVM:ssä.
Ja Väinö-minibulli :D
Huom! Kirjoitusvihreet tulee jostain aravuudesta...

Poissa harmie

  • Valvoja
  • *
  • Viestejä: 2762
  • Sukupuoli: Mies
Vs: Scriptin kirjoitus
« Vastaus #10 : 16.12.2020 - klo:15:36 »
raija@localhost:~> cd /share
raija@localhost:/share> l
yhteensä 0
drwxrwxrwx 1 root root  56 16.12. 14:36 ./
drwxr-xr-x 1 root root 242 11.12. 23:23 ../
-rw------- 1 qemu qemu   0 16.12. 14:40 mintissä-tehty-tiedosto.txt
raija@localhost:/share> cat mintissä-tehty-tiedosto.txt
cat: mintissä-tehty-tiedosto.txt: Lupa evätty

raija@localhost:/share>
raija@localhost:/share>

Hostissa raija on lisätty qemu ryhmään. Yritetty myös luoda toinen käyttäjä Mintiin  :(
Yritykseni on siis jotenkin saada Mintistä tehty tiedosto/hakemisto avautumaan myös openSUSEn puolella (toisin päin toimii eli Mint pysyy avaamaan openSUSEta tehdyn tiedoston jne).
Se, että olet qemu ryhmässä ei auta tuossa tapauksessa kun tuolle tiedostolle on luku/kirjoitus -oikeus vaan omistajalle eikä muille.

Voisit kokeilla auttaako ongelmaan jos annat käyttäjällesi luvat tuohon hakemistoon seuraavasti
Koodia: [Valitse]
sudo setfacl -Rm u:raija:rwx /share

Tarkista sitten, että oikeudet tuli
Koodia: [Valitse]
getfacl /share

Poissa RaijaR

  • Jäsen
  • Viestejä: 1421
  • Sukupuoli: Nainen
Vs: Scriptin kirjoitus
« Vastaus #11 : 16.12.2020 - klo:15:54 »
Eipä onnistunut  :-\
On kyllä käsittämätön ongelma. Jos kuvitellaan, että minulla olisi useampi quest-käyttäjä, jotka eri käyttöjärjestelmissä, niin voisivatko he "vaihtaa" tiedostoja keskenään? Aprikoi Raija.

Näin siinä kävi:
raija@localhost:~> l /share/
yhteensä 4
drwxrwxrwx+ 1 root root  76 16.12. 15:45 ./
drwxr-xr-x  1 root root 242 11.12. 23:23 ../
-rw-------  1 qemu qemu  74 16.12. 15:45 testataan2.txt
-rw-------  1 qemu qemu   0 16.12. 15:42 testataan.txt
drwx------  1 qemu qemu  18 16.12. 15:42 .Trash-1000/
raija@localhost:~> cat /share/testataan2.txt
cat: /share/testataan2.txt: Lupa evätty
raija@localhost:~>
raija@localhost:~> getfacl /share
getfacl: Removing leading '/' from absolute path names
# file: share
# owner: root
# group: root
user::rwx
user:raija:rwx
group::rwx
mask::rwx
other::rwx

raija@localhost:~>
Muoks:
Listätään vielä näma tulosteet:
localhost:~ # getfacl /share/*
getfacl: Removing leading '/' from absolute path names
# file: share/testataan.txt
# owner: qemu
# group: qemu
user::rw-
group::---
other::---

# file: share/testataan2.txt
# owner: qemu
# group: qemu
user::rw-
group::---
other::---


====================================================
Löysin qemu.conf -tiedostosta ao. tiedon (jota en tietenkään oikein ymmärrä, enkä uskalla mennä paljon pätsäämäänkään. Toki kävin vaihtamassa "root" -> "raija" -ei apua:

Koodia: [Valitse]
# The default security driver is SELinux. If SELinux is disabled
# on the host, then the security driver will automatically disable
# itself. If you wish to disable QEMU SELinux security driver while
# leaving SELinux enabled for the host in general, then set this
# to 'none' instead. It's also possible to use more than one security
# driver at the same time, for this use a list of names separated by
# comma and delimited by square brackets. For example:
#
#       security_driver = [ "selinux", "apparmor" ]
#
# Notes: The DAC security driver is always enabled; as a result, the
# value of security_driver cannot contain "dac".  The value "none" is
# a special value; security_driver can be set to that value in
# isolation, but it cannot appear in a list of drivers.
#
#security_driver = "selinux"
#security_driver = "apparmor"

# If set to non-zero, then the default security labeling
# will make guests confined. If set to zero, then guests
# will be unconfined by default. Defaults to 0.
#
# SUSE Note:
# Currently, Apparmor is the default security framework in SUSE
# distros.  If Apparmor is enabled on the host, libvirtd is
# generously confined but users must opt-in to confine qemu
# instances.  Change this to a non-zero value to enable default
# Apparmor confinement of qemu instances.
#
#security_default_confined = 1

# If set to non-zero, then attempts to create unconfined
# guests will be blocked. Defaults to 0.
#security_require_confined = 1

# The user for QEMU processes run by the system instance. It can be
# specified as a user name or as a user id. The qemu driver will try to
# parse this value first as a name and then, if the name doesn't exist,
# as a user id.
#
# Since a sequence of digits is a valid user name, a leading plus sign
# can be used to ensure that a user id will not be interpreted as a user
# name.
#
# Some examples of valid values are:
#
#       user = "qemu"   # A user named "qemu"
#       user = "+0"     # Super user (uid=0)
#       user = "100"    # A user named "100" or a user with uid=100
#
#user = "root"
« Viimeksi muokattu: 16.12.2020 - klo:16:05 kirjoittanut RaijaR »
Pöytäkone ASUS ExpertCenter PN52, Tumbleweed, jossa nippu distroja QEMU/KVM:ssä.
Ja Väinö-minibulli :D
Huom! Kirjoitusvihreet tulee jostain aravuudesta...

Poissa harmie

  • Valvoja
  • *
  • Viestejä: 2762
  • Sukupuoli: Mies
Vs: Scriptin kirjoitus
« Vastaus #12 : 16.12.2020 - klo:16:08 »

Poissa RaijaR

  • Jäsen
  • Viestejä: 1421
  • Sukupuoli: Nainen
Vs: Scriptin kirjoitus
« Vastaus #13 : 16.12.2020 - klo:18:12 »
Olen näämmä luonut Mapped  :-[
Tuo oli paras arvaukseni, kun Passtrough ei ollut mahdollisuutta valita.
Valitsin "Hypervisor oletus", joka osoittautuikin sitten Passtrough:ksi. Meni vielä tällä vielä hullummaksi. Kummastakaan päästä ei pysty avamaan mitään. Guestissa on user:rtkit ja group:input
Hostissa tilanne on entinen.

Tällä loin (oma tekele):

1.Luo ensiksi Host hakemisto:

sudo mkdir /share
sudo chmod 777 /share

2.Luo uusi tiedostojärjestelmä graafisesti Guestissa, joka on suljettu:

Mount
Mapped
/share
/mountpoint

3a. Tarkista, että ao. moduulit löytyy modules-tiedostosta. Jos ei: sudo nano /etc/initramfs-tools/modules

9p
9pnet
9pnet_virtio

3b. Päivitä initramfs:

sudo update-initramfs -u

4. Lisää fstabbin rivi: sudo nano /etc/fstab

/mountpoint   /share    9p  trans=virtio,version=9p2000.L,rw    0   0

5. Jos ei fstabin pätsäys toimi, niin mountaa zydeemi käsipelillä:

sudo mount -t 9p -o trans=virtio,versio=9p2000.L,rw /mountpoint /share






Pöytäkone ASUS ExpertCenter PN52, Tumbleweed, jossa nippu distroja QEMU/KVM:ssä.
Ja Väinö-minibulli :D
Huom! Kirjoitusvihreet tulee jostain aravuudesta...

Poissa harmie

  • Valvoja
  • *
  • Viestejä: 2762
  • Sukupuoli: Mies
Vs: Scriptin kirjoitus
« Vastaus #14 : 16.12.2020 - klo:19:55 »
No vaikuttas olevan ok joten enpä nyt enempää osaa auttaa ja ei kauhean tuttu ole toi qemu. Siirryt virtualboxiin niin johan toimii :)

Poissa RaijaR

  • Jäsen
  • Viestejä: 1421
  • Sukupuoli: Nainen
Vs: Scriptin kirjoitus
« Vastaus #15 : 16.12.2020 - klo:22:15 »
Samaa mieltä.

Harmittaa, että meni saman tien hyvä LinuxMint 20 ja toimiva Windows 10.
Meni muuten niin solmuun toi qemu, että guestit hävisi kokonaan  listalta >:( Hyvä että openSUSE vielä käynnistyi. Alkoi niin tympimään koko rytökasa, että poistin juuria myöten.

Kiitos kärsivällisyydestä! 
Pöytäkone ASUS ExpertCenter PN52, Tumbleweed, jossa nippu distroja QEMU/KVM:ssä.
Ja Väinö-minibulli :D
Huom! Kirjoitusvihreet tulee jostain aravuudesta...