http://qs321.pair.com?node_id=291807

belize has asked for the wisdom of the Perl Monks concerning the following question:

How is the ownership of a directory created with the "mkdir" function determined on a shared server? Sometimes it goes to "root" and other times to the user. Is it a configuration within the server and has nothing to do with Perl or can it be set within a Perl program?
  • Comment on How is the owner of a directory created with MKDIR determined?

Replies are listed 'Best First'.
Re: How is the owner of a directory created with MKDIR determined?
by Abigail-II (Bishop) on Sep 16, 2003 at 13:27 UTC
    I don't know how it works on non-Unix systems, but on Unix, the owner will be the EUID of the process. That is, if the process at the moment of the mkdir has root priviledges, the new directory will be owned by root. Otherwise, it will be owned by whichever user the process was running as.

    This is indeed something that has nothing to do with Perl, but all with the OS. It's unclear to me what you mean by "server". (Disk server? FTP server? Mail server? NFS server? NIS server? Application server? Database server? Jumpstart server? Media server? Quake server?) Not that that is relevant. Some, insecure, OSses allow you to "give away" files, but more secure OSses will not allow you to determine who owns files or directories.

    Abigail

      Very true, some implementations of NFS also will squash unknown users (UID 412 on the local server does not exist on the remote server so file created by user id 412 over nfs can be squashed to nobody's UID). this is also the default behavior for root's UID on files created accross NFS. You can disable this with the share/export and the mount options but it opens up some pretty severe security issues... If the OP would be more clear on the actual servers/protocols used we can give better answers. and aye this has nothing to do with perl.

      -Waswas
Re: How is the owner of a directory created with MKDIR determined?
by jasonk (Parson) on Sep 16, 2003 at 13:25 UTC

    It will be owned by the user the program is running as. If the directory is sometimes owned by root, then it is probably that you are sometimes running the script as root.


    We're not surrounded, we're in a target-rich environment!
(z) Re: How is the owner of a directory created with MKDIR determined?
by zigdon (Deacon) on Sep 16, 2003 at 14:33 UTC
    Depending what you mean by "shared" server? NFS? SMB? something else? Some file systems don't support ownership, or at least not in the same way that a unix fs supports it. In that case, the "apparent" ownership of the files on the server might be determined by the process that mounted the directories on your desktop, or by some mount option.

    -- zigdon

Re: How is the owner of a directory created with MKDIR determined?
by jonnyfolk (Vicar) on Sep 16, 2003 at 13:39 UTC
    mkdir $dir_name, 0777 unless -d $dir_name; gives 755 permissions with standard umask 22.

    Comment: Oops - read question! 'pologies...

      Well, yeah, but what has file permission to do with ownership?

      Abigail