Nyt tuli vastaan ongelma!
Teen ohjelmistokehitystä suosikkityövälineelläni Windows10 -käyttöjärjestelmässä.
MUTTA:
Windows10:n sisäänrakennettu kansiotason tiedostosuojaus estää minua tekemästä haluamaani asiaa.
Ongelman voisi ehkä kiertää ajamalla suosikkityövälineeni IDEä Admin -oikeuksin, mutta tämä ei yleensä ole oikea tapa ratkaista ongelmaa !
Eli ongelmana on työvälineen (johon kuuluu kääntäjä) mukana tulleet lähdekooditiedostot ja niiden kansiotason suojaus !
Aluksi ongelmana oli se, että em. suojauksen takia IDE ei voi tehdä näin:
1. Lue Lähdekoodi.normaalipääte
2. Muokkaan koodia editorissa ja painan tallenna, mutta nyt alkavat ongelmat!
3. Tallenna käskyn saatuaan työväline yrittää toimia suunnilleen näin (jos "tee backup -kopioita" -optio on päällä, kuten se oletuksena on):
a) ren Lähdekoodi.normaalipääte Lähdekoodi.bak
b) tallenna muokattu lähdekoodi nimellä Lähdekoodi.normaalipääte
Jos IDEä ei ajeta pääkäyttäjän oikeuksin, niin edellämainittu ei onnistu tuon kansiotason suojauksen takia, ja yritys tallentaa epäonnistuu !
Luulin voivani kiertää ongelman laittamalla IDE:n asetuksista tuon "tee backup -kopioita" -option pois päältä.
MUTTA:
Tälläin IDE yrittää Tallenna -komennon saatuaan toimia näin:
a) tallenna muokattu lähdekoodi nimellä "Lähdekoodi.NEW"
b) Vasta kun tallennus kohdassa a on onnistunut, deletoi alkuperäinen Lähdekoodi.normaalipääte ja sitten uudelleennimeä "Lähdekoodi.NEW" nimelle Lähdekoodi.normaalipääte
Mutta tässä törmätään aivan samaan ongelmaan:
Windows10:n Kansiotason suojaus estää tallentamasta tiedostoa "Lähdekoodi.NEW" -ja kun IDE huomaa tämän, tallennusyritys epäonnistuu !
Yritin ratkaista ongelmaa näin:
1. aja cmd.exe admin -oikeuksin.
2. pääkäyttäjän komentoriviltä:
explorer.exe /nouaccheck
Ja lopuksi avautuneesta Explorer.exe:stä (Windows tiedostonhallinta, jonka ainakin pitäisi olla ajossa admin -oikeuksin):
Valitse kansion ikoni, klikkaa hiiren oikealla napilla ja Properties / Ominaisuudet.
Poista Read only -valinta. ja vastaa windowsin tarkennuskysymykseen: koskee kaikkia alikansioita ja tiedostoja.
Apply / Käytä
MUTTA
Explorer.exe kieltäytyy tekemästä haluttua asiaa !
Eli en saa asetettua kansiota niin, että normaalikäyttäjällä on siihen myös kirjoitusoikeudet !
Jos IDEn saisi vain tallentamaan tiedoston samalla nimellä korvaten vanhan, se EHKÄ saattaisi auttaa... mutta parempi, jos jotenkin saisi tuon kansiotason suojauksen POIS !
Kyse ei siis ole yksittäisestä "read only" -tiedostosta, vaan siitä, että C:\Program Files (x86)\
kansio JA KAIKKI SEN ALIKANSIOT ovat oletuksena sellaisia, että vain pääkäyttäjä voi niihin kirjoittaa !
Tämä siis (ikävä kyllä) koskee myös niitä alikansion alikansioita, joissa ei edes ole yhtään EXE tai DLL -tiedostoa, vaan ainoastaan lähdekooditiedostoja.
Saako tuota kansiotason suojausta pois mitenkään ja jos, niin miten ?
ja myös:
Jos käynnistän ensin admin -oikeuksin cmd.exe (tämä onnistuu; sen näkee siitä, että ikkunapalkissa lukee "Administrator: Command Prompt"), niin:
kun pääkäyttäjän komentoriviltä:
explorer.exe /nouaccheck
niin miten tarkistan, onko avautuneella explorer.exe:llä todella pääkäyttäjäoikeudet vai eikö ole ?
Windows 7:ssä kun avaa Task Managerin, niin siellä on (tai voi lisätä sarakkeen) "User" ja siellä näkyy joko "Minä" tai "SYSTEM" prosessin omistajana.
En nyt muista, että tuleeko prosessin omistajaksi SYSTEM jos ajaa prosessin pääkäyttäjäoikeuksin.
Mutta: Windows 10:ssä ei ole enkä saa lisättyä "User" -saraketta, sensijaan sinne saa sarakkeet "Type" ja "Status".
Toistaiseksi ongelmaan ei ole löytynyt ratkaisua !
Luin nämä, mutta näistä ei ollut apua:
https://www.partitionwizard.com/partitionmanager/run-file-explorer-as-admin.html
https://www.tenforums.com/tutorials/85640-set-unset-read-only-attribute-files-folders-windows-10-a.html
Kansiotason tiedostosuojaus - miten pois ?
15
315
Vastaukset
- Anonyymi
Windows on hankala tapaus.
- Anonyymi
Olethan tarkistanut sen mahdollisuuden, että ongelman aiheuttaja onkin käyttämäsi virustutka. Muistan hämärästi takavuosien jostain tiedostojen käyttöoikeus-ongelmasta, mikä lopulta ratkesi sillä että taustalla toimintaa valvovasta virustutkasta kytki pois jonkin automaattisesti päällä olevan ominaisuuden. Ikävä kyllä tarkempia yksityiskohtia en enää muista, mutta olisikohan se ollut joku kiristysohjelmien torjuntaan liittyvä ominaisuus...
- Anonyymi
Ota kauha pois.
> Kyse ei siis ole yksittäisestä "read only" -tiedostosta, vaan siitä, että C:\Program Files (x86)\ kansio JA KAIKKI SEN ALIKANSIOT ovat oletuksena sellaisia, että vain pääkäyttäjä voi niihin kirjoittaa !
Ei niitä lähdekoodeja ole tarkoitus tallentaa kansion C:\Program Files (x86) alle vaan jonnekin muualle, esimerkiksi oman kotikansion alle.- Anonyymi
Et sä mistään mitään tiedä!
- Anonyymi
Hakemiston käyttöoikeudet pitää sallia kyseiselle käyttäjälle. Alihakemistot sitten perii tai eivät peri niitä samoja oikeuksia asetuksesta (inheritance) riippuen.
https://www.tenforums.com/tutorials/88305-enable-disable-inherited-permissions-objects-windows.html - Anonyymi
Yleensähän 'systeemilevyllä' ei tehdä mitään datan käsittelyä.
Kaikki data 'user´ alueella. - Anonyymi
Mikset yksinkertasesti käytä projektihakemistona sellasta hakemistoa mihin sulla on täydet oikeudet? Tai mikset muuta niitä hakemistojen käyttäjäoikeuksia? Ohjelmistokehittäjä muka ja on noin avuton tuollaisessa asiassa.
- Anonyymi
Kyseessä ei ole ohjelmistokehittäjä vaan aloittelija.
Ensimmäinen askel olisi valita työvälineet oikein ja käyttää niitä oikein, ennen kuin kirjoittaa riviäkään koodia. - Anonyymi
Anonyymi kirjoitti:
Kyseessä ei ole ohjelmistokehittäjä vaan aloittelija.
Ensimmäinen askel olisi valita työvälineet oikein ja käyttää niitä oikein, ennen kuin kirjoittaa riviäkään koodia.ATK:ssa voi tehdä eri päin. Tiedät mitä sulla onpi käytössä, ja loppu on vain oman pääkopan kertomista taidoista kiinni. Ei siis tartte mennä erikseen ensin työkaluostoksille. Hylsysarjastakaan ei tartte elinaikanaan kuin muutamia osia.
- Anonyymi
Anonyymi kirjoitti:
ATK:ssa voi tehdä eri päin. Tiedät mitä sulla onpi käytössä, ja loppu on vain oman pääkopan kertomista taidoista kiinni. Ei siis tartte mennä erikseen ensin työkaluostoksille. Hylsysarjastakaan ei tartte elinaikanaan kuin muutamia osia.
Työkalut valitaan hommien mukaan.
Sahalla ei vasaroida nauloja. Siihen käytetään vasaraa. Nauloja ei myöskään vasaroida jos on tarkoitus hioa pinta kiiltäväksi.
Eli kyllä sitä ensiksi pitää tietää mitä haluaa, sitten valitsee työkalut sen mukaan ja käyttää niitä oikein. - Anonyymi
Anonyymi kirjoitti:
ATK:ssa voi tehdä eri päin. Tiedät mitä sulla onpi käytössä, ja loppu on vain oman pääkopan kertomista taidoista kiinni. Ei siis tartte mennä erikseen ensin työkaluostoksille. Hylsysarjastakaan ei tartte elinaikanaan kuin muutamia osia.
Olen sama kirjoittaja kuin tuo joka kertoi työvälineistä aloittelijalle, että aloittajan olisi hyvä sisäistää Windowsin suunnittelufilosofia.
Windows on suunniteltu niin, että se päivittyy vähintään kerran vuoden uudemmaksi. Tässä Windows 10:n eri versiot: https://en.wikipedia.org/wiki/Windows_10_version_history
Se että tuo onnistuu, edellyttää sitä että käyttäjällä ei ole oikeastaan mitään asiaa kotikansion ulkopuolelle. Pääkäyttäjän oikeuksia kysytään lähinnä kun siihen asennetaan joku MS Office ja tehdään käyttäjätilit. Muutokset kun on eristetty oikeuksilla tavalliselle käyttäjätilille, päivittyminen onnistuu vaivatta.
Toisekseen pitää ymmärtää Windowsin nykyinen tietoturvamalli, että siinähän on vahvasti sitä sipulimallia mukana. Pääkäyttäjätasoll ei ole tarkoitus edes mennä pahemmin, ja tavallisella käyttäjätilillä on sovellukset. Lisäksi natiivisovelluksissa on hiekkalaatikointia (Windows Runtime), niitä kirjoitetaan tavukoodiympäristöillä jotka suojaavat muistia ja kun sovellusta ajetaan Edgellä, Edge on hiekkalaatikoitu, Edgen sisällä ajoympäristö on hiekkalaatikoitu ja Edgen sisällä tavukoodiympäristössä ei mitään pointtereita ole.
Koko homman ideana on se, että sen lisäksi että päivittäminen käy sujuvasti, on huomioitavissa että aina käyttöjärjestelmän päivitystä ei pysty tekemään!
Tämä tietoturvamalli pitää silti käyttäjää varsin hyvin suojassa sillä vaikka Windows 10:n päivitykset loppuvat ensi vuoden kesällä, MS Office, Edge ja Microsoftin sovellukset Windows storesta todennäköisesti päivittyvät sen jälkeen vielä pari vuotta.
Eli vaikka käyttöjärjestelmän päivitykset eivät onnistuisi, pystyy sitä silti käyttämään nykypäivänä varsin turvallisesti pitkään kaikkien hiekkalaatikoitujen sovellusten päivittyessä ja ne pysyvät yhteensopivina käyttöjärjestelmien versiokirjossa.
Kysymys on siis lähinnä siitä, että haluaako aloittaja tehdä toimivia ohjelmia vai paskoja ohjelmia.
- Anonyymi
"Ongelman voisi ehkä kiertää ajamalla suosikkityövälineeni IDEä Admin -oikeuksin, mutta tämä ei yleensä ole oikea tapa ratkaista ongelmaa !"
Ei ikinä.
Suosittelen käyttämään Windows 10:ssä Microsoftin Visual Studio Codea jonkun vanhan sijasta. Se asentuu siististi normaalikäyttäjän oikeuksilla kotikansioon ja siinä ei ole ongelmia.
Lisäksi mitään .bak tiedostojen tekemistä ei tarvitse. Tuota varten on versionhallinta ja Visual Studio Code toimii hienosti Git:n kanssa.
"Eli en saa asetettua kansiota niin, että normaalikäyttäjällä on siihen myös kirjoitusoikeudet !"
Älä käytä sitä explorer.exe:ä pääkäyttäjänä. Normaalikäyttäjä voi kirjoittaa kotikansioon tiedostoja ongelmitta.
"Kyse ei siis ole yksittäisestä "read only" -tiedostosta, vaan siitä, että C:\Program Files (x86)\
kansio JA KAIKKI SEN ALIKANSIOT ovat oletuksena sellaisia, että vain pääkäyttäjä voi niihin kirjoittaa !"
Niin pitääkin olla. Normaalikäyttäjällä kuuluu olla oikeudet vain vaikka C:\Users\Ville jos Ville on se normaalikäyttäjätili. Pääkäyttäjänä ei pidä mennä ohjelmakansiota sotkemaan.
Windows on myös viimeiset 10v toiminut niin, että jos jotain ohjelmia asentaa niin niiden ensisijainen asennuspaikka siellä normaalikäyttäjän kansiossa. Eli missään vaiheessa ohjelman kirjoittamista, tai asennusta varten ei tarvitse pääkäyttäjän oikeuksia.
Jos ohjelmoi Windowsiin asennettavia ohjelmia niin natiivia voi tehdä Microsoftin Visual Studiolla ja siirrettäviä ohjelmia Visual Studio Codella, jolloin niitä voi ajaa vaikka Electronilla tai NodeJS:llä jotka ovat Microsoftin suosimia tekniikoita. Ohjelman kehitys ja ajaminen voidaan tehdä silloin puhtaasti kotikansiossa.
Electroniin kääritty ohjelma tosin syö muistia sillä se sisältää kopion selainmoottorista mutta NodeJS:llä voi tehdä kevyitä ohjelmia joita ajaa valmiina löytyvällä Edgellä. Edgeen voi integroida helposti ohjelman etusivulta " " napista ja syöttämällä ohjelman urlin localhostista.
"Saako tuota kansiotason suojausta pois mitenkään ja jos, niin miten ?"
Jos sen saa rikottua, se helposti menee takaisin itsestään parin kuukauden kuluttua Windowsin päivittyessä. Windowsin päivitys kun asentaa uuden version Windowsista niin voi siinä kohtaa tarkistaa että siellä ei ole mitään rikki.- Anonyymi
Windowssi on lähtökohtaisesti yhden käyttäjän työasema. Sitä voi huoletta ajella administraattorina. Joutuu sen joka tapauksessa säännöllisesti asentamaan uudelleen.
Vaan koodari laittaa tietenkin nykyään W10:iin WSL2:n, johon sitten vaikka Debianin, jolla voi alkaa tekemään standardin mukaisia Dockerilla pyöriviä sovelluksia ilman Docker desktoppia. VSCode toimii tuossa käytössä loistavasti editorina. - Anonyymi
Anonyymi kirjoitti:
Windowssi on lähtökohtaisesti yhden käyttäjän työasema. Sitä voi huoletta ajella administraattorina. Joutuu sen joka tapauksessa säännöllisesti asentamaan uudelleen.
Vaan koodari laittaa tietenkin nykyään W10:iin WSL2:n, johon sitten vaikka Debianin, jolla voi alkaa tekemään standardin mukaisia Dockerilla pyöriviä sovelluksia ilman Docker desktoppia. VSCode toimii tuossa käytössä loistavasti editorina.No ei.
Windows 10:ssä mekanismi on se, että se asennetaan järjestelmän valvojana ja sitten sitten siihen lisätään käyttäjätilit. Windows tekee lisäksi eroa sen suhteen onko käyttäjätili henkilökohtainen, yrityksen vai vierastili.
Idea siis se, että kun asentaa Windows 10:n pääkäyttäjänä niin siihen sen jälkeen voi lisätä Ville henkilökohtainen tili, Villen työtili ja vierastili jos läppärin ojentaa toiselle googlettamista varten. Työtilejäkin voi olla useampi jos tekee useampaan firmaan töitä niin ei ole sähköpostit sekaisin sitten.
Windows 10:llä WSL2 on tosiaankin oikea tapa jos tekee taustajärjestelmiä standardin mukaisesti. Desktopille voi sitten tehdä suoraan natiivisti tai Electron/NodeJS.
Sehän ei haittaa mitään, että NodeJS:llä hostaa paikallisesti sovellusta kirjoitettaessa. Saa pidettyä ympäristön hyvin kevyenä. Etenkin kun softan kirjoitus on alkuvaiheissa pääsee suoraan hommiin kiinni ja sitä ympäristöä voi sitten säätää paremmaksi.
Ketjusta on poistettu 2 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Tyttäreni kuoli lihavuusleikkaukseen.
Miettikää kuiten 2 kertaa, ennenkuin menette lihavuusleikkaukseen.2354471- 1242214
Suomessa on valittava 2 lucia neitoa...
Maahanmuuttajille oma lucia neito ja Suomalaisille oma SUOMALAINEN Lucia neito....sama juttu on tehtävä miss Suomi kisoi2191862Viiimeinen viesti
Sinulle neiti ristiriita vai mikä nimesi sitten ikinä onkaan. Mulle alkaa riittää tää sekoilu. Oot leikkiny mun tunteill641794- 1801660
Analyysiä: Kiuru-keissi oli ja meni - demarit hävisi tässäkin
Tapauksen tultua julki alkoi demarit ja muu vasemmisto selittään, että tämä oli poliittista väkivaltaa, siis ennen kuin1871513- 541364
- 611298
Olet tärkeä
mutta tunnen jotain enemmän ja syvempää. Jos voisinkin kertoa sinulle... Olen lähinnä epätoivoinen ja surullinen.751291- 1191161