About writing file?

hi, I have problem about writing file.
I use this

data = File.new("/options.sav","w")

and I get file name option.sav in my path but when I open it with
notepad. It can modify :cry: I don't want this because options.sav has
save data from my app that can't hack it! how can I write file with
can't be modified???

ยทยทยท

--
Posted via http://www.ruby-forum.com/.

Pat Kiatchaipipat wrote:

hi, I have problem about writing file.
I use this

data = File.new("/options.sav","w")

and I get file name option.sav in my path but when I open it with
notepad. It can modify :cry: I don't want this because options.sav has
save data from my app that can't hack it! how can I write file with
can't be modified???

You can't. All it needs is the correct privileges to access the file.

If you want the data to be somewhat tamper-proof, use encryption. Note,
though, that all it needs is the key to tamper with the file again. Or
you could obfuscate the file (ROT13, BASE64 encoding, what have you).
It'll be a loosing battle, though.

If you find a solution to this, the RIAA and MPAA, as well as SecuROM
would like to have a word with you, since you made DRM possible. :wink:

- --
Phillip Gawlowski
Twitter: twitter.com/cynicalryan
Blog: http://justarubyist.blogspot.com

~ "Some things don't need the thought people give them." -Hobbes

If you just want to prevent casual/accidental, rather than
determined modification, after you close the file:

File.chmod("/options.sav", 0440);

For example.

RF

Pat Kiatchaipipat wrote:

ยทยทยท

hi, I have problem about writing file.
I use this

data = File.new("/options.sav","w")

and I get file name option.sav in my path but when I open it with
notepad. It can modify :cry: I don't want this because options.sav has
save data from my app that can't hack it! how can I write file with
can't be modified???

Ron Fox wrote:

If you just want to prevent casual/accidental, rather than
determined modification, after you close the file:

File.chmod("/options.sav", 0440);

Does 0440 work on windows too?

(I think it's clear, when he meantions "notepad", and saves to the root
folder, that he's using Windows.)

ยทยทยท

--
Posted via http://www.ruby-forum.com/\.

Yes, but I did get the arguments backwards.

File.chmod(0440, "/options.sav")

Works just fine on my windows box and does set the Readonly bit when
I look at the file later. The nice thing about good high level languages, they abstract many differences in operating systems away making it easier to write portable code.

Ron.

Albert Schlef wrote:

ยทยทยท

Ron Fox wrote:

If you just want to prevent casual/accidental, rather than
determined modification, after you close the file:

File.chmod("/options.sav", 0440);

Does 0440 work on windows too?

(I think it's clear, when he meantions "notepad", and saves to the root folder, that he's using Windows.)

thx you I will try with it :slight_smile:

ยทยทยท

--
Posted via http://www.ruby-forum.com/.

It's not work! :cry:
I use that and it make read-only file that I can't modify it but when I
right click->property and check off in read-only box. it can modify!!

:frowning:

ยทยทยท

--
Posted via http://www.ruby-forum.com/.

Pat Kiatchaipipat wrote:

It's not work! :cry:
I use that and it make read-only file that I can't modify it but when I
right click->property and check off in read-only box. it can modify!!

And you will not be able to change that behavior, short of shipping your
own operating system.

- --
Phillip Gawlowski
Twitter: twitter.com/cynicalryan
Blog: http://justarubyist.blogspot.com

You thought I was taking your woman away from you. You're jealous.
You tried to kill me with your bare hands. Would a Kelvan do that?
Would he have to? You're reacting with the emotions of a human.
You are human.
~ -- Kirk, "By Any Other Name," stardate 4657.5