명령 행에서 사용자에게 sudo 권한을 사용하지 않도록 설정 우분투에서 루트 사용자를 활성화했으며

우분투에서 루트 사용자를 활성화했으며 DE가없는 서버로 우분투를 사용하고 싶습니다. 이를 위해 첫 번째 사용자에게 주어진 sudo 권한을 비활성화하고 싶습니다. 명령 줄에서 어떻게 할 수 있습니까? GUI를 사용할 수 있지만 명령 줄에서 GUI를 사용하는 방법을 알고 있습니까?



답변

해당 사용자는 admin그룹 에 있으므로 sudo 권한이 있습니다. wojox가 언급했듯이 visudo관리자 그룹에서 sudo 권한을 사용 하고 제거 할 수는 있지만 한 사용자 만이 아니라 관리자 그룹의 모든 구성원 에서 sudo 기능이 제거 됩니다.

또는 관리자 그룹에서 사용자를 제거 할 수 있습니다. 화면 지향 vi이 명령 행으로 충분하다면, vigr해당 행에서 사용자 이름을 실행 하고 삭제하십시오.

“순수한”명령 행 솔루션의 경우 gpasswd/ etc / group을 관리하고 그룹에서 사용자를 추가 및 삭제할 수 있으므로 시도 하십시오.

root@toki:~# id -Gn username
username adm dialout cdrom plugdev lpadmin admin sambashare
                                         # ^- the group to remove
root@toki:~# gpasswd -d username admin
Removing user username from group admin

root@toki:~# id -Gn username
username adm dialout cdrom plugdev lpadmin sambashare
                                        # ^- username not a member
root@toki:~# gpasswd -a username admin
Adding user username to group admin
root@toki:~# id -Gn username
username adm dialout cdrom plugdev lpadmin admin sambashare

아래는 내가 멍청한 방법이 있다는 것을 깨닫기 전의 첫 번째 대답입니다.

더 복잡한 방법을 원한다면을 사용할 수 있습니다 usermod.

usermod맨 페이지 에서 인용 한 내용은 다음과 같습니다 .

-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]
    A list of supplementary groups which the user is also a member of.
    Each group is separated from the next by a comma, with no intervening
    whitespace. The groups are subject to the same restrictions as the
    group given with the -g option.

    If the user is currently a member of a group which is not listed, the
    user will be removed from the group. This behaviour can be changed via
    the -a option, which appends the user to the current supplementary group
    list.

따라서를 제외하고 사용자의 모든 그룹을 지정해야합니다 admin.

root@toki:~# id username
uid=1000(username) gid=1000(username) groups=1000(username),4(adm),20(dialout),24(cdrom),46(plugdev),111(lpadmin),119(admin),122(sambashare)

root@toki:~# usermod -G 4,20,24,46,111,122 username

root@toki:~# id username
uid=1000(username) gid=1000(username) groups=1000(username),4(adm),20(dialout),24(cdrom),46(plugdev),111(lpadmin),122(sambashare)

마지막으로 질문의 정신을 위반하지만 users-admin명령 줄에서 입력 하여 사용자와 그룹을 수정할 수 있습니다.


답변

위의 답변에서 지혜가 무엇이든간에 루트 계정을 활성화하고 지정된 사용자에 대해 sudo를 비활성화하는 문제를 다음과 같이 해결했습니다.

먼저 루트 계정을 활성화하십시오 :

$ sudo passwd root

우분투 문서 에 더 많은 정보가 있습니다.

그때:

  • 뿌리가되다
  • 백업 후 / etc / group 편집
  • 변경 사항을 테스트하기 위해 다시 사용자가 되십시오

그건:

$ su
# cp /etc/group /etc/group.bak
# nano /etc/group               # find a line like 'sudo:x:27:guest', remove the
                                # user name (i.c. 'guest') and save the file
# exit,
$ [try any sudo command]

사용자 ‘guest’가 이제 sudoers 파일에서 제거되었습니다. 모든 것이 잘 진행 되었다면 sudo 명령은 다음과 같은 메시지를 반환해야합니다 :

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

이 컴퓨터에 로그인 한 게스트는 더 이상 실수로 또는 기꺼이 시스템을 망칠 수 없습니다. 루트 권한이 있어야하기 때문입니다. 물론 새 사용자를 추가 할 경우 / etc / group 편집을 반복해야합니다.

건배!

-linuxrev

(우분투 12.04)


답변

경고

조심스럽게, 당신은 이런 식으로 우리 시스템에서 자신을 잠글 수 있습니다! 루트 사용자가 자신의 권한을 보유하고 액세스 할 수 있는지 항상 확인하십시오. 변경 사항을 취소 할 수 있도록 루트 터미널을 미리 열어 두십시오. 루트 터미널을 닫기 전에 다른 터미널에서 설정을 테스트하십시오!

소더

다른 답변 에서 설명한대로 . /etc/sudoers쉘에서 visudo를 호출하여 편집하십시오 .

sudo select-editor # this is optional. it will allow you to select your default editor in shell
sudo visudo

그런 다음 이와 비슷한 줄을 변경하십시오.

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

이에:

# root may gain root privileges
root ALL=(ALL) ALL

또는 확실하지 않은 경우 루트 사용자 계정이 활성화 된 줄을 삭제하십시오.

그룹

기본 사용자는 ‘admin’그룹의 구성원입니다. 원하는 경우 해당 그룹 의 사용자 멤버 자격취소 할 수도 있습니다 . 마지막 링크를 따라 가거나 파일 의 행 admin:x:120:defaultuser에서 그의 이름을 제거 /etc/group하십시오.

cp -n /etc/group /etc/group.bak && \
sed -i 's/\(admin:x.*\)defaultuser\(.*\)/\1\2/g' /etc/group