Path: utzoo!attcan!uunet!virtech!cpcahil From: cpcahil@virtech.uucp (Conor P. Cahill) Newsgroups: comp.unix.questions Subject: Re: mkdir in C Message-ID: <1990May29.010251.13170@virtech.uucp> Date: 29 May 90 01:02:51 GMT References: <009375FC.8A3B0AC0@rigel.efd.lth.se> Reply-To: cpcahil@virtech.UUCP (Conor P. Cahill) Organization: Virtual Technologies Inc., Sterling VA Lines: 23 In article <009375FC.8A3B0AC0@rigel.efd.lth.se> e89hse@rigel.efd.lth.se writes: > > I'd like to know if there is any way for a C-program to create a directory. >The mkdir(2) call doesn't exist on the machine I'm using. It is possible to >create a directory with the mknod(2) call, but then you have to have >effective-user-id 0 (super user). Of course one could set the substitute user >flag, but isn't there a more elegant way to do it. With no mkdir() system call, the best way for a standard user level program to make a directory is to fork/exec the mkdir program. Making your program setuid to root in order to be able to create a directory can expose you to all kinds of security problems. BTW - when you ask a question like this it is best to include the exact version of the OS that you are using. Just saying that there is no mkdir() and that mknod() requires root is not enough because it is possible that you are not reading the documentation right, or that your version of the OS has some special user_can_make_a_dir() system call that will do the required job, etc. -- Conor P. Cahill (703)430-9247 Virtual Technologies, Inc., uunet!virtech!cpcahil 46030 Manekin Plaza, Suite 160 Sterling, VA 22170