Làm thế nào để bạn đổi tên root?


27

Không phải đó là một ý tưởng tốt để thay đổi nó, nhưng cho vui. Theo này bưu điện, vẫn còn một số vấn đề, ngay cả sau khi thay đổi mục trong /etc/passwd, /etc/shadow/etc/sudoers. Bất kỳ đề xuất?


tên tài khoản "root"? thư mục toplevel "/"?
akira

4
root tên người dùng
yxkb

1
sau đó hãy làm rõ câu hỏi của bạn ...
akira

7 năm sau, tôi tự hỏi liệu bạn có tiếp tục với nó không và loại BadStuff nào đã xảy ra vì nó ... ^ _ ^
Mioriin

Câu trả lời:


29

Về mặt lý thuyết, thay đổi nó trong /etc/passwd/etc/shadowsẽ là tất cả những gì bạn cần để 'đổi tên' gốc. Vấn đề xảy ra bởi vì hầu hết mọi phần mềm Unix tồn tại đều cho rằng tên người dùng 'root' tồn tại và đó là siêu người dùng - bí danh thư, nhiều trình nền, cron ...

Nếu bạn thực sự muốn thử nó, find /etc -type f -exec grep -l root {} +thì nên bắt đầu tìm danh sách mọi tệp cấu hình có thể bạn cần thay đổi - nhưng như bạn đã nói, đây là một ý tưởng thực sự tồi trong hầu hết mọi tình huống có thể tưởng tượng được.

EDIT Một suy nghĩ khác - nếu bạn chưa có (mà bạn nên có), hãy đảm bảo rằng /etc/aliasescó chứa một mục nhập rootvà tên người dùng tồn tại hoặc một địa chỉ email đánh giá chính xác. Rất nhiều tác vụ toàn hệ thống tự động ( cronví dụ) gửi đầu ra của chúng qua email đến root, theo truyền thống được đặt bí danh cho (các) quản trị viên hệ thống chịu trách nhiệm về các hoạt động của hệ thống đó.


2
/ etc / group cũng có tên người dùng ...
vrdhn

Chỉ tên người dùng khi nhóm trong câu hỏi không phải là nhóm mặc định của họ, nhưng điểm tốt.
Shadur

3
Là nó? Tôi nghĩ rằng hầu hết các ứng dụng đều dành cho UID chứ không phải tên. Tôi nghĩ lý tưởng, không có ứng dụng nào nên giả sử "root = UID 0"
yxkb

2
@yxkb: Bạn đúng không có ứng dụng nào nên cho rằng. Nhưng tôi thực sự muốn nhận 1 đô la cho mỗi ứng dụng hoặc tập lệnh đó! :)
Bram

1
Thật. Chúng ta hãy nghĩ về tất cả những lần chúng ta đều viết cá nhân chown root …hoặc tương tự trong một tập lệnh shell.
derobert

24

Tất cả nỗi sợ hãi này, nói rằng "Đừng làm điều đó!" thật nực cười. Tại một thời điểm, vâng, nó có thể đã phá vỡ rất nhiều kịch bản được viết xấu, nhưng tôi nghi ngờ chúng không còn phổ biến nữa; ít nhất là không trong các bản phân phối tiêu chuẩn.

Chúng tôi đã được yêu cầu đổi tên tài khoản root trên một tập hợp con của các máy chủ linux. Vì vậy, sau khi cố gắng nghiên cứu làm thế nào để thực hiện điều này một cách chính xác, thay vào đó, tôi đã tìm thấy rất nhiều bài đăng có nội dung "Đừng làm điều đó!" với rất nhiều cảnh báo nghiêm trọng về "những thứ tồi tệ" xảy ra nếu bạn chọn làm điều này. Nhưng, tôi vẫn chưa tìm thấy bất kỳ ví dụ cụ thể nào về "những thứ tồi tệ" có thể xảy ra.

Vì vậy, hãy để tôi sao lưu và giải thích tôi đang ở đâu, và làm thế nào chúng ta đến đây. Chúng tôi đang xây dựng một môi trường tuân thủ PCI và một trong những công cụ giúp chúng tôi đáp ứng các "yêu cầu" đó là cho chúng tôi biết chúng tôi cần đổi tên tài khoản gốc và quản trị viên và khách sang một tài khoản khác. Đối với những người ít học về PCI, bạn có tùy chọn làm theo hướng dẫn hoặc ghi lại lý do tại sao bạn không thể hoặc chọn không tuân theo hướng dẫn đó và chiến lược giảm thiểu nào bạn phải giữ an toàn cho hệ thống. Vì vậy, tôi tưởng tượng hầu hết các tài liệu về lý do tại sao họ sẽ không đổi tên tài khoản root của họ, tuy nhiên, nhóm của chúng tôi đã quyết định rằng, nếu chúng tôi có thể đổi tên tài khoản quản trị viên windows mà không gặp vấn đề gì, cũng sẽ đổi tên tài khoản root linux.

