Как узнать значение umask для данного пользователя системы?

Как узнать значение umask для данного пользователя системы?

Я хотел бы найти значение umask для конкретного системного пользователя, которое применяется, когда скрипт, запущенный от имени этого пользователя, создает новый каталог. Я использую обе системы Ubuntu 16.04 и 20.04.

Самый близкий ответ, который я могу найти, этоэтот вопрос. Я не понимаю ни слова, но я попробовал сценарий.

for user in $(awk -F: '{print $1}' /etc/passwd); 
do 
    printf "%-10s" "$user" ; su -c 'umask' -l $user 2>/dev/null
done

указанный в принятом ответе; он вывел слово «root», а затем заморозил систему.

Как узнать значение umask для данного пользователя системы?

решение1

Чтобы определить umask пользователя в определенное время, вы можете просто запустить команду umaskот имени этого пользователя. Скрипт, который вы привели в вопросе, извлекает список пользователей из /etc/passwdфайла, а затем запускает umaskкоманду для каждого из них по очереди. Но у него есть некоторые проблемы, не последней из которых является то, что он зависнет, ожидая ввода пароля, если будет запущен от имени пользователя, не являющегося пользователем root.

Пользователь может изменить свою umask в любое время (на самом деле, пользователь даже неиметьumask, umask зависит от процесса), поэтому вам не следует полагаться на то, что это будет одно и то же каждый раз. Если вам нужно знать, какой umask у пользователя, когда он запускает скрипт оболочки, просто добавьте команду umaskв этот скрипт оболочки. Или просто полностью проигнорируйте umask и chmodкаталог в любом желаемом вами режиме.

Связанный контент