루트 이름을 어떻게 바꾸나요?


27

그것을 바꾸는 것은 좋은 생각이 아니라 재미를 위해서입니다. 에 따르면 게시물이도에 항목을 변경 한 후 몇 가지 문제가 여전히 /etc/passwd, /etc/shadow그리고 /etc/sudoers. 어떤 제안?


계정 이름 "root"? 최상위 디렉토리 "/"?
akira

4
사용자 이름 루트
yxkb

1
질문을 명확히하십시오 ...
akira

7 년 후, 나는 당신이 그것으로 진행했는지와 그 때문에 어떤 종류의 BadStuff가 일어 났는지 궁금합니다 ... ^ _ ^
Mioriin

답변:


29

이론적으로, 그것을 변경 /etc/passwd하고 /etc/shadow당신은 '이름 바꾸기'루트에 필요한 모든 것입니다. 이 문제는 존재하는 거의 모든 유닉스 소프트웨어가 사용자 이름 'root'가 존재하고 그것이 메일 별명, 다양한 데몬, 크론과 같은 슈퍼 유저라고 가정하기 때문에 발생합니다.

만약 당신이 그것을 시도하기 위해 정말로 구부러져 있다면, find /etc -type f -exec grep -l root {} +아마도 변경해야 할 모든 구성 파일의 목록을 찾는 것이 좋을 것입니다. 그러나 이미 말했듯이, 이것은 거의 모든 가능한 상황에서 정말 나쁜 생각입니다.

EDIT 또 다른 생각 - 당신이 (당신이 어떤 이미하지 않은 경우 해야 이) 있는지 확인 /etc/aliases에 대한 항목이 포함 root하고있는 사용자 이름이나 이메일 주소가 평가하여 올바르게합니다. cron예를 들어 많은 자동화 된 시스템 전체 작업 은 전자 메일을 통해 출력을 전자 메일로 보냅니다 root.


2
/ etc / group에는 또한 사용자 이름이 있습니다.
vrdhn

문제의 그룹이 기본 그룹이 아닌 경우 사용자 이름 만 해당합니다.
Shadur

3
그렇습니까? 나는 대부분의 앱이 이름이 아닌 UID를위한 것이라고 생각했다. 이상적으로는 어떤 애플리케이션도 "root = UID 0"을 가정해서는 안된다
yxkb

2
@ yxkb : 당신은 응용 프로그램 그것을 가정 해서는 안됩니다 . 그러나 나는 모든 응용 프로그램이나 스크립트마다 1 달러를 받고 싶습니다! :)
Bram

1
과연. 우리가 모두 개인적 chown root …으로 셸 스크립트로 작성 했거나 비슷한 것을 생각해 봅시다 .
derobert

24

"두려워하지 마라!" 말도 안됩니다. 한 번에, 그렇습니다. 아마도 잘못 작성된 대본을 많이 깨 뜨렸을 것입니다. 최소한 표준 배포판에는 없습니다.

우리는 리눅스 서버의 서브셋에서 루트 계정의 이름을 바꾸라는 지시를 받았습니다. 그래서이 작업을 올바르게 수행하는 방법을 연구 한 후 "하지 마십시오!"라는 많은 게시물을 발견했습니다. 이 작업을 선택하면 "나쁜 일"에 대한 많은 경고가 발생합니다. 그러나, 나는 일어날 수있는 "나쁜 것들"의 구체적인 예를 아직 찾지 못했다.

그래서, 내가 어디에 있는지, 어떻게 우리가 여기에 왔는지 설명하고 다시 설명하겠습니다. 우리는 PCI 호환 환경을 구축하고 있으며 이러한 "요구 사항"을 충족시키는 데 도움이되는 도구 중 하나는 루트 및 관리자 및 게스트 계정의 이름을 다른 것으로 바꿔야한다는 것을 알려줍니다. PCI에 대해 잘 모르는 사람들에게는 지침을 따르거나 해당 지침을 따르지 않거나 선택할 수없는 이유와 시스템을 안전하게 유지하기위한 완화 전략을 문서화 할 수 있습니다. 따라서 대부분의 장소에서 루트 계정의 이름을 바꾸지 않는 이유를 문서화했다고 생각하지만 우리 그룹은 문제없이 Windows 관리자 계정의 이름을 바꿀 수 있으면 Linux 루트 계정의 이름도 바꾸겠다고 결정했습니다.