Tôi thành thạo các lập luận "bảo mật thông qua che khuất"; Tôi biết chỉ cần thay đổi tên tài khoản root không thực sự cải thiện bảo mật rất nhiều, root nên bị vô hiệu hóa tại SSH, v.v. Tôi biết, đó không phải là vấn đề, tôi không muốn nghe thêm. Tôi cũng không quan tâm đến nhiều cảnh báo "bầu trời sẽ sụp đổ". Tôi đang tìm kiếm những tuyên bố như thế này: "> điều tồi tệ này <sẽ xảy ra với> gói tiêu chuẩn này <(trừ khi bạn> làm điều này <)".

Cho đến nay tôi có 3 hệ thống CentOS (RHEL) dường như không có vấn đề gì với việc đổi tên tài khoản root. Đây là những gì tôi đã làm: Tôi đã thay đổi tên tài khoản trong / etc / passwd, / etc / bóng, / etc / group và / etc / gshadow. Sau đó, grepping cho tên gốc trong / etc / và sửa đổi tệp bí danh postfix để gốc đó là bí danh cho tên tài khoản mới của chúng tôi, gọi nó là rojotoro. (Một cái gì đó tương tự nên được thực hiện cho các hệ thống email khác). Tôi cũng thấy rằng tôi cần thay đổi một số cấu hình cho logrotate khi mô tả ai sẽ sở hữu các tệp mà nó sẽ tự động tạo. Và đó là tất cả những gì tôi đã thay đổi cho đến nay.

Tôi đã xem xét nhiều tập lệnh init.d, nhưng không thay đổi bất cứ điều gì và mọi thứ dường như bắt đầu tốt khi khởi động. Tôi phải chỉ định tài khoản mới khi sử dụng sudo: "sudo -u rojotoro vim / etc / passwd" làm ví dụ, nhưng tôi thực sự không cần thay đổi bất cứ điều gì trong tệp sudoers. Tôi dự kiến ​​có thể một số vấn đề với selinux mà chúng tôi gặp phải và thực thi, nhưng cho đến nay tôi không cần phải chạm vào hệ thống đó.

Tôi cũng có thể thấy rằng các tập lệnh mkdev hoặc mkfs có thể cần phải được điều chỉnh, nhưng tôi không có kế hoạch sử dụng chúng, vì vậy tôi đã không nhìn vào chúng với sự xem xét kỹ lưỡng mà chúng xứng đáng.

Nếu nó thực sự dễ dàng thay đổi mà không có hiệu ứng xấu trên hệ thống kích hoạt selinux, tại sao sự tiếp tục của tất cả nỗi sợ hãi lại xuất hiện?


11
Đây sẽ là một câu trả lời khá hơn nếu bạn cắt bỏ một vài đoạn dành riêng để kêu gọi mọi người không biết gì; nó không thực sự cần thiết
Michael Mrozek

3
Bạn nói đúng, nhưng phải mất một thời gian tôi mới thừa nhận điều đó. Mục đích của nó là giúp đảm bảo rằng những người khác có kinh nghiệm thực tế với việc thay đổi tên người dùng gốc trước khi thực hiện ý tưởng, nhưng nó thực sự không cần thiết.
5mi11er

3
Vì bạn đang ở trên CentOS: bạn có thể kiểm tra những gì rpm -Vanói trên các hệ thống mà tài khoản root được đổi tên không? Theo hướng dẫn RPM tối đa "Số nhận dạng người dùng và nhóm phải không phải là số", do đó, bất kỳ RPM nào chỉ định tệp phải được sở hữu bởi root sẽ không thể thực hiện điều đó khi cài đặt. Chỉ cần tự hỏi làm thế nào hệ thống của bạn sẽ đối phó với điều đó.
Bram

1
Trường hợp nào trong PCI nói bạn cần đổi tên ROOT?
Kidburla

@MichaelMrozek, Thông thường tôi sẽ đồng ý một câu trả lời không nên có câu chuyện lạc hậu như thế này. Tuy nhiên, một tìm kiếm trên internet cho chủ đề này có rất nhiều cảnh báo chính xác OP dành ba đoạn nói về, tôi nghĩ rằng nó được kêu gọi trong trường hợp này. Nó giúp đóng khung đoạn văn "Cách làm" của anh ấy và giúp tôi dễ dàng theo dõi hơn khi biết bối cảnh giải pháp của anh ấy tương tự như của tôi.
dùng1717828

7

đề nghị: đừng làm vậy

Một số công cụ cố gắng nói chuyện với root thông qua uid, ở đó bạn không nên gặp vấn đề. một số công cụ giả định tài khoản root của bạn được gọi là root và sẽ bị hỏng. trừ khi bạn chuẩn bị, như, biên dịch lại một nửa hệ thống của bạn "cho vui", đừng thử.


2
Tôi không nghĩ rằng bất cứ ai đang tranh cãi rằng đổi tên root, tốt nhất là một ý tưởng tồi tệ.
Shadur

