반응형
리눅스를 사용하다보면 필요에 의해서 특정 계정에 높은 권한을 줘야할 때가 있다.
구글링을 조금 하다보면 /etc/sudoers 파일에 특정 라인을 추가해주면 된다고 하는데,
어떨 때는 잘 되고 어떨 때는 잘 되지 않는 경우가 있다.
이번 글에서는 sudo의 사용법과 트러블 슈팅 경험을 공유하고자 한다.
sudo 설정을 해보자.
sudoers 파일의 기본 구성은 다음과 같다. (기본적으로 sudoers 파일은 읽기전용이다)
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL:ALL) ALL
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
# See sudoers(5) for more information on "#include" directives:
#includedir /etc/sudoers.d
sudo 권한을 넣기 위해서는 20번째 줄 아래에
# User privilege specification
root ALL=(ALL:ALL) ALL
사용자명 ALL=(ALL:ALL) ALL 형식으로 추가하면 된다.
# User privilege specification
root ALL=(ALL:ALL) ALL
ubuntu ALL=(ALL:ALL) ALL # 원하는 사용자 추가
이 설정 이후에는 `ubuntu` 계정에서 sudo 명령을 입력하게 되면 다음과 같은 입력창이 생성된다
ubuntu@jupyter-hub:~$ sudo su
[sudo] password for ubuntu:
패스워드를 입력하면, `root` 사용자로 로그인할 수 있다.
패스워드 없이 사용해보자
필요에 따라 sudo 명령 사용시 패스워드 입력 없이 사용하는 방법을 시도해 봅시다.
sudoers 파일에 아래 라인을 추가해줍니다.
# User privilege specification
root ALL=(ALL:ALL) ALL
ubuntu ALL=(ALL:ALL) ALL
ubuntu ALL=NOPASSWD: ALL
문제 발생
sudoers 파일을 저장하고, sudo 명령어를 사용해보면 패스워드를 입력해야한다고 한다.
뭐가 잘못 되었을까?
찬찬히 확인해보면, `NOPASSWD` 라인은 반드시 %sudo ALL=(ALL:ALL) ALL 라인 아래에 있어야만 정상 작동하는 것을 확인할 수 있다.
다시 NOPASSWD 라인을 설정해주고 sudoers 파일을 확인해보면 다음과 같다.
# User privilege specification
root ALL=(ALL:ALL) ALL
ubuntu ALL=(ALL:ALL) ALL
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
ubuntu ALL=NOPASSWD: ALL
이제는 sudo nopasswd 기능이 잘 적용된 것을 확인할 수 있다.
ubuntu@jupyter-hub:~$ sudo su
root@jupyter-hub:/home/ubuntu#
한 줄요약
NOPASSWD 라인의 위치가 중요함
끝
반응형
'리눅스' 카테고리의 다른 글
부하 테스트 - CPU 부하 테스트하기 (stress) (0) | 2023.09.06 |
---|---|
SSH에 OTP 적용하기 (MFA) (0) | 2023.09.05 |
caddy를 활용하여 간단히 웹서버에 HTTPS를 붙여보자 (0) | 2023.02.24 |