티스토리 뷰

반응형



녕하세요.


일반 사용자가 sudo를 사용할 때 권한이 없어 사용하지 못합니다.


우분투에서는 사용이 가능했던걸로 기억했지만.. 센토스에서는 되지 않네요.


이 명령어를 제대로 활용하기 위해서는 아래와 같이 따라하시면 됩니다.



Ⅰ. 설정 방법


[root@seob ~]# tail /etc/passwd

haldaemon:x:68:68:HAL daemon:/:/sbin/nologin

gdm:x:42:42::/var/lib/gdm:/sbin/nologin

ntp:x:38:38::/etc/ntp:/sbin/nologin

apache:x:48:48:Apache:/var/www:/sbin/nologin

mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash

pulse:x:497:494:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

tcpdump:x:72:72::/:/sbin/nologin

oprofile:x:16:16:Special user account to be used by OProfile:/home/oprofile:/sbin/nologin

nx:x:496:500::/var/NX/nx:/etc/NX/nxserver



현재는 아무런 사용자가 추가되어있지 않는 상태입니다. 그렇기 때문에 사용자를 추가해줍니다.



[root@seob ~]# useradd seob

[root@seob ~]# passwd seob

Changing password for user seob.

New password: 

Retype new password: 

passwd: all authentication tokens updated successfully.



seob이라는 계정이 생성되었습니다.

su 명령어로 seob로 전환 후 sudo 명령어를 사용해보겠습니다.



[root@seob ~]# su - seob

[seob@seob ~]$ sudo -s


We trust you have received the usual lecture from the local System

Administrator. It usually boils down to these three things:


    #1) Respect the privacy of others.

    #2) Think before you type.

    #3) With great power comes great responsibility.


[sudo] password for seob

seob is not in the sudoers file.  This incident will be reported.



su로 seob 계정으로 전환 후 sudo -s 라는 명령어로 root로 전환하려고 했지만 실패했습니다.

seob에 대한 sudoers 파일이 기록되어 있지 않기 때문입니다.

즉, 쉽게 말해 sudo 권한이 없는 것이죠.

이 문제를 해결하기 위해서는 다음과 같이 똑같이 해주세요.



■ 수정 전

[root@seob ~]# vi /etc/sudoers


 88 ## Next comes the main part: which users can run what software on 

 89 ## which machines (the sudoers file can be shared between multiple

 90 ## systems).

 91 ## Syntax:

 92 ##

 93 ##      user    MACHINE=COMMANDS

 94 ##

 95 ## The COMMANDS section may have other options added to it.

 96 ##

 97 ## Allow root to run any commands anywhere 

 98 root    ALL=(ALL)       ALL

 99 

100 ## Allows members of the 'sys' group to run networking, software, 

101 ## service management apps and more.

102 # %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS

103 

104 ## Allows people in group wheel to run all commands

105 # %wheel        ALL=(ALL)       ALL

106 

107 ## Same thing without a password

108 # %wheel        ALL=(ALL)       NOPASSWD: ALL

109 

110 ## Allows members of the users group to mount and unmount the 

111 ## cdrom as root

112 # %users  ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom

113 

114 ## Allows members of the users group to shutdown this system

115 # %users  localhost=/sbin/shutdown -h now

116 

117 ## Read drop-in files from /etc/sudoers.d (the # here does not mean a comment)

118 #includedir /etc/sudoers.d



현재 98번 줄에 root만 추가가 되어있습니다.

그 아래에 seob 계정에 대한 내용을 추가해주세요.



■ 수정 후

[root@seob ~]# vi /etc/sudoers


 88 ## Next comes the main part: which users can run what software on 

 89 ## which machines (the sudoers file can be shared between multiple

 90 ## systems).

 91 ## Syntax:

 92 ##

 93 ##      user    MACHINE=COMMANDS

 94 ##

 95 ## The COMMANDS section may have other options added to it.

 96 ##

 97 ## Allow root to run any commands anywhere 

 98 root    ALL=(ALL)       ALL

 99 seob    ALL=(ALL)       ALL

100 

101 ## Allows members of the 'sys' group to run networking, software, 

102 ## service management apps and more.

103 # %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS

104 

105 ## Allows people in group wheel to run all commands

106 # %wheel        ALL=(ALL)       ALL

107 

108 ## Same thing without a password

109 # %wheel        ALL=(ALL)       NOPASSWD: ALL

110 

111 ## Allows members of the users group to mount and unmount the 

112 ## cdrom as root

113 # %users  ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom

114 

115 ## Allows members of the users group to shutdown this system

116 # %users  localhost=/sbin/shutdown -h now

117 

118 ## Read drop-in files from /etc/sudoers.d (the # here does not mean a comment)



위와 같이 수정후 wq!로 저장하여 나와주세요.

그리고 다시 su 명령어로 seob으로 전환합니다.


※ sudo 명령어 입력 시 패스워드를 묻지 않게끔 하고 싶으시다면 seob ALL=(ALL:ALL) NOPASSWD: ALL 이렇게 입력해주시면 됩니다.


[root@seob ~]# su - seob

[seob@seob ~]$ sudo -s

[sudo] password for seob

[root@seob seob]#



이제는 sudo 명령어가 잘 먹힙니다.





Ⅱ. sudo에 대해서


sudo 명령어는 무엇일까요 ?


sudo 명령어는 일반 사용자가 sudo 명령어로 통해서 일시적으로 root의 권한을 획득하여 해당 명령어를 처리합니다.


그럼 굳이 root로 사용하면 될 것을 왜 sudo 명령어를 사용할까요 ?


그 이유는 일반 유저가 root의 패스워드를 알 필요가 없기 때문이죠. 하지만, root의 권한이 필요할 때에는 이러한 방식으로 사용하는 것이 보안쪽으로도 안전합니다.


반응형
댓글
공지사항
최근에 올라온 글