[ wozniak /home/shared/blog/ ] $ mv thoughts pondering mv: cannot move ‘thoughts’ to ‘pondering’: Operation not permitted [ wozniak /home/shared/blog/ ] $ echo 'REWRITE!' > thoughts [ wozniak /home/shared/blog/ ] $ cat thoughts REWRITE! Security Developers design and implement programs that use this bit on executables carefully in order to avoid security vulnerabilities including buffer overruns and path injection. Successful buffer-overrun attacks on vulnerable applications allow the attacker to execute arbitrary code under the rights of the process exploited. In the event that a vulnerable process uses the setuid bit to run as root, the code will execute with root privileges, in effect giving the attacker root access to the system on which the vulnerable process is running. Of particular importance in the case of a setuid process is the environment of the process. If the environment is not properly sanitized by a privileged process, its behavior can be changed by the unprivileged process that started it. For example, GNU libc was at one point vulnerable to an exploit using setuid and an environment variable that allowed executing code from untrusted shared libraries. History The setuid bit was invented by Dennis Ritchie and included in su. His employer, then Bell Telephone Laboratories, applied for a patent in 1972; the patent was granted in 1979 as patent number . The patent was later placed in the public domain. See also References External links Chen, Hao; Wagner, David; and Dean, Drew; Setuid Demystified (pdf) Tsafrir, Dan; Da Silva, Dilma; and Wagner, David; The Murky Issue of Changing Process Identity: Revising Setuid Demystified (pdf) Pollock, Wayne; Unix File and Directory Permissions and Modes Computer security procedures Unix file system technology Patents placed into the public domain