{"id":787,"date":"2015-09-11T10:55:59","date_gmt":"2015-09-11T10:55:59","guid":{"rendered":"http:\/\/esferas.org\/msqlu\/?p=787"},"modified":"2015-09-11T10:55:59","modified_gmt":"2015-09-11T10:55:59","slug":"cambiar-el-valor-de-umask-en-debian","status":"publish","type":"post","link":"https:\/\/esferas.org\/msqlu\/2015\/09\/11\/cambiar-el-valor-de-umask-en-debian\/","title":{"rendered":"Cambiar el valor de UMASK en Debian &#8230;"},"content":{"rendered":"<p><a href=\"https:\/\/esferas.org\/msqlu\/wp-content\/uploads\/sites\/12\/2015\/02\/openlogo-100.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-576\" src=\"https:\/\/esferas.org\/msqlu\/wp-content\/uploads\/sites\/12\/2015\/02\/openlogo-100.png\" alt=\"openlogo-100\" width=\"100\" height=\"123\" \/><\/a>&#8230; puede ser m\u00e1s complicado de lo que parece.<\/p>\n<p><!--more--><\/p>\n<p>Mis queridos hom\u00ednidos arrastran un problema desde hace tiempo y para el que por fin he conseguido una soluci\u00f3n: trabajan cada vez m\u00e1s con archivos compartidos en red, y mientras que antes se limitaban a consultarlos o a imprimirlos, ahora les ha dado por retocarlos entre varios.<\/p>\n<p>Y es entonces cuando se dan cuenta de que pueden leer el archivo creado por otro pero no modificarlo. Y sufren. Y me lo cuentan a m\u00ed para que yo sufra tambi\u00e9n y, de paso, se lo solucione.<\/p>\n<p>Los directorios est\u00e1n instalados siempre con los permisos correctos (bit SGID) para asegurar que los nuevos archivos conserven el grupo del directorio padre. Y esto funciona y es simple. S\u00f3lo queda cambiar el valor de UMASK para asegurarnos de que no se elimine el bit de escritura para el grupo. Y ah\u00ed es donde la cosa parece que se complica.<\/p>\n<p>En teor\u00eda debe bastar con cambiar el valor de la variable UMASK en el archivo\u00a0 <em>\/etc\/login.defs,<\/em> pero por alguna raz\u00f3n no parece funcionar del todo ni en todos los equipos, especialmente si alg\u00fan programa envoltorio (esos que cambian cosas en el entorno antes de lanzar el programa real y de los que tengo que emplear bastantes) realiza otra modificaci\u00f3n. O, peor a\u00fan, alg\u00fan archivo de inicio de sesi\u00f3n que no tengo bien controlado en su escritorio.<\/p>\n<p>El caso es que ya que tengo todo el entorno del escritorio empaquetado para Debian he buscado la forma de cambiar este par\u00e1metro en todos y cada uno de los equipos y sesiones, y lo he encontrado en el subsistema PAM y el m\u00f3dulo pam_umask inclu\u00eddo en el paquete pam-modules.<\/p>\n<p>Parece que los m\u00f3dulos del sistema PAM est\u00e1n algo m\u00e1s organizados que la \u00faltima vez que los vi. Toda la configuraci\u00f3n va en <em>\/etc\/pam.d\/ <\/em>como siempre pero adem\u00e1s se ha a\u00f1adido un juego de perfiles situado en <em>\/usr\/share\/pam-configs<\/em> y un programa que los lee y los aplica a la configuraci\u00f3n base. Este programa se llama <em>pam-auth-update<\/em>, se incluye en el paquete libpam-runtime y puede emplearse en la fase de configuraci\u00f3n de los paquetes que instalemos.<\/p>\n<p>As\u00ed que eso es lo que he hecho. He constru\u00eddo un perfil para el m\u00f3dulo que he llamado <em>umask<\/em> y lo he a\u00f1adido a la \u00faltima versi\u00f3n del\u00a0 paquete <em>empresa-desktop.<\/em> Ahora, tras actualizar los sistemas, las sesiones de usuario ya tienen una m\u00e1scara de permisos m\u00e1s acorde con sus necesidades.<\/p>\n<p>Hasta la pr\u00f3xima, claro.<\/p>\n<p style=\"padding-left: 30px;\"><strong>Por cierto<\/strong>:<\/p>\n<p style=\"padding-left: 30px;\">ha sido bastante dif\u00edcil encontrar informaci\u00f3n sobre el formato de los perfiles. Al final he encontrado una referencia en <a href=\"https:\/\/wiki.ubuntu.com\/PAMConfigFrameworkSpec\">el wiki de Ubuntu<\/a> del a\u00f1o 2008 y que es en realidad la propuesta para construir el mecanismo. Tambi\u00e9n hay una explicaci\u00f3n excelente en <a href=\"http:\/\/stackoverflow.com\/questions\/10220531\/how-to-set-system-wide-umask\">stackoverflow<\/a> (para variar) y luego est\u00e1 el fuente del programa <em>pam-auth-update<\/em> que tampoco contiene documentaci\u00f3n al respecto pero que se puede m\u00e1s o menos leer.<\/p>\n<p style=\"padding-left: 30px;\">Digo yo que ya que haces un programa que va a cambiar tanto el acceso al sistema podr\u00edas poner un ejemplo claro de tus datos, \u00bf no ? Pues eso.<\/p>\n<p>&nbsp;<\/p>\n<h4>Perfil de pam_umask<\/h4>\n<p>El archivo est\u00e1 nombrado como <em>\/usr\/share\/pam-configs\/umask<\/em> aunque por lo que he podido ver el nombre es lo de menos.<\/p>\n<pre lang=\"apache\">Name: Set the file mode creation mask\r\nDefault: yes\r\nPriority: 256\r\nSession-Type: Additional\r\nSession:\r\noptional pam_umask.so umask=0002\r\n<\/pre>\n<h4>Configuraci\u00f3n del paquete<\/h4>\n<p>La siguiente estrofa se incluye en el archivo <em>debian\/postinst<\/em> del paquete en cualquier parte bajo la opci\u00f3n <em>configure<\/em>.<\/p>\n<pre lang=\"bash\"># Actualizamos los m\u00f3dulos PAM\r\nPAM_UPDATE=$(which pam-auth-update)\r\n$PAM_UPDATE -auth-update --package\r\n\r\n\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>&#8230; puede ser m\u00e1s complicado de lo que parece.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","webmentions_disabled_pings":false,"webmentions_disabled":false,"footnotes":""},"categories":[6],"tags":[475,474],"class_list":["post-787","post","type-post","status-publish","format-standard","hentry","category-debian","tag-pam","tag-umask"],"_links":{"self":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/787","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/comments?post=787"}],"version-history":[{"count":0,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/787\/revisions"}],"wp:attachment":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/media?parent=787"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/categories?post=787"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/tags?post=787"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}