
Me gustaría encontrar el valor de umask para un usuario del sistema en particular, el que se aplica cuando se ejecuta un script como este usuario crea un nuevo directorio. Estoy usando los sistemas Ubuntu 16.04 y 20.04.
La respuesta más cercana que puedo encontrar a esto esesta pregunta. No entiendo ni una palabra, pero probé el guión.
for user in $(awk -F: '{print $1}' /etc/passwd);
do
printf "%-10s" "$user" ; su -c 'umask' -l $user 2>/dev/null
done
dado en la respuesta aceptada; imprimió la palabra "raíz" y luego congeló el sistema.
¿Cómo encuentro el valor de umask para un usuario determinado del sistema?
Respuesta1
Para determinar la umask de un usuario en un momento dado, simplemente puede ejecutar el umask
comando como ese usuario. El script que proporcionó en la pregunta obtiene una lista de usuarios del /etc/passwd
archivo y luego ejecuta el umask
comando en cada uno de ellos sucesivamente. Pero tiene algunos problemas, uno de los cuales se bloquea mientras espera una contraseña, si se ejecuta como usuario no root.
Un usuario puede cambiar su umask en cualquier momento (en realidad, un usuario ni siquierateneruna umask, la umask es específica del proceso), por lo que no debería depender de que sea la misma siempre. Si necesita saber qué umask tiene un usuario cuando ejecuta un script de shell, simplemente agregue el umask
comando a ese script de shell. O simplemente ignore la umask por completo y chmod
cambie el directorio al modo que desee.