내가 어떻게 이런 의심을 갖게 되었는가:
회사 네트워크에 프록시를 구성하려고 합니다. 프록시 없이만 접근할 수 있는 호스트가 꽤 $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 | wc
1014자에 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)이 있으며 서로 다를 수도 있습니다.