Permissions at creating directory


#1

Why a new directory is ignoring my permissions?

Dir.mkdir(‘foo’, 711)

It’s created with 755, the permissions by deafult of my system. My
umask is to 0022.


#2

Instead of 711, try 0711.

~mm


#3

On 14 oct, 19:14, Michael M. removed_email_address@domain.invalid wrote:

Instead of 711, try 0711.
I had tried too as with 0700 but nothing.


#4

Kless wrote:

Why a new directory is ignoring my permissions?

Dir.mkdir(‘foo’, 711)

It’s created with 755, the permissions by deafult of my system. My
umask is to 0022.

So what’s “your system”? (i.e. OS and Ruby version)

It Works For Me [TM]. This is Ubuntu Dapper with its default Ruby:

irb(main):001:0> RUBY_VERSION
=> “1.8.4”
irb(main):002:0> “%o” % File.umask
=> “22”
irb(main):003:0> Dir.mkdir “foo1”
=> 0
irb(main):004:0> ls -ld foo1
=> “drwxr-xr-x 2 candlerb candlerb 4096 2008-10-15 09:31 foo1\n”
irb(main):005:0> Dir.mkdir “foo2”, 0700
=> 0
irb(main):006:0> ls -ld foo2
=> “drwx------ 2 candlerb candlerb 4096 2008-10-15 09:31 foo2\n”
irb(main):007:0>

but I get the same with 1.8.6p114 built from source under Ubuntu Hardy.

What happens if you try to chmod the directory after creating it? What
filesystem are you trying to create this directory in?

If you have a Linux box but are creating files in a mounted MS-DOS
filesystem (typically the case for a memory stick) then you’ll get the
same Unix mode bits for everything, as the filesystem doesn’t store
them.

HTH,

Brian.


#5

On 15 oct, 09:37, Brian C. removed_email_address@domain.invalid wrote:

It Works For Me [TM]. This is Ubuntu Dapper with its default Ruby:
=> 0
filesystem (typically the case for a memory stick) then you’ll get the
same Unix mode bits for everything, as the filesystem doesn’t store
them.

HTH,

Brian.

Posted viahttp://www.ruby-forum.com/.

Thanks! You gave me the idea.

The problem is that I’m trying to create a subdirectory, anything as
‘./foo/bar’. If it’s tryed in irb, it gives a failure.

But I was calling it since a JRuby program where it’s created
correctly except for the mode.