메인OS는 아니지만 우분투를 사용한지도 좀 되긴 했지만 항상 X-window상에서만 사용하다가 보니 꽤 많은 부분이 자동설정되어 있이서 따로 의식하지 못하고 있었습니다. 서버에 설치된 우분투에서 사용할 사용자 계정을 만들고 작업을 하다가 root권한이 필요해서 sudo -s 를 입력하자 아래와 같은 오류가 발생했습니다.
암호를 물어보는 것까지는 정상적이었으나 "userid is not in the sudoers file. This incident will be reported."라는 오류메시지가 나타나면서 root권한을 획득하는 것을 실패했습니다. 해당 유저명이 sudoers파일에 없다고 합니다.(사실 이 파일의 존재자체를 처음 알았습니다.)
sudoers파일은 sudo명령어에 대한 설정을 다루는 파일이고 이곳에 sudo명령어를 사용할 수 있는 계정을 지정할수 있습니다. 그 외에도 여러가지 설정에 대한 부분이 있으며 /etc/sudoers 에 위치하고 있습니다. 기본으로 지정된 내용을 보면 root ALL=(ALL) ALL 이라는 부분이 있는데 이 설정이 root 유저가 sudo명령어를 사용할 수 있도록 하는 부분입니다.
위처럼 sudo명령어를 사용할 계정을 root처럼 추가해 주면 정상적으로 해당 계정에서 sudo 명령어를 사용할 수 있습니다. sudoers파일은 일반적인 vi등으로 편집하지 않고 visudo -f /etc/sudoers 명령어를 사용하면 vi와는 다른 형태의 에디터가 열리고 여기서 수정할 수 있습니다.(vi를 통해서 접근하면 읽기전용파일로 나옵니다.) 수정후에 저장할때 sudoers 설정에 대한 문법까지 체크해주기 때문에 혹시모를 문제를 위해서 visudo를 이용해서 파일을 수정합니다.
감사합니당!!
예! ㅎㅎㅎ
안녕하세요 한가지 여쭤봐도 될란지요?
/etc/sudoers 편집으로 sudo 권한이 필요한 특정 sh 실행파일이나
특정 sudo 명령어 하나를 패스워드 없이 입력가능하도록 할 수 없을까요?
userID ALL=NOPASSWD:/home/user/autostart.sh
userID ALL=NOPASSWD:sudo command line
이런식으로 마지막 줄을 붙여 보있지만 안 되더군요.
죄송하지만 도와주실 수 있나요?
아무래도 보안과 관련되다 보니 직접 그렇게 해본적은 없네요.
말씀하신 내용보고 약간 찾아보니 특정 명령어만 하는 경우는 없고
username ALL=(ALL) NOPASSWD: ALL
처럼 모든 명령어를 하는것 같은데 특정 명령어만 하셔야 되는건가요?
아니면 주신 내용처럼 특정 스크립트면 그룹에 추가하거나 owner 권한을 할당하는 방법으로는 안되는지 궁금합니다.
Cmnd_Alias EXAMPLE = /usr/bin/example
User ALL = NOPASSWD:EXAMPLE
이런식으로 하시면 특정 파일에 대한 설정 할 수 있습니다
sudo vim -f/etc/sudoers
입력하고 비밀번호 입력했는데
또 똑같이뜨는데 어쩌죠ㅠㅠ?
visudo -f /etc/sudoers
이렇게하니까
visudo: /etc/sudoers: Permission denied
이렇게나오는데 어떡하죠??
파일 권한을 확인하시고 root 등으로 접속해서 visudo로 수정하셔야 할겁니다.
sudo 로 root로 접속이 안되는데 어떻게 root로 접속을 하란 말씀이신가요?
chmod 755로 sudoers 권한을 바꾸려 해도 안됩니다..
이건 root로 접속하지 않고 다른 계정에서 root의 권한을 획득하는 것이므로 root 계정으로 접속해서 권한을 주어야 합니다. root 계정으로 접속할 수 있는 권한이 없다면 당연히 권한을 부여받을 수 없습니다.
감사합니다. +ㅁ+)
덕분에 잘 해결봤습니다.
sulinux에도 그대로 적용되는군요.