쉘프로그래밍강좌009: 리눅스 서버로 로그인하는 모든 사용자들의 기본 사용환경 설정을 위한 /etc/profile의 역할과 용도
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 2,145 조회
- 0 추천
- 목록
본문
쉘프로그래밍강좌009: 리눅스 서버로 로그인하는 모든 사용자들의 기본 사용환경 설정을 위한 /etc/profile의 역할과 용도
각 개별사용자들의 홈디렉토리에 있는 .bash_profile이라는 파일은 각 사용자들의 개별적인 설정환경을 적용하기 위한 파일이라면 /etc/profile은 리눅스 서버로 로그인하는 모든 사용자에게는 공통으로 적용되는 설정환경파일입니다.
즉, /etc/profile은 모든 사용자를 위한 시스템의 전반적인 사용환경 적용을 위한 설정파일입니다.
따라서 리눅스 서버관리자들은 모든 사용자에게 공통적으로 적용하고자 하는 사항이 있을 경우에는 이 파일에 추가적인 설정을 하시면 됩니다.
/etc/profile파일의 기본적이고 주된 역할을 간단히 정리해 보면 다음과 같습니다.
- 각 사용자의 기본적인 명령어 사용경로(PATH)를 설정합니다.
- 각 사용자의 core파일에 사이즈를 설정합니다.
(기본은 생성되지 않도록 합니다.)
- 각 사용자의 쉘환경변수 USER에 해당사용자의 사용자명(id -un)을 저장합니다.
- 각 사용자의 쉘환경변수 LOGNAME에 USER에 저장된 사용자명을 저장합니다.
- 각 사용자의 쉘환경변수 MAIL에 사용자의 메일저장파일경로를 저장합니다.
- 각 사용자의 쉘환경변수 HOSTNAME에 시스템 호스트네임을 저장합니다.
- 각 사용자의 쉘환경변수 HISTSIZE에 히스토리파일(.bash_history)에 저장될 최대 개수를 지정합니다.
- 기타 필요한 기능설정과 사용환경설정을 위한 초기파일들을 불러들입니다.
이와 같이 /etc/profile의 용도와 기능은 로그인하는 개별 사용자들에게 시스템의 기본적인 사용환경설정을 제공하기 위한 용도로 사용됩니다.
앞서 말씀 드린 바와 같이 리눅스 서버로 로그인하는 모든 사용자들에게 공통적으로 적용할 사항이 있다면 /etc/profile에 적용하시면 됩니다.
참고로 아래는 이 파일의 기본적인 내용을 나타낸 것입니다.
[root@RockyLinux01 ~]# cat /etc/profile # /etc/profile
# System wide environment and startup programs, for login setup # Functions and aliases go in /etc/bashrc
# It's NOT a good idea to change this file unless you know what you # are doing. It's much better to create a custom.sh shell script in # /etc/profile.d/ to make custom changes to your environment, as this # will prevent the need for merging in future updates.
pathmunge () { case ":${PATH}:" in *:"$1":*) ;; *) if [ "$2" = "after" ] ; then PATH=$PATH:$1 else PATH=$1:$PATH fi esac }
if [ -x /usr/bin/id ]; then if [ -z "$EUID" ]; then # ksh workaround EUID=`/usr/bin/id -u` UID=`/usr/bin/id -ru` fi USER="`/usr/bin/id -un`" LOGNAME=$USER MAIL="/var/spool/mail/$USER" fi
# Path manipulation if [ "$EUID" = "0" ]; then pathmunge /usr/sbin pathmunge /usr/local/sbin else pathmunge /usr/local/sbin after pathmunge /usr/sbin after fi
HOSTNAME=$(/usr/bin/hostnamectl --transient 2>/dev/null) || \ HOSTNAME=$(/usr/bin/hostname 2>/dev/null) || \ HOSTNAME=$(/usr/bin/uname -n)
HISTSIZE=1000 if [ "$HISTCONTROL" = "ignorespace" ] ; then export HISTCONTROL=ignoreboth else export HISTCONTROL=ignoredups fi
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
for i in /etc/profile.d/*.sh /etc/profile.d/sh.local ; do if [ -r "$i" ]; then if [ "${-#*i}" != "$-" ]; then . "$i" else . "$i" >/dev/null fi fi done
unset i unset -f pathmunge
if [ -n "${BASH_VERSION-}" ] ; then if [ -f /etc/bashrc ] ; then # Bash login shells run only /etc/profile # Bash non-login shells run only /etc/bashrc # Check for double sourcing is done in /etc/bashrc. . /etc/bashrc fi fi [root@RockyLinux01 ~]# |
관련자료
-
이전
-
다음