Làm thế nào tôi có thể làm mọi thứ chỉ cần giả sử tôi đang chạy như siêu người dùng?


10

Có cách nào để tôi có thể khiến mọi thứ chỉ giả sử rằng khi tôi chạy chúng tôi đang chạy chúng với tư cách là quản trị viên đặc quyền (root AKA)? Tôi biết nó có thể nguy hiểm và tất cả, nhưng đó là rủi ro tôi sẵn sàng nhân danh sự tiện lợi.


Đừng làm điều này. Nó sẽ phá vỡ hệ thống của bạn (ngoài việc để máy của bạn bị tấn công). Đọc unix.stackexchange.com/questions/1052/iêu
MarkovCh1

Nhưng nếu bạn vẫn muốn chạy các ứng dụng cụ thể dưới quyền root, hãy xem wiki.archlinux.org/index.php/Sudo
MarkovCh1

1
Jon, tôi quay lại chỉnh sửa của bạn. Ngay cả khi bạn sẽ không làm điều đó, câu hỏi / câu trả lời vẫn hữu ích cho bất kỳ ai khác xem xét điều này. Để giữ cho trang này hữu ích, câu hỏi vẫn còn hoặc khách truy cập mới sẽ chỉ thấy "câu hỏi đã rút" kèm theo câu trả lời cho câu hỏi mà họ không thể xem :)
Caesium

2
Không nên bỏ phiếu vì lý do tương tự
Mark Rooney

2
Đúng, đó là một câu hỏi tuyệt vời. Điều duy nhất ngu ngốc ở đây là không nhận lời khuyên trong các bình luận và câu trả lời. +1
Tom Brossman

Câu trả lời:


21

Thông thường tôi sẽ bao gồm các hướng dẫn trong một câu trả lời, nhưng đây là một ý tưởng tồi tệ như vậy tôi sẽ chỉ cho bạn một vài nơi để đọc về cách làm điều này. Bạn có thể lấy nó từ đó. Lưu ý rằng khi bạn phá vỡ hệ thống của mình, bạn có thể đăng lại ở đây để được giúp đỡ, nhưng mọi người sẽ cười và lắc đầu và tham khảo các lỗi về pebkac , v.v.

Đầu tiên, trang trợ giúp Ubuntu trên Root / sudo. Lưu ý ba cảnh báo lớn, nổi bật.

Đây là một người dùng Diễn đàn Ubuntu đã làm một cái gì đó như thế này và không thể sửa chữa hệ thống của họ.

Giữ các bản sao lưu dữ liệu của bạn nếu bạn làm điều đó và xem xét sự khôn ngoan của bảo mật giao dịch để thuận tiện. Có thể đưa vào một album Dead Kennedys cũ trong khi bạn cài đặt lại ...


3

Nếu bạn chỉ quan tâm đến những thứ cụ thể chạy bằng root, bit setuid là tính năng phù hợp.

Bằng cách thiết lập bit này, chương trình sẽ chạy với sự cho phép của chủ sở hữu. Do đó, bạn có thể lấy một chương trình, thay đổi chủ sở hữu của nó thành root, thiết lập bit setuid và chương trình đó sau đó sẽ chạy như root mà không cần sự can thiệp đặc biệt nào.

Một số chương trình trong Ubuntu được setuid theo mặc định - ví dụ: ping

> ls -l `which ping`
-rwsr-xr-x 1 root root 35712 2011-05-03 11:43 /bin/ping

Chương trình này cần chạy bằng root vì chỉ root mới có thể mở một cổng dưới 1024 để nghe, cần phải nghe các gói trả về.

Như đã lưu ý, việc cho phép các quyền của chương trình theo mặc định là nguy hiểm và thường được dành riêng cho các chương trình đơn giản, được kiểm toán tốt - bất kỳ chương trình nào có thể bị khai thác do đầu vào bên ngoài sẽ có nguy cơ khiến toàn bộ hệ thống của bạn bị xâm phạm, thay vì chỉ những khu vực mà tài khoản người dùng của bạn có quyền truy cập.


Không liên quan :: thở dài: Bảo mật Unix: phải cho đi toàn bộ hệ thống để mở cổng nghe. Làm thế nào mà làm việc mặc dù? Không ai chạy ví dụ như apache là root ...
Billy ONeal

1
Tôi tin rằng Apache xử lý nó bằng cách sinh ra các tiến trình con với các UID ít đặc quyền hơn và chỉ bắt đầu một quy trình chính mở cổng 80 dưới dạng root. Các tiến trình con xử lý tất cả các yêu cầu người dùng. Tôi nghĩ một mô hình phổ biến khác là các quy trình sẽ bắt đầu root setuid, và sau đó sử dụng setuid để thay đổi thành người dùng hạn chế ngay khi họ có được tài nguyên mà họ cần root để sử dụng; unixwiz.net/techtips/chroot-practices.html
Adrian

1

Xin đừng làm vậy. Bạn không chỉ làm tổn thương chính mình, mà bạn còn làm tổn thương người khác. Có đủ zombie, spam và các máy chủ DDoS.

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.