우분투에서 루트 사용자를 활성화했으며 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