¿Cómo encuentro el valor de umask para un usuario determinado del sistema?

¿Cómo encuentro el valor de umask para un usuario determinado del sistema?

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 umaskcomando como ese usuario. El script que proporcionó en la pregunta obtiene una lista de usuarios del /etc/passwdarchivo y luego ejecuta el umaskcomando 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 umaskcomando a ese script de shell. O simplemente ignore la umask por completo y chmodcambie el directorio al modo que desee.

información relacionada