ITStudy/Linux

su 명령어와 사용자 전환 시 주의할 점. su와 su -의 차이점

Todays Goal 2023. 8. 9. 12:23
728x90
반응형

안녕하세요, 오목입니다.

오늘은 Linux에서 가장 기본적인 명령어 중 하나인 su를 다루면서 su와 su -의 차이점에 대해서 알아보도록 하겠습니다.

* 본 포스팅은 ChatGPT를 참고해 작성한 내용임

 

su

su는 슈퍼 유저(super user) 또는 다른 사용자로 전환하는 명령어입니다. 이 명령어를 사용하면 현재 로그인한 사용자를 다른 사용자로 전환하여 해당 사용자의 권한으로 작업할 수 있습니다.

기본적으로 su 명령어를 실행하면 슈퍼 유저인 root 계정으로 전환하게 됩니다.

예를 들어, 일반 사용자로 로그인한 후 시스템 관리 작업을 수행해야 할 때나 다른 사용자의 권한으로 특정 작업을 실행해야할 떄 su 명령어를 사용할 수 있습니다.

$su [username]

이때 [user]는 전환하고자 하는 사용자의 이름입니다. 만걍 사용자 이름을 생략하면 root 계정으로 전환됩니다.

사용자 전환 시에는 전환하고자 하는 사용자의 패스워드를 입력하여야 하며, 입력 후 사용자의 권환으로 전환되어 명령어를 실행할 수 있게 됩니다.

su 명령어를 사용할 때는 현재 사용자의 권한을 주의하여 사용해야 하며, 실수로 중요한 파일을 변경하거나 삭제하는 등의 위험한 작업을 하지 않도록 주의해야 합니다.

 

su vs su - (su와 su -의 차이점)

'su' 명령어는 사용자를 변경하여 다른 사용자로 로그인하는 명령어로 기본적으로 현재 사용자의 환경 병수 및 작업 디렉토리를 그대로 유지한 채 다른 사용자로 전환합니다.

$su [username]

'su -' 명령어는 사용자를 변경한 후 해당 사용자의 환경 변수와 홈 디렉토리로 전환하는 명령어입니다. 이 명령어를 사용하면 새로운 사용자로 로그인 한 것처럼 환경 변수와 작업 디렉토리가 설정됩니다.

$ su - [username]

차이점 요약

- 'su' 환경 변수와 작업 디렉토리를 변경하지 않고 다른 사용자로 전환

- 'su -' 환경 변수와 작업 디렉토리를 새 사용자의 것으로 변경하여 전환

일반적으로 시스템 관리 작업 시에는 'su -'를 사용하여 사용자를 변경하면 새로운 사용자의 환경에서 작업을 수행할 수 있어서 더 안전하고 예측 가능한 환경을 제공합니다.

 

사용자 환경변수 확인

그렇다면 사용자의 환경변수는 어떻게 확인할 수 있을까요?

리눅스에서 사용자의 환경 변수를 확인하는 명령어는 'printenv'나 'env'를 사용할 수 있습니다.

1. printenv 명령어:
printenv 명령어는 현재 사용자의 환경 변수를 출력하는 명령어입니다.

$printenv


2. env 명령어:
env 명령어도 마찬가지로 현재 사용자의 환경 변수를 출력하는 명령어입니다.

$ env


이 명령어들은 현재 로그인한 사용자의 환경 변수를 확인할 수 있게 해주며, 사용자에게 할당된 변수들과 해당 값들을 출력합니다. 이를 통해 시스템의 환경 설정과 관련된 정보를 파악할 수 있습니다.

 

728x90
반응형