anti-patterns: application install in /usr/sbin

Many OpenBMC applications install targets incorrectly place applications
in /usr/sbin/

Tested: Copied into https://jbt.github.io/markdown-editor/ and
        app.grammarly.com.
Change-Id: Ia18021b68ad2392b3fa5c860af36dba25210ee4b
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
diff --git a/anti-patterns.md b/anti-patterns.md
index 1adcaec..f00607f 100644
--- a/anti-patterns.md
+++ b/anti-patterns.md
@@ -160,3 +160,38 @@
 ```
 sed -i s,/usr/bin/env ,/usr/bin/, foo.service
 ```
+
+## Placement of applications in /sbin or /usr/sbin
+
+### Identification
+OpenBMC applications that are installed in /usr/sbin.  $sbindir in bitbake
+metadata, makefiles or configure scripts.
+
+### Description
+Installing OpenBMC applications in /usr/sbin violates the [principle of least
+astonishment](https://en.wikipedia.org/wiki/Principle_of_least_astonishment) and
+more importantly violates the
+[FHS](https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard).
+
+### Background
+The sbin anti-pattern exists because the FHS was misinterpreted at an early point
+in OpenBMC project history, and has proliferated ever since.
+
+From the hier(7) man page:
+
+```
+/usr/bin This is the primary directory for executable programs.  Most programs
+executed by normal users which are not needed for booting or for repairing the
+system and which are not installed locally should be placed in this directory.
+
+/usr/sbin This directory contains program binaries for system administration
+which are not essential for the boot process, for mounting /usr, or for system
+repair.
+```
+The FHS description for /usr/sbin refers to "system administration" but the
+de-facto interpretation of the system being administered refers to the OS
+installation and not a system in the OpenBMC sense of managed system.  As such
+OpenBMC applications should be installed in /usr/bin.
+
+### Resolution
+Install OpenBMC applications in /usr/bin/.