feat: mirada standalone — compositor Wayland + WM sobre Llimphi (build magro)
Stack de display extraído del monorepo: compositor teselante (Cuerpo smithay + Cerebro WM agnóstico), greeter PAM, portal XDG, CLI de control. Llimphi se consume por git desde su repo publicado; las hojas compartidas (format, auth-core, rimay-localize, wawa-config, app-bus) y el widget menubar van vendorizados. Sin el asistente IA (pluma-llm) ni la barra web wasm — el compositor no los necesita. cargo check --workspace pasa (18 crates, 0 warn). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
# auth-core
|
||||
|
||||
Autenticación del escritorio. Contrato `Authenticator` agnóstico del
|
||||
backend, con dos implementaciones.
|
||||
|
||||
## Para qué
|
||||
|
||||
El greeter de carmen (mirada) necesita verificar la contraseña del
|
||||
usuario y, en éxito, saber su `uid/gid/home/shell` para arrancar la
|
||||
sesión. Eso es exactamente lo que entrega `Authenticator::authenticate`:
|
||||
|
||||
```rust
|
||||
use brahman_auth::{Authenticator, PamAuthenticator};
|
||||
|
||||
let auth = PamAuthenticator::carmen();
|
||||
match auth.authenticate("sergio", &password) {
|
||||
Ok(info) => arrancar_sesion(info), // info: UserInfo
|
||||
Err(e) => mostrar_error_en_greeter(e),
|
||||
}
|
||||
```
|
||||
|
||||
## Backends
|
||||
|
||||
- **`PamAuthenticator`** — verifica contra PAM (`/etc/pam.d/<servicio>`),
|
||||
el mismo subsistema de `login` y `sudo`. Hereda lo que el
|
||||
administrador configure ahí (2FA, FIDO2, `pam_faillock`…) sin que el
|
||||
crate lo sepa.
|
||||
- **`MockAuthenticator`** — credenciales fijas en memoria. Para tests y
|
||||
para iterar el greeter en cajas sin PAM configurado.
|
||||
|
||||
`AuthError` es deliberadamente grueso: el greeter sólo distingue
|
||||
"reintentá" (`BadCredentials`) de "cuenta vetada" (`AccountUnavailable`),
|
||||
y nunca puede saber si un usuario existe.
|
||||
|
||||
## Servicio PAM
|
||||
|
||||
`data/carmen` es el archivo de servicio. Instalarlo:
|
||||
|
||||
```sh
|
||||
install -Dm644 data/carmen /etc/pam.d/carmen
|
||||
```
|
||||
|
||||
Ajustar el `include` a la pila de login de la distribución (ver los
|
||||
comentarios del archivo).
|
||||
|
||||
## Probar contra PAM en una máquina real
|
||||
|
||||
```sh
|
||||
cargo run -p auth-core --example auth-probe -- "$USER" login
|
||||
```
|
||||
|
||||
Pide la contraseña sin eco e informa el `UserInfo` resuelto.
|
||||
Reference in New Issue
Block a user