PAM 구성 파일의 줄 길이에 제한이 있습니까?

PAM 구성 파일의 줄 길이에 제한이 있습니까?

내가 어떻게 이런 의심을 갖게 되었는가:

회사 네트워크에 프록시를 구성하려고 합니다. 프록시 없이만 접근할 수 있는 호스트가 꽤 $NO_PROXY있어서 /etc/environment.echo $NO_PROXY

약간의 조정 끝에 올바른 변수를 설정했습니다.

NO_PROXY_1 DEFAULT=some,hosts
NO_PROXY_2 DEFAULT=some,more.hosts
NO_PROXY_3 DEFAULT=...
NO_PROXY_4 DEFAULT=...
...

NO_PROXY DEFAULT=${NO_PROXY_1},${NO_PROXY_2},...

그런데 이것이 왜 필요한지 알고 싶습니다.

추가 설문조사:

어디에서도 문서화되어 있지 않지만 줄 길이 제한은 echo $no_proxy | wc1014자에 10자를 더한 것이므로 줄 길이 제한은 1024인 것 같습니다 NO_PROXY="(정확한 숫자는 더 이상 확실하지 않지만 합하면 1024가 될 것 같습니다).

저는 Manjaro Linux(기본적으로 Arch)와 pam 1.3.1을 사용하고 있습니다.

답변1

아마도 현재 소스는리눅스 팜1024자 버퍼를 사용하는 코드를 표시합니다.modules/pam_env/pam_env.c

#define BUF_SIZE 1024
...
_parse_config_file(pam_handle_t *pamh, int ctrl, const char *file)
{
    int retval;
    char buffer[BUF_SIZE];
...
    while (( retval = _assemble_line(conf, buffer, BUF_SIZE)) > 0) {

그리고 이를 사용하는 다른 코드에는 getline그러한 제한이 없습니다. 1024자 버퍼 중 하나를 사용하는 코드 경로를 발견했을 수 있습니다.

다른 PAM 구현(OpenPAM)이 있으며 서로 다를 수도 있습니다.

관련 정보