[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: How to detect if inside a buildd chroot



Roger Leigh wrote:
> You can't reliably (or portably) check if you are in a chroot. 
Hmm, if you're root you probably can. Something like this (completely
untested; probably doesn't even compile):

    DIR *d;
    int fd;
    struct stat s1, s2;

    mkdir("temp", 0700);
    d = opendir("/");
    fd = dirfd(d);
    fstat(fd, &s1);

    chroot("temp");
    fchdir(fd);
    stat("..", &s2);


    if (s1.st_dev != s2.st_dev || s1.st_ino != s2.st_ino) {
    	/* we were in a chroot */
    }
      

Actually, come to think of it, I wonder if stat'ing "/.." would work...
If it does, then you don't even need root.



Reply to: