summaryrefslogtreecommitdiffstats
path: root/docs/security-blueprint/part-5/2-SystemD.md
diff options
context:
space:
mode:
authorStephane Desneux <stephane.desneux@iot.bzh>2018-10-16 13:10:46 +0200
committerStephane Desneux <stephane.desneux@iot.bzh>2018-10-16 13:13:14 +0200
commit0eba225fb27ec0b87bfa80361314fec5ab901caa (patch)
tree02baf13e25b4d8989dc25051ff7ce3256ffb7bbd /docs/security-blueprint/part-5/2-SystemD.md
parent536b42be464af2f29fc5061489821c8903a6690a (diff)
Import from docs-agl/docs
Change-Id: Id524561d87410e5463cddd123b30eb63d75b62bd Signed-off-by: Stephane Desneux <stephane.desneux@iot.bzh>
Diffstat (limited to 'docs/security-blueprint/part-5/2-SystemD.md')
-rw-r--r--docs/security-blueprint/part-5/2-SystemD.md60
1 files changed, 60 insertions, 0 deletions
diff --git a/docs/security-blueprint/part-5/2-SystemD.md b/docs/security-blueprint/part-5/2-SystemD.md
new file mode 100644
index 0000000..35abe16
--- /dev/null
+++ b/docs/security-blueprint/part-5/2-SystemD.md
@@ -0,0 +1,60 @@
+# SystemD
+
+`afm-system-daemon` is used to:
+
+- Manage users and user sessions.
+- Setup applications and services (_CGroups_, _namespaces_, autostart, permissions).
+- Use of `libsystemd` for its programs (event management, **D-Bus** interface).
+
+<!-- section-config -->
+
+Domain | Object | Recommendations
+------------------ | -------------- | ------------------------------------
+Platform-SystemD-1 | Security model | Use Namespaces for containerization.
+Platform-SystemD-2 | Security model | Use CGroups to organise processes.
+
+<!-- end-section-config -->
+
+See [systemd integration and user management](http://iot.bzh/download/public/2017/AMM-Dresden/AGL-systemd.pdf) for more information.
+
+## Benefits
+
+- Removal of one privileged process: **afm-user-daemon**
+- Access and use of high level features:
+
+ - Socket activation.
+ - Management of users and integration of **PAM**.
+ - Dependency resolution to services.
+ - `Cgroups` and resource control.
+ - `Namespaces` containerization.
+ - Autostart of required API.
+ - Permissions and security settings.
+ - Network management.
+
+<!-- pagebreak -->
+
+## CGroups
+
+Control Groups offer a lot of features, with the most useful ones you can
+control: Memory usage, how much CPU time is allocated, how much device I/O is
+allowed or which devices can be accessed. **SystemD** uses _CGroups_ to organise
+processes (each service is a _CGroups_, and all processes started by that
+service use that _CGroups_). By default, **SystemD** automatically creates a
+hierarchy of slice, scope and service units to provide a unified structure for
+the _CGroups_ tree. With the `systemctl` command, you can further modify this
+structure by creating custom slices. Currently, in AGL, there are 2 slices
+(**user.slice** and **system.slice**).
+
+## Namespaces
+
+### User side
+
+There are several ways of authenticating users (Key Radio Frequency, Phone,
+Gesture, ...). Each authentication provides dynamic allocation of **uids** to
+authenticated users. **Uids** is used to ensure privacy of users and **SMACK**
+for applications privacy.
+
+First, the user initiates authentication with **PAM** activation. **PAM**
+Standard offers highly configurable authentication with modular design like
+face recognition, Voice identification or with a password. Then users should
+access identity services with services and applications.