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
423
Vastaukset
- AnonyymiWindows on hankala tapaus. 
- AnonyymiOlethan 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... - AnonyymiOta 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.- AnonyymiEt sä mistään mitään tiedä! 
 
- AnonyymiHakemiston 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
- AnonyymiYleensähän 'systeemilevyllä' ei tehdä mitään datan käsittelyä. 
 Kaikki data 'user´ alueella.
- AnonyymiMikset 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. - AnonyymiKyseessä 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.
- AnonyymiAnonyymi 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. 
- AnonyymiAnonyymi 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.
- AnonyymiAnonyymi 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.- AnonyymiWindowssi 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.
- AnonyymiAnonyymi 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
- Sanna Marin teki sen, mihin muut eivät pystyneet - sote kerralla maaliinYli 15 vuotta Suomessa vatvottu sote-uudistus meni lopulta läpi Sanna Marinin hallituksen aikana. Edeltävät hallitukset605130
- Enää viisi yötä Sannan kirjaanIhan täpinöissään tässä odotellaan. Vaikea pysytellä aloillaan, kun koko ajan tekisi mieli jo kirjakauppaan rynnätä, mut283749
- Marinin hallitus hyväksyi soten (105-77) vuonna 2021vastaan äänesti Kok, persut, KD, Liike Nyt. Nyt on sitten käynyt niin kuin on käynyt. Pääkirjoitus: Sanna Marin jätti713500
- Lehtinen: "Oli demareidenkin onni, että valkoiset voittivat sodan 1918"Lasse Lehtisen mukaan vasemmalla on radiohiljaisuus hänen uutuuskirjastaan, "Läheltä piti. Kansakunnan hurjat hetket" L1012858
- SDP:n valtuutettu valehtelee koulutuksensaSDP:n helsinkiläinen kaupunginvaltuutettu Mahad Ahmed käyttää maisterin titteliä suoritettuaan 60 opintopisteen epäviral942752
- IL - 100 000 potentiaalista sotilasta pakeni Ukrainasta!"Ukrainasta nuorten miesten joukkopako Liki 100 000 asevelvollisuusikäistä miestä on poistunut Ukrainasta parin viime k302690
- Anteeksi TAamulla olit iloisena huomenta toivottamassa ja minä naama mutrussa sanoi huomenet takaisin. Tajusin vasta yläkerrassa131921
- En mä tahallani ole näin hankala.Mulla oli kuusi vuotta sitten vähän samanlainen tilanne ja se päättyi huonosti. Ilmeisesti kuvittelin kaiken silloin ta161716
- Harmittaako mies, että yhteys katkesi?Olisitko halunnut, että olisi säilynyt jonkinlainen yhteys vai oliko parempi polttaa sillat takana?2021508
- 1551380