kuhkatz, nó chỉ là một biện pháp phòng ngừa. nếu ai đó làm điều đó, nó có thể giúp hoàn nguyên nó nếu bạn biết điều gì xảy ra khi ai đó thay đổi root
yxkb

bài viết bạn có ý tưởng đó từ các ghi chú rằng làm nó phá vỡ đăng nhập với quyền root, như sử dụng sudo. do đó, cách duy nhất để hoàn nguyên nó là cài đặt lại sạch sẽ. do đó, bạn không cần phải thử nó, rõ ràng là làm thế nào để khôi phục nó. Ngoài ra, hãy có LART trong tay, chỉ trong trường hợp người dùng của bạn cố gắng.
kuhkatz

Trên tài khoản biên dịch lại ... gogo gentoo? Một bản vá vào mỗi Ebuild để cai trị tất cả?
Bananguin

4

Theo tôi, cách dễ nhất là tạo một người dùng mới (bí danh), với UID 0 và /rootnhư ở nhà.

Tại sao bạn không chuyển đổi vỏ mặc định của root thành /bin/falsehoặc /sbin/nologin(để không ai có thể đăng nhập vào nó, nhưng hệ thống vẫn sử dụng nó) và đăng nhập vào bí danh mới được tạo?

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

Nếu bạn thay đổi shell của root thành nologin, sudo, mail hoặc ftw sẽ không bị hỏng.


Phải thừa nhận như @ 5mi11er đã chỉ ra rằng tôi đã không thử điều này nhưng nếu shell của root được đặt thành /bin/falsehoặc /sbin/nologinnó sẽ không thể bắt đầu bất kỳ dịch vụ nào. Vì vậy, tất cả những thứ đó sẽ phải được cấu hình lại. Cộng với toàn bộ mục đích là để cải thiện bảo mật, việc thêm tài khoản thứ hai với quyền "root" hầu như không cải thiện bảo mật.
Bram

Tôi nghĩ rằng giải pháp này là tốt nhất cho đến nay, nó cho phép tên để tìm kiếm root và vô hiệu hóa đăng nhập cho root. Bạn có thể hoán đổi thứ tự của các dòng để root2 xuất hiện trước root, sau đó whoami sẽ báo cáo root2, tức là. uid để đặt tên tra cứu dừng lại khi mục nhập uid đầu tiên được khớp. Tôi không đồng ý rằng các dịch vụ sẽ không thể khởi động, vì kernel bắt đầu một quy trình và cung cấp cho nó 0 để thiết lập hệ thống (init, upstart, ...)
X Tian

2

Linux không phải là Windows và root hiện không thể đổi tên dễ dàng mà không tạo ra các vấn đề không xác định trong tương lai.

Vô hiệu hóa từ xa và thậm chí đăng nhập cục bộ như root là một cách tiếp cận an toàn hơn vì nó chủ động vô hiệu hóa root tài khoản! UBUNTU về cơ bản thực hiện điều này và buộc sudo thay vì truy cập root.

Về cơ bản không ai có thể sử dụng tài khoản root để tấn công hệ thống của bạn vì nó không còn có thể được sử dụng để đăng nhập vào hệ thống!

Sẽ thật tuyệt nếu một cách tiêu chuẩn được tạo ra để dễ dàng sửa đổi cả tên tài khoản gốc cũng như tạo ngẫu nhiên UID của nó khi cài đặt và nếu có thể mỗi khi bắt đầu lạnh để ngăn chặn nhắm mục tiêu UID nhưng hiện tại không tồn tại.

Điều chỉnh / etc / passwd Sửa đổi root: x: 0: 0: root: / root: / bin / nologin

Tạo một tài khoản quản trị dự phòng duy nhất cho CHỈ SỬ DỤNG KHẨN CẤP! fallbackadmin: x: 0: 0: root: / root: / bin / bash

Triển khai sudo cho tất cả quản trị viên để có thể triển khai kiểm tra nhật ký thay đổi để theo dõi chính xác ai thực hiện thay đổi cho trách nhiệm!

Điều này thực hiện các yêu cầu PCI US Gov để vô hiệu hóa tài khoản quản trị viên / khách mặc định và tạo một tài khoản quản trị sử dụng khẩn cấp duy nhất.

Một cách để lưu trữ nhật ký để kiểm toán là thu thập lịch sử thiết bị đầu cuối từ tất cả người dùng có quyền truy cập tài khoản sudo nếu AAA không tập trung.

Một giải pháp để thực hiện các tài khoản chỉ dành cho quản trị viên là tạo một tài khoản chỉ người dùng và một tài khoản được bật sudo sau đó buộc người dùng phải sử dụng tài khoản được bật sudo của họ để truy cập quản trị.

Bạn cũng có thể triển khai xác thực thẻ thông minh nếu bạn muốn bảo mật tốt hơn, có các giải pháp khả dụng cho GNU / Linux so với Giải pháp CAC của Thẻ truy cập chung Hoa Kỳ để xác thực hai yếu tố.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.