On Tuesday 08 June 2010 19:04:21 Paul Rogers wrote: > You can minimize the interval with "ln -sf bash /bin/sh". Then it > stomps on the old link to dash and there's no appreciable interval when > there's no /bin/sh--but it's still not to be advised when it's a shell > something in your tty branch might have run you're messing with!
This is somewhat true. The running shell will not be affected. Subsequent attempts to run that shell will fail. It's been a long time since shell scripts were 'cached' in the filesystem such that editting a script would cause the running script to fail. And it's likely been nearly as long since an executing binary has been 'cached' on its filesystem. Linux deletes the file from the FS, but keeps it available to all processes that have it open. It is deleted and forgotten when the last open FD is closed. So if you are running /bin/bash and you delete /bin/bash, your shell will continue to run until it closes the FD that has /bin/bash opened. Put differently, it is deleted from the FS directory and from the in-cache directory, but it cannot be deleted completely until the last process closes the FD. In a way, it is an orphan during the interim; it cannot be opened anew, but it can continue to be processed until the last FD that has it open is closed. So, in the case that spawned this thread, the used could have continued to use his shell, albeit vey carefully and judiciously, until he exitted that shell. Even if he performed an 'rm -rf /', his shell would continue to run and he would continue to be able to use shell built-ins until he exitted that shell. At that point, only the root directory, '.' and '..' would be accessible. Confused? Read up on tmpfs and how initramfs works. Hint: they both work with *no* filesystem structure, just directories and files with no backing store. They're one step removed from a RAM disk with a file structure layered on top. Were I to agree with software patents, this might be one of them. Another hint: it is what allows LiveCD Linux systems to run completely in RAM. Also read up on how file access works. When you open a file, you do not open the file on disk (normally). You ask the system to open the file for you. It creates an entry in the cache directory for that file, pages the file into memory over time, and allows you to access the file. When you close the file, it stays in cache until something else needs the memory more urgently. -- http://linuxfromscratch.org/mailman/listinfo/lfs-support FAQ: http://www.linuxfromscratch.org/lfs/faq.html Unsubscribe: See the above information page