본문 바로가기
OS/Linux

[Linux]리눅스 사용자 환경설정 자동화: /etc/profile.d vs /etc/skel 차이와 활용법

by Yoon_estar 2025. 5. 13.
728x90

개요

HPC나 컴파일러 환경에서 특정 환경변수나 초기 설정을 사용자마다 반복 입력하지 않고 자동화하려면, 두 가지 방법을 주로 활용합니다

✅ 시스템 전체 사용자에게 공통 적용: /etc/profile.d

✅ 신규 사용자에게만 초기값으로 설정: /etc/skel

이 글에서는 각각의 차이와 활용법, 그리고 Intel oneAPI와 같은 환경 설정을 예시로 정리해보겠습니다.

 

1. etc/profile.d - 시스템 전역 설정

/etc/profile.d는 시스템 전체 사용자에게 공통적으로 적용되는 쉘 환경 설정 스크립트를 저장하는 디렉터리입니다.
/etc/profile이 실행될 때 내부에서 이 디렉터리의 .sh 파일들을 실행합니다.

💡 적용 대상

  • 로그인 시 모든 사용자(ex ssh, su -)

🧩 예시: Intel oneAPI 설정

cat /etc/profile.d/intel64_v2022.sh

#!/bin/sh
source /APP/enhpc/compiler/intel/v2022/setvars.sh intel64
export PATH=/APP/enhpc/compiler/intel/v2022/mpi/2021.6.0/bin:$PATH

 

🟨 장점

 

  • 한 번만 설정하면 모든 사용자에게 자동 적용
  • 관리가 중앙화되어 유지보수가 용이

🟥 단점

 

  • 모든 사용자에게 강제로 적용되기 때문에 사용자별 커스터마이징 어려움
  • 특정 사용자에게만 적용하기 어렵다

2. /etc/skel - 신규 사용자 초기 값 설정

/etc/skel은 새 사용자 계정을 생성할 때 초기 홈 디렉터리 파일들을 복사하는 디렉터리입니다.
즉, useradd로 계정을 만들면 /etc/skel/.bashrc, .bash_profile 등이 /home/새계정/으로 복사됩니다.

💡 적용 대상

  • 신규 생성된 계정에만 적용
  • 이미 존재하는 계정에는 적용되지 않음

🧩 예시: Intel oneAPI 설정

cat /etc/skel/.bashrc 

```
if [ -f /APP/enhpc/compiler/intel/v2022/setvars.sh ]; then
    source /APP/enhpc/compiler/intel/v2022/setvars.sh intel64
    export PATH=/APP/enhpc/compiler/intel/v2022/mpi/2021.6.0/bin:$PATH
fi
```

 

 

cat /etc/skel/.bash_profile
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

🟩 장점

 

  • 사용자별로 자유롭게 설정 가능
  • 기존 설정을 복사하는 방식이라 확장성 있음

🟥 단점

 

  • 기존 계정에는 적용되지 않음 → 수동으로 .bashrc에 추가 필요
  • 여러 계정에 일괄 적용하려면 별도 스크립트 필요