Откуда Debian использует umask по умолчанию?

1876
divB

С новым ssh логином:

$ umask 0007 

Но:

$ find . -maxdepth 1 -name '.*' -type f | xargs grep 007 | less $   # grep 007 /etc/profile # # grep -i umask /etc/login.defs # UMASK Default "umask" value. # UMASK is the default umask value for pam_umask and is used by # 022 is the "historical" value in Debian for UMASK UMASK 027 # Other former uses of this variable such as setting the umask when # grep -i umask /etc/pam.d/common-session session optional pam_umask.so usergroups 

WTF? Debian изобретает произвольный umask ?? И нет другого источника в / etc, который соответствует 007!

Система использует LDAP (nscld, pam_ldap) для аутентификации

Больше информации: это происходит только для одного пользователя. Не для пользователя root или другого пользователя. Как только я 'su' одному пользователю, я снова получаю 007.

Как корень:

# strace -f -o basz.log su baduser 

Что-то настраивает этот umask, но я не знаю что:

[...] 2622 open("/etc/group", O_RDONLY|O_CLOEXEC) = 4 2622 _llseek(4, 0, [0], SEEK_CUR) = 0 2622 fstat64(4, ) = 0 2622 mmap2(NULL, 1719, PROT_READ, MAP_SHARED, 4, 0) = 0xb7786000 2622 _llseek(4, 1719, [1719], SEEK_SET) = 0 2622 fstat64(4, ) = 0 2622 munmap(0xb7786000, 1719) = 0 2622 close(4) = 0 2622 socket(PF_FILE, SOCK_STREAM, 0) = 4 2622 connect(4,, 23) = 0 2622 gettimeofday(, NULL) = 0 2622 gettimeofday(, NULL) = 0 2622 poll([], 1, 10000) = 1 ([]) 2622 send(4, "\1\0\0\0\212\23\0\0\361\3\0\0", 12, MSG_NOSIGNAL) = 12 2622 gettimeofday(, NULL) = 0 2622 gettimeofday(, NULL) = 0 2622 poll([], 1, 60000) = 1 ([]) 2622 read(4, "\1\0\0\0\212\23\0\0\0\0\0\0\4\0\0\0baduser\1\0\0\0*\361\3\0\0\2\0\0"..., 1024) = 57 2622 gettimeofday(, NULL) = 0 2622 gettimeofday(, NULL) = 0 2622 gettimeofday(, NULL) = 0 2622 gettimeofday(, NULL) = 0 2622 gettimeofday(, NULL) = 0 2622 gettimeofday(, NULL) = 0 2622 gettimeofday(, NULL) = 0 2622 gettimeofday(, NULL) = 0 2622 gettimeofday(, NULL) = 0 2622 gettimeofday(, NULL) = 0 2622 gettimeofday(, NULL) = 0 2622 gettimeofday(, NULL) = 0 2622 poll([], 1, 0) = 1 ([]) 2622 read(4, "", 1024) = 0 2622 gettimeofday(, NULL) = 0 2622 close(4) = 0 2622 umask(0777) = 027 2622 umask(07) = 0777 [...] 

Больше информации:

  • Если я напишу "umask 0027" в / etc / profile, это тоже сработает!
  • Если я удаляю домашний каталог и воссоздаю его, проблема остается
2
У вас есть набор масок в вашем .bashrc или .bash_profile и т. Д.? Paul 9 лет назад 0
Нет, это то, что я хотел показать своими командами (find. -Maxdepth 1 -name '. *' -Type f | xargs grep 007 не дает результатов, которые можно увидеть) divB 9 лет назад 0
И я также могу изменить его на "найти ~ -maxdepth 1 -name '. *' -Type f | xargs grep umask" -> без результатов; Я также могу запустить "find / etc -name '*' -type f | xargs grep -i umask" -> нет возможных совпадений, особенно не 007 ... divB 9 лет назад 0
Я имел в виду в вашем домашнем каталоге, который не будет показан ни в одном из этих отчетов - если вы не бежите из дома? Результаты показывают, что вы запускаете все из / etc Paul 9 лет назад 0
да, извините, это было неясно. Но, как упоминалось в моем комментарии выше, я запустил его из моего домашнего каталога. Кроме того, 007 - особенно странный, не используемый по умолчанию umask. Действительно очень странно, откуда это может исходить: / divB 9 лет назад 0
Еще один комментарий: он должен быть связан с пользователем. Для другого пользователя и root это работает. Как только я снова "su" своему пользователю, у меня снова появляется 007. Но, как уже упоминалось, точно нет файла точек, включая umask. Может ли LDAP сделать что-то странное? divB 9 лет назад 0
Я пропустил тильду выше. Я не могу придумать способ, которым ldap мог бы установить это. Вероятно, стоит также проверить /etc/pam.d/login - хотя ваша находка нашла бы его. Paul 9 лет назад 0

1 ответ на вопрос

1
divB

The answer is:

man pam_umask usergroups If the user is not root, and the user ID is equal to the group ID, and the username is the same as primary group name, the umask group bits are set to be the same as owner bits (examples: 022 -> 002, 077 -> 007). 

Man ...

Похожие вопросы