También me enteré de Ageless Linux hoy. Me anima ver que la gente no ha aceptado la ley y que no se ha quedado sentada sin hacer nada.
Por mi parte, me pasé a Devuan hoy mismo.
También me enteré de Ageless Linux hoy. Me anima ver que la gente no ha aceptado la ley y que no se ha quedado sentada sin hacer nada.
Por mi parte, me pasé a Devuan hoy mismo.
Revisa la wiki de tu distro; si no encuentras nada, vete a la de la distribución “madre” si es que usas una derivada. Hay distribuciones que están atadas a systemd y su suite, por ejemplo, Fedora o NixOS.
Ahí es imposible cambiar el init, eso fue lo que encontré durante el research de hoy.
Recursos:
Yo, como digo, estoy tranquilo. Tanto en Slackware, la distro que utilizo y no creo que ceda, o ni tan siquiera que tenga la capacidad de ceder; como en el entorno de servidores, embebidos, industrial… No creo que llegue a mucho en los feudos de Linux, si bien claro que puede afectar a las distros principiantes o tolerantes, como Ubuntu, Mint…
Si afecta a Debian, será a través de systemd. Pero, ¿cómo afectaría eso al rey de los servidores? ¿servidores con control de edad? No sé cómo se gestionará en Debian.
Terminamos antes diciendo cuáles no han cedido al entorno de systemd, desgraciadamente para la comunidad.
Con Debian se puede remover systemd e instalar otro init durante la instalación. Devuan simplemente ahorra ese paso.
EDIT: Me olvidé de aclarar que Ageless Linux es el Debian habitual el cual se le corre un script para setear los parámetros de edad de SystemD como “ageless” y así envenenar los datos.
Está semana me he encontrado con muchísimas personas que promueven el data poisoning para no solo ocultar tu información, si no también para envenenar algoritmos y a los modelos de machine learning.
Hay una extensión de navegador llamada “TrackMeNot” que en segundo plano realiza búsquedas aleatorias y contradictorias entre si para así envenenar la recopilación de datos.
Así como está extensión, me enteré de que hay otras que hacen click en todas las publicidades. De esta manera, mientras que la primera extensión hace creer al algoritmo que te gusta de todo, aún cuando está información se contradice, la otra sigue hechando leña al fuego para hacerles creer que si te está interesando eso y estás haciendo click en cada anuncio.
La ley es ridícula porque abarca a todo tipo de sistemas operativos, incluidos los de routers como OpenWRT, RouterOS e incluso el SO de calculadoras.
Así de ridícula es la ley y encima se descubrió con muchísima evidencia que todo esto fue impulsado por Meta…
ni c t ocurra cambiar tu init system si tu distro soporta uno solo (ej: Debian), t va a destrozar la máquina
Es triste ver que proyectos “libres” como systemd se les olvida o simplemente ignoran el espíritu revolucionario que conyeba buscar la libertad, se esta dejando de lado la privacidad y control que tiene el usuario sobre el sistema, que sera lo próximo? Distribuciones con KYC?
Time to install Gentoo
Siento que llego tarde a leer todo esto. Entonces, para los que usamos Debian la solucion es irse por Devuan? (o en todo caso meter mano uno y reemplazar systemd?)
no es recomendable instalar un init diferente al que viene por de|ecto. Distros como Debian sen muy dependientes de SystemD
En el día de ayer, se ha visto publicado en el Linux Kernel Mail List un correo que detalla un parche muy llamativo: [PATCH] vfs: require verified birth date for file creation.

En él, Brauner detalla que, por la nueva regulación, todo el contenido digital, incluido las operaciones de creación de archivos deben ser realizadas por adultos verificados, ¡la creación de archivos!. Ya que la creación de archivos es la más primitiva y fundamental forma de creación de contenido en un sistema operativo, por lo que va regulado por la VFS.
El parche introduce CONFIG_VFS_AGE_VERIFICATION que, cuando está habilitado, requiere que todos los procesos registren una fecha de nacimiento válida a través de prctl(PR_SET_BIRTHDATE) antes de que se le permita crear archivos. La fecha de nacimiento se almacena en struct task_struct y se hereda a través de fork().
La creación del archivo fallará con el nuevo código de error ETOOYOUNG si:
Se ha añadido el nuevo errno, ETOOYOUNG (134). De esta forma el espacio de usuario o la propia distribución pueda manejar el error mostrando un mensaje tranquilizador. El autor sugiere «se requiere un padre o tutor legal que cree el archivo en su nombre».
Aquí está todo el código del diff para quien le interese:
@@ -42,6 +42,23 @@ source "fs/crypto/Kconfig"
source "fs/verity/Kconfig"
source "fs/notify/Kconfig"
+config VFS_AGE_VERIFICATION
+ bool "Require birth date verification for file creation"
+ default y
+ help
+ When enabled, every process must register a valid birth date via
+ prctl(PR_SET_BIRTHDATE, day, month, year) before being allowed to
+ create files. Processes that have not registered a birth date or
+ whose registered birth date indicates they are under 18 years of
+ age will receive -ETOOYOUNG on any file creation attempt.
+
+ If unsure, say Y. Failure to comply may result in stern letters
+ from lawyers. You don't want that. Trust us. Say Y.
+
source "fs/quota/Kconfig"
source "fs/autofs/Kconfig"
diff --git a/include/uapi/asm-generic/errno.h b/include/uapi/asm-generic/errno.h
index 1..2 100644
--- a/include/uapi/asm-generic/errno.h
+++ b/include/uapi/asm-generic/errno.h
@@ -20,4 +20,6 @@
#define EHWPOISON 133 /* Memory page has hardware error */
+#define ETOOYOUNG 134 /* Process too young to create content */
+
#endif
diff --git a/include/uapi/linux/prctl.h b/include/uapi/linux/prctl.h
index 3..4 100644
--- a/include/uapi/linux/prctl.h
+++ b/include/uapi/linux/prctl.h
@@ -328,4 +328,8 @@
#define PR_LOCK_INDIR_BR_LP_STATUS 82
+/* age verification for file creation */
+#define PR_SET_BIRTHDATE 83
+#define PR_GET_BIRTHDATE 84
+
#endif /* _LINUX_PRCTL_H */
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 5..6 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1215,6 +1215,14 @@ struct task_struct {
#endif
struct seccomp seccomp;
struct syscall_user_dispatch syscall_dispatch;
+
+#ifdef CONFIG_VFS_AGE_VERIFICATION
+ /* compliance - birth date for age verification */
+ u8 birthdate_day;
+ u8 birthdate_month;
+ u16 birthdate_year;
+ bool birthdate_verified;
+#endif
/* Thread group tracking: */
u64 parent_exec_id;
diff --git a/kernel/sys.c b/kernel/sys.c
index 7..8 100644
--- a/kernel/sys.c
+++ b/kernel/sys.c
@@ -2345,6 +2345,48 @@ SYSCALL_DEFINE5(prctl, int, option, unsigned long, arg2, unsigned long, arg3,
break;
+
+#ifdef CONFIG_VFS_AGE_VERIFICATION
+ case PR_SET_BIRTHDATE:
+ {
+ u8 day = (u8)arg2;
+ u8 month = (u8)arg3;
+ u16 year = (u16)arg4;
+ struct tm now;
+ int age;
+
+ /* Basic date validation */
+ if (month < 1 || month > 12)
+ return -EINVAL;
+ if (day < 1 || day > 31)
+ return -EINVAL;
+ if (year < 1900)
+ return -EINVAL;
+
+ time64_to_tm(ktime_get_real_seconds(), 0, &now);
+
+ /* The kernel does not support vampires or immortal entities */
+ if ((now.tm_year + 1900) - year > 150)
+ return -EINVAL;
+
+ /* No time travelers either */
+ if (year > (now.tm_year + 1900))
+ return -EINVAL;
+
+ me->birthdate_day = day;
+ me->birthdate_month = month;
+ me->birthdate_year = year;
+ me->birthdate_verified = true;
+
+ age = (now.tm_year + 1900) - year;
+ if (now.tm_mon + 1 < month ||
+ (now.tm_mon + 1 == month && now.tm_mday < day))
+ age--;
+
+ if (age < 18)
+ pr_info_ratelimited("Process %d (comm: %s) registered as minor (age %d). "
+ "File creation will be denied. Please ask a "
+ "parent or guardian for assistance.\n",
+ task_pid_nr(me), me->comm, age);
+ break;
+ }
+ case PR_GET_BIRTHDATE:
+ if (!me->birthdate_verified)
+ return -EINVAL;
+ if (put_user(me->birthdate_day, (u8 __user *)arg2) ||
+ put_user(me->birthdate_month, (u8 __user *)arg3) ||
+ put_user(me->birthdate_year, (u16 __user *)arg4))
+ return -EFAULT;
+ break;
+#endif /* CONFIG_VFS_AGE_VERIFICATION */
+
default:
error = -EINVAL;
break;
diff --git a/fs/namei.c b/fs/namei.c
index 9..10 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -4148,6 +4148,45 @@ static int vfs_mknodat(struct mnt_idmap *idmap, struct dentry *dentry,
umode_t mode, dev_t dev);
+#ifdef CONFIG_VFS_AGE_VERIFICATION
+/**
+ * check_age_verification - verify the calling process has registered a valid
+ * birth date and is old enough to create files.
+ *
+ * Returns 0 if the caller is verified as an adult (>= 18 years old).
+ * Returns -ETOOYOUNG if the caller is a minor or has not registered a
+ * birth date.
+ *
+ * This function exists because the fundamental UNIX
+ * principle of "everything is a file" was insufficiently regulated.
+ */
+static int check_age_verification(void)
+{
+ struct task_struct *tsk = current;
+ struct tm now;
+ int age;
+
+ if (!tsk->birthdate_verified) {
+ pr_warn_ratelimited(
+ "Process %d (comm: %s) attempted to create a file "
+ "without age verification. Set birth date via "
+ "prctl(PR_SET_BIRTHDATE, day, month, year).\n",
+ task_pid_nr(tsk), tsk->comm);
+ return -ETOOYOUNG;
+ }
+
+ time64_to_tm(ktime_get_real_seconds(), 0, &now);
+
+ age = (now.tm_year + 1900) - tsk->birthdate_year;
+ if (now.tm_mon + 1 < tsk->birthdate_month ||
+ (now.tm_mon + 1 == tsk->birthdate_month &&
+ now.tm_mday < tsk->birthdate_day))
+ age--;
+
+ if (age < 18) {
+ pr_warn_ratelimited(
+ "Process %d (comm: %s) is only %d years old. "
+ "Must be 18 or older to create files. "
+ "Ask a parent or guardian for help.\n",
+ task_pid_nr(tsk), tsk->comm, age);
+ return -ETOOYOUNG;
+ }
+
+ return 0;
+}
+#endif /* CONFIG_VFS_AGE_VERIFICATION */
+
/**
* vfs_create - create new file
* @idmap: idmap of the mount the inode was found from
@@ -4170,6 +4209,12 @@ int vfs_create(struct mnt_idmap *idmap, struct dentry *dentry, umode_t mode,
if (error)
return error;
+#ifdef CONFIG_VFS_AGE_VERIFICATION
+ error = check_age_verification();
+ if (error)
+ return error;
+#endif
+
if (!dir->i_op->create)
return -EACCES; /* shouldn't it be ENOSYS? */
--
2.49.0
Entre las partes más interesantes, a mi parecer, son que con este parche, el Kernel de Linux no soportará deliberadamente el uso de vampiros ni entidades inmortales, estableciendo un condicional que si, la fecha es superior a 150 años en el pasado, devuelve error.
/* The kernel does not support vampires or immortal entities */
if ((now.tm_year + 1900) - year > 150)
return -EINVAL;
Tampoco soportará viajeros en el tiempo, que tengan establecida una fecha de futuro.
/* No time travelers either */
if (year > (now.tm_year + 1900))
return -EINVAL;
Si has llegado hasta aquí ya habrás notado que ayer fue 1 de abril, fecha en el que muchos países anglosajones celebran un día de inocentadas y bromas. Hasta el mismo Linus Torvalds ha respondido al mail:

¡Hay que tener sentido del humor!
Menos mal esto es una broma ![]()
Además, ese código se ve más cómo programación de videojuegos que de sistemas…
Como causarle un micro infarto a un usuario del kernel Linux.
Buenas,
El creador de Slackware ya dijo que nada de añadir eso en su distro https://www.youtube.com/watch?v=M5Wd39RNzvg
Un saludo
Que grande, quiero probar slackware, pero temo que se convierta en mi distro favorita.