나는 "모호함을 통한 보안"주장에 정통합니다. 루트 계정 이름을 변경해도 실제로 보안이 크게 향상되지는 않지만 SSH에서 루트를 비활성화해야한다는 것을 알고 있습니다. 요점은 아닙니다. 더 많은 것을 듣고 싶지는 않습니다. 또한 "하늘이 떨어질 것"경고에 관심이 없습니다. ">이 나쁜 것은 <이 표준 패키지에서 발생합니다 <> (이것을 수행하지 않는 한)"와 같은 문장을 찾고 있습니다.

지금까지 루트 계정 이름을 바꾸는 데 아무런 문제가없는 3 CentOS (RHEL) 시스템이 있습니다. 내가 한 일은 다음과 같습니다. / etc / passwd, / etc / shadow, / etc / group 및 / etc / gshadow에서 계정 이름을 변경했습니다. 그런 다음 / etc /의 루트 이름을 grepp하고 postfix aliases 파일을 수정하여 root가 새 계정 이름의 별칭이되도록 rojotoro라고합니다. (다른 이메일 시스템에서도 비슷한 방법을 사용해야합니다). 또한 누가 자동으로 생성 할 파일을 소유해야하는지 설명 할 때 logrotate에 대한 일부 구성을 변경해야한다는 것을 알았습니다. 그리고 그것은 내가 지금까지 변한 전부입니다.

많은 init.d 스크립트를 살펴 보았지만 아무것도 변경하지 않았으며 부팅시 모든 것이 잘 시작되는 것으로 보입니다. sudo : "sudo -u rojotoro vim / etc / passwd"를 사용할 때 새 계정을 지정해야하지만 실제로 sudoers 파일 내에서 아무것도 변경하지 않아도됩니다. 나는 우리가 가지고 있고 시행하는 selinux에 관한 문제를 예상했지만 지금까지는 그 시스템을 만질 필요가 없었습니다.

또한 mkdev 또는 mkfs 스크립트를 조정해야 할 수도 있지만,이를 사용할 계획이 없으므로 조사 할만한 가치가있는 스크립트를 보지 않았습니다.

selinux 지원 시스템에 아무런 영향을 미치지 않고 변경하기가 정말 쉽다면 왜 모든 두려움이 계속되는가?


11
사람들에게 무지한 사람들을 부르는 데 사용되는 여러 문단을 잘라 내면 오히려 더 나은 대답이 될 것입니다. 실제로는 필요하지 않습니다
Michael Mrozek

3
네 말이 맞지만 인정하기까지 시간이 걸렸다. 아이디어를 강타하기 전에 다른 사용자가 루트 사용자 이름을 변경하는 데 실제로 경험이 있는지 확인하는 것이었지만 실제로는 필요하지 않았습니다.
5mi11er

3
CentOS를 사용 중이므로 rpm -Va루트 계정 이름이 바뀐 시스템에서 말하는 내용을 확인할 수 있습니까? 최대 RPM 안내서 "사용자 및 그룹 식별자는 숫자가 아니어야합니다." 에 따르면 파일을 지정하는 RPM은 root가 소유해야하므로 설치시이를 수행 할 수 없습니다. 시스템이 어떻게 처리하는지 궁금합니다.
Bram

1
PCI의 어디에 ROOT의 이름을 바꿔야한다고 말합니까?
Kidburla

@MichaelMrozek, 일반적으로 나는 이와 같은 뒷이야기가 없어야한다는 것에 동의합니다. 그러나이 주제에 대한 인터넷 검색에는 OP가 세 단락에 대해 이야기하는 많은 정확한 경고가 가득합니다.이 경우에는 이것이 필요하다고 생각합니다. 그것은 그의 "How To"단락의 틀을 잡는 데 도움이되었고 그의 해결책의 맥락이 나의 것과 비슷하다는 것을 알기 쉽게 따라 갔다.
user1717828

7

제안 : 그렇게하지 마십시오.

일부 도구는 uid를 통해 루트와 대화하려고 시도하므로 문제가 없습니다. 일부 도구는 루트 계정이 루트라고하며 깨질 것이라고 가정합니다. "재미를 위해"시스템의 절반을 다시 컴파일 할 준비가되지 않았다면 시도하지 마십시오.


2
나는 이름을 바꾸는 루트가 기껏해야 끔찍한 아이디어라고 주장하는 사람은 없다고 생각합니다.
Shadur

kuhkatz는 단지 예방책입니다. 누군가가 그렇게하면 누군가가 루트를 바꿀 때 어떤 일이 발생하는지 알면 되돌릴 수 있습니다.
yxkb

sudo를 사용하는 것처럼 루트로 로그인을 중단한다는 메모에서 그 아이디어를 얻었습니다. 따라서 되돌릴 수있는 유일한 방법은 완전히 다시 설치하는 것입니다. 따라서, 당신은 그것을 시도 할 필요가 없습니다, 그것은 분명히 그것을 복원하는 방법입니다. 또한 사용자가 어쨌든 시도 할 경우를 대비하여 LART를 준비하십시오.
kuhkatz

재 컴파일 때문에 ... gogo gentoo? 모든이 빌드에 하나의 패치를 적용하여 모든 것을 지배 할 수 있습니까?
Bananguin

4

내 생각에 가장 쉬운 일은 UID 0을 사용 /root하고 집 으로 새로운 사용자 (별칭)를 만드는 것 입니다.

왜 루트의 기본 쉘을 /bin/false또는로 변경하여 /sbin/nologin(아무도 로그인 할 수는 없지만 시스템은 여전히 ​​사용하고 있음) 새 별칭으로 로그인하지 않겠습니까?

razvan@naboo ~ $ head -2 /etc/passwd
root:x:0:0:root:/root:/bin/nologin
root2:x:0:0:root:/root:/bin/bash
razvan@naboo ~ $ su -
Password:
su: Authentication failure
razvan@naboo ~ $ su root2
Password:
naboo razvan # whoami
root

루트 쉘을 nologin으로 변경하면 sudo, mail 또는 ftw가 손상되지 않습니다.


@ 5mi11er가 지적했듯이 인정하지 않았지만 루트 쉘이 설정되어 /bin/false있거나 /sbin/nologin서비스를 시작할 수없는 경우. 따라서 모든 것을 다시 구성해야합니다. 또한 "루트"권한이있는 두 번째 계정을 추가하면 보안이 거의 향상되지 않습니다.
Bram

나는이 솔루션이 지금까지 최고라고 생각합니다. 이름을 루트로 검색하고 루트로 로그인을 비활성화 할 수 있습니다. 루트의 순서를 바꿔서 root2가 루트 앞에 나타나면 whoami가 root2를보고합니다. 첫 번째 uid 항목이 일치하면 uid to name 조회가 중지됩니다. 커널이 프로세스를 시작하고 시스템을 설정하기 위해 uid 0을 제공하기 때문에 서비스를 시작할 수 없다는 것에 동의하지 않습니다 (init, upstart, ...)
X Tian

2

Linux는 Windows가 아니며 현재 알 수없는 미래의 문제없이 루트를 쉽게 이름을 바꿀 수 없습니다.

루트로 원격 및 로컬 로그인을 비활성화하는 것은 계정 루트를 적극적으로 비활성화하기 때문에 더 안전한 방법입니다! UBUNTU는 기본적으로이 작업을 수행하고 루트 액세스 대신 sudo를 강제 실행합니다.

더 이상 시스템에 로그인하는 데 사용될 수 없기 때문에 루트 계정을 사용하여 시스템을 공격 할 수있는 사람은 없습니다!

루트 계정 이름을 쉽게 수정하고 설치시 UID를 임의로 생성하는 표준 방법을 만들면 가능하지만 UID 타겟팅을 막기 위해 모든 초기 시작시 가능하지만 현재는 존재하지 않는 것이 좋습니다.

/ etc / passwd 조정 root : x : 0 : 0 : root : / root : / bin / nologin 수정

긴급 사용 전용으로 하나의 대체 관리자 계정을 만드십시오! fallbackadmin : x : 0 : 0 : 루트 : / 루트 : / bin / bash

책임을 변경 한 사람을 정확하게 추적하기 위해 변경 로그 감사를 구현할 수 있도록 모든 관리자에 대해 sudo를 구현하십시오!

이는 기본 관리자 / 게스트 계정을 비활성화하고 단일 비상 사용 관리자 계정을 만들기 위해 PCI US Gov 요구 사항을 구현합니다.

감사를 위해 로그를 보관하는 한 가지 방법은 중앙 집중식 AAA가 구현되지 않은 경우 sudo 계정 액세스 권한이있는 모든 사용자로부터 터미널 기록을 수집하는 것입니다.

관리자 전용 계정을 구현하는 솔루션은 하나의 사용자 전용 계정과 하나의 sudo 사용 가능 계정을 만든 다음 사용자가 관리 액세스를 위해 sudo 사용 가능 계정으로 su를 강제하는 것입니다.

더 나은 보안을 원할 경우 스마트 카드 인증을 구현할 수도 있습니다. GNU / 리눅스에 사용할 수있는 솔루션이 미국 공용 액세스 카드 CAC 솔루션과 비교하여 2 단계 인증이 가능합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.