Usando Gnome 3.18. Comparto archivos entre otros miembros de la familia, pero la umask predeterminada en mi distribución (archlinux) es 0022
. Por lo tanto, cada archivo / directorio creado no se puede escribir para nuestro grupo común.
Traté de poner umask 0002
en /etc/profile
pero la sesión de GNOME sigue utilizando 0022
. Sin embargo, está funcionando para un shell bash de inicio de sesión.
También traté de agregar esta línea /etc/pam.d/system-auth
:
session required pam_umask.so umask=0002
tiene el mismo efecto que el de adentro /etc/profile
. Lo intenté
Si cambio la umask manualmente en un shell gnome-terminal, entonces ejecuto una aplicación desde allí, digamos gedit, entonces los archivos creados por ella tienen los permisos deseados. Si ejecuto gedit desde los menús de gnome, no lo hace. Entonces, mi problema es realmente configurar el umask para la sesión de gnome, y no puedo encontrar dónde hacerlo.
EDITAR (para responder el comentario de Gilles): estoy usando gdm 3.18 como DM. También intenté agregar la línea pam_umask en /etc/pam.d/gdm-launch-environment
. Todos los demás gdm-*
archivos contienen incluye de session
desde el system-auth
archivo, por lo que no deberían necesitar más. No cambia nada.
/etc/login.defs
contiene UMASK 077
, sino también USERGROUPS_ENAB yes
que debe establecer el umask
que cualquiera 0077
o 0007
para los usuarios cuyo grupo principal es el nombre de usuario.
El único archivo que contiene 022
para umask /etc
es /etc/profile
pero ese fue mi primer intento.
En cuanto a /etc/Xsession.d
, no tengo este directorio. Además, como wayland es ahora el servidor de visualización predeterminado, no estoy seguro de que la umask deba configurarse como parte de la inicialización de X, incluso si todavía la estoy usando.
/etc/Xsession.d
o un archivo diferente/etc/pam.d
(supongo que desea configurarlo en todo el sistema). O tal vez/etc/login.defs
.tty
ossh
inicios de sesión, y son básicamente el mismo, realmente (usandopam_umask
). No funcionan con mi sesión de gnomos. Entonces no puedo dar la recompensa a nadie. No sé si esto es específico de gnome en Xorg en archlinux. Probaré con otras distribuciones cuando tenga algo de tiempo.Respuestas:
Algunas aplicaciones de Gnome son iniciadas por
systemd --user
, en cuyo caso umask es configurado por systemd0022
independientemente del valor configurado para pam_umask . No conozco ninguna solución, pero abrí un problema en el rastreador de problemas de systemd github. Este problema también se informa en Gnome bugzilla .Umask set using
pam_umask
funciona como se espera para las aplicaciones que no se iniciansystemd --user
.Se sugiere una solución alternativa en Ubuntu bugzilla para colocar las anulaciones del servicio systemd en todas las aplicaciones afectadas.
Para investigar esto usted mismo
Puede enumerar los procesos que se ejecutan en su sistema en un formato de árbol (procesos padre / hijo) usando:
Encuentre los PID para: (1) la instancia de systemd --user de su sesión ; (2) una aplicación lanzada por él , como gedit, que se mostrará como un proceso secundario para systemd --user ; y (3) un proceso en su sesión no iniciado por systemd --user .
Compare umasks reportados en procfs :
systemd --user sí mismo (1) y los procesos no lanzados por él (3) deberían tener la umask correcta que fue establecida por pam_umask . Los procesos lanzados por systemd --user (2) tendrán umask de
0022
.fuente
El problema es el mencionado por Sebasth. Intenté muchas cosas, pero luego encontré una solución que consiste en sobrescribir la UMask (por usuario) de dbus:
En el archivo que se abre, solo escribe:
El archivo se guarda en .config / systemd / user / dbus.service.d / override.conf y anula la umask predeterminada de dbus, que supongo que se hereda de systemd --user, ya que dbus se inicia. Simplemente cierre sesión e inicie sesión nuevamente y las aplicaciones gnome deberían usar la umask especificada. Solo una solución, pero funciona para mí.
fuente
En cambio, cambiar la opción para la
umask
que podría usar , con este usuario y grupo tiene los mismos permisos, que la forma clásica de Unix para compartir carpetas.usergroups
pam_umask
fuente
Para establecer umask predeterminado en todo el sistema, deberá habilitarlo en primer lugar, lo que se explica bastante bien aquí:
El enlace de arriba es para Debian y Ubuntu pero igual para todos los otros sistemas Linux.
Para habilitarlo umask (que tal vez ya esté en su lugar) necesita agregar una línea a
/etc/pam.d/common-session
:Una vez habilitado, puede configurarlo en:
Veo que ya encontraste este archivo, así que todo lo que necesitas hacer es configurar:
Y configúrelo UMASK en 0002 o lo que quiera.
Esto establecerá el valor predeterminado en todo el sistema, lo que significa que todos los usuarios tendrán que seleccionar la máscara de usuario desde allí a menos que no establezcan específicamente lo contrario en su .profile o .bashrc
fuente
common-*
para configuraciones comunes. Arch, como RedHat, usa unsystem-auth
archivo para esto. De todos modos, he intentado su sugerencia de añadirsession optional pam_umask.so
y yUMASK 002
en la/etc/login.defs
medida de lo que esperaba, y como conpam_umask.so umask=0002
, que trabajaba para una TTYlogin
sesión (o a través de SSH), pero Gnome puse una0022
máscara de usuario como siempre. Gnome debe usar una configuración interna de umask, o archlinux está usando una ... Probaré otra distribución para ver si el problema también surge.Para la sesión de inicio de sesión: agregue
umask 0002
a su$HOME/.profile
(o/etc/profile
).Para la sesión de Gnome: agregue
umask 0002
a su$HOME/.gnomerc
fuente
EDITAR: Para que systemd configure la umask de la sesión de gnome, creé un archivo umask.conf en /etc/systemd/system/display-manager.service.d/ con las siguientes líneas:
Después de reiniciar la máquina, esto ahora permite que todos los procesos se
user.slice
ajusten a la máscara de usuario que desea. El cierre de sesión no fue suficiente para que se produjeran los cambios, por lo que recomendaría reiniciar su máquina antes de realizar las pruebas en las máscaras de proceso. Información adicional:
fuente
/etc/systemd/system/gdm.service.d/umask.conf
contener solo[Service]\nUMask=0002
debería ser suficiente.Solo quería agregar que las
pam_umask
páginas de manual proporcionan información bastante buena para ayudarlo a descubrir de dónde proviene su umask. Específicamente:Como alguien ha dicho, debe configurar esto en el
common-session
archivo en el directorio/etc/pam.d
.Tenga en cuenta que los inicios de sesión que no usan pam (como los que usan
getty
ologin
tendrán su umask configurado a través delogin.defs
.fuente
En una instalación de Fedora 29 con Gnome, descubrí que los programas lanzados desde el iniciador de Gnome dejaban otros archivos legibles, 0022. Pam aparentemente difiere a /etc/login.defs como se indicó anteriormente. Sin embargo, editar la máscara allí, 0077, no cambió el comportamiento de Gnome. También tuve que editar / etc / profile y / etc / bashrc, los cuales lo volvieron a configurar en 0022.
Sería bueno si Fedora tuviera un lugar para esto, pero las entradas en / etc / profile y / etc / bashrc configuran la máscara de manera diferente para los usuarios con ID superiores o inferiores a 200, por lo que parece que una máscara no sirve para todos.
Aunque esto es una solución por ahora, el problema no está completamente resuelto, ya que el usuario de gnome todavía no tiene forma de configurar su propia umask, ya que se aplica a las aplicaciones que se ejecutan desde el iniciador de gnome. Parece que Gnome debería tener una opción de configuración para esa umask. (Tal vez sí, pero no lo encontré).
fuente
Tengo la solución al menos en Fedora 31:
fuente