I just installed FreeBSD 10.1 RELEASE on a iMac. After installing and setting up networking and installing the sudo package I used freebsd-update fetch, then freebsd-update install then I rebooted. Then Using the script below I tried creating a jail. #!/bin/sh setenv D /usr/home/nah/jail mkdir -p $D cd /usr/src make buildworld installworld DESTDIR=$D distribution DESTDIR=$D mount -t devfs devfs $D/dev After the script finishes running the system becomes broken. By broken I mean sudo returns, sudo unknown uid 1001 who are you, when you try to use it, and su returns, who are you? Looking at /etc/passwd the user I created is no longer there and root has no password anymore, But the home directory for the user is still there. If I use exit to log out and try to login with root, it logs me in with no password prompt. And trying to su to the user nah(the one deleted) returns unkown login: nah. So any ideas on why running the script above destroys my install?
(In reply to hbowden from comment #0) Your shell syntax is wrong If you run setenv D /usr/home/nah/jail in a /bin/sh shell on it's own you get # setenv D /usr/home/nah/jail setenv: not found # The correct syntax would be something like D=/usr/home/nah/jail e.g. # D=/usr/home/nah/jail # echo $D /usr/home/nah/jail # What you did was you didn't have a value for D so you overwrote your existing installation with your make buildworld/installworld/distribution
(In reply to hbowden from comment #0) setenv is used for csh, the default root shell So those instructions work if you type them into a default root shell, but when you turned it into a script and changed the shell from csh to sh, without updating the syntax, you never set D, so you ran 'make installworld' and 'make distribution' with a blank DESTDIR, which defaulted to /, overwriting your install.