Нет.
PAM - это основа для аутентификации с использованием различных модулей pam. Преимущество в том, что разработчикам приложений не нужно самим писать логику аутентификации; например, он обеспечивает стандарты: из man 7 pam
: Linux-PAM - это система библиотек, которые обрабатывают задачи аутентификации приложений (служб) в системе.
PAM обеспечивает аутентификацию пользователей, но он также обеспечивает и другие вещи, такие как системные ограничения (pam_limits
), motd (pam_motd
), проверку оболочки (pam_shell
), аутентификацию LDAP (pam_ldap
), аутентификацию MySQL (pam_mysql
) и т.д.
Вы можете ознакомиться с большей частью функциональности pam
, прочитав руководство для системных администраторов.
Это не артефакт вывода readelf
; myVariable.9751
на самом деле имя этого символа. Чтобы различать статические переменные, определенные в разных областях/функциях, компилятор должен каким-то образом украсить их имена :
$ cat a.c
static int var;
int foo(void){
static int var;
if(var++ > 3){ static int var; return var++; } else return var++;
}
int bar(void){ static int var; return var++; }
int baz(void){ return var++; }
$ cc -Wall -o - -S a.c | grep local.*var
.local var
.local var.1759
.local var.1760
.local var.1764
Обратите внимание, что точка(.
)не может использоваться в C как часть идентификатора, поэтому var.num
не будет конфликтовать ни с какой другой переменной, определенной пользователем.
Что касается документации readelf, то кроме справочной страницы и чтения исходного кода там не так уж и много; но вы также можете использовать objdump -tT
вместо readelf -s
; возможно, вы найдете его справочную страницу лучше.