사용자의 이메일 주소를 나타내는 표준 환경 변수

사용자의 이메일 주소를 나타내는 표준 환경 변수

완료 시 현재 사용자에게 이메일을 보내는 Bash 함수를 작성 중입니다. 사용자의 이메일 주소를 얻는 정식 또는 일반적인 방법이 있는지 궁금합니다. 내 현재 계획은 간단히 를 사용하는 것인데 $EMAIL, 이는 충분히 잘 작동할 것입니다. 그러나 현재 사용자의 이메일 주소를 참조하는 더 나은 또는 "올바른" 방법이 있는지는 확실하지 않습니다(물론 설정되어 있다고 가정).

참고해주세요 저는아니요시스템의 로컬 메일로 이메일을 보내려고 하지만 대신 원격 주소로 이메일을 보내려고 합니다.

답변1

정말로 이 작업을 수행하고 싶다면("내 스크립트의 사용자가 사용하려는 주소를 지정해야 한다고 예상함") 언제든지 이메일 주소 ~/.emailaddress나 다른 로컬 파일을 입력하도록 요청할 수 있습니다. 홈 디렉터리와 파일에 대한 충분한 권한이 있으면 작동할 수 있습니다.

올바른 접근 방식은 로컬 메일 배달을 설정하고 로컬 메일을 사용하거나 ~/.forward.

내 생각에는, 합리적인 접근 방식은 환경 변수가 아닌 파일에 "외부" 이메일 주소를 저장하는 것입니다. 스크립트에서 환경 변수를 설정/사용할 수 없는 상황이 많이 있습니다. 루트로서 파일을 읽을 수 있도록 강제할 수 있지만 사용자에게 envvar 정의를 어디에 어떻게 저장했는지 알도록 강요할 수는 없습니다.

이를 수행하는 "최선의 방법"은 없습니다. 이메일 주소는 사용자 정보이므로 귀하의 사용자 관리에 속합니다. LDAP를 사용하는 경우 dawud의 답변은 LDAP를 어디에 넣고 검색할지 알려줄 것입니다. 일반 오래된 것을 사용하는 경우 /etc/passwd주석 필드가 있습니다. 홈 디렉토리에 저장하려는 경우(쉘 환경에서 해당 정보를 제공하는 사용자에 대해 이야기할 때 수행하는 작업) 로컬 메일이 있거나 필요합니까?에 따라 두 가지 방법이 있습니다. .

이미 LDAP를 사용하고 있다면 dawud의 조언을 따르는 것이 가장 좋은 방법입니다. 그렇지 않은 경우 단지 몇 개의 이메일 주소를 저장하기 위해 LDAP를 설정하는 것은 과잉이며 최선의 접근 방식이 아닙니다. 명확한 답을 원한다면 문제를 더 구체적으로 설명해야 합니다.

답변2

그와 같은 일은 없다.

그러나 예상할 수 있는 것은mail속성은 다음과 같이 LDAP 디렉터리에 존재합니다.RFC 4524.

다음과 같은 명령줄 도구가 있습니다.ldapsearch(1), 쉘 스크립트에서 이러한 값을 검색하는 데 사용할 수 있습니다.

물론 사용자 정보를 다른 데이터베이스에 저장할 수도 있습니다.

답변3

그것은해야한다 $EMAIL:

설정된 경우 이 변수에는 기본 시작 주소가 포함됩니다. ...이 설정의 기본값은 환경 변수 $EMAIL의 내용입니다.

원천

관련 정보