Sự khác biệt giữa sudo -i và sudo su -


Câu trả lời:


30

Chúng có thể cung cấp chức năng gần với cùng một thứ, nhưng có vẻ như 'sudo -i' có trọng lượng nhẹ hơn và giữ một số tài liệu tham khảo trở lại tiện dụng trong môi trường của bạn.

Bạn có thể xem các quy trình bổ sung bằng cách xem 'ps auxf' (f cung cấp cho bạn chế độ xem rừng)

sudo -i mang lại cây quá trình này

jkrauska  4480  0.0  0.0  76828  1656 ?        S    23:38   0:00  |   \_ sshd: jkrauska@pts/0
jkrauska  4482  0.0  0.0  21008  3816 pts/0    Ss   23:38   0:00  |       \_ -bash
root      4675  0.6  0.0  19512  2260 pts/0    S+   23:42   0:00  |           \_ -bash

sudo su - mang lại cây quy trình này

jkrauska  4480  0.0  0.0  76828  1656 ?        S    23:38   0:00  |   \_ sshd: jkrauska@pts/0
jkrauska  4482  0.0  0.0  21008  3816 pts/0    Ss   23:38   0:00  |       \_ -bash
root      4687  0.5  0.0  43256  1488 pts/0    S    23:42   0:00  |           \_ su -
root      4688  0.5  0.0  19508  2252 pts/0    S+   23:42   0:00  |               \_ -su

Lưu ý rằng chúng đang bắt đầu từ cùng một quy trình bash, 4482, nhưng su đó - dường như sinh ra một bước khác.)

'Sudo' đầu tiên của bạn đã nâng mức truy cập của bạn lên root. Chạy su mà không chỉ định tên người dùng bên trong sudo sẽ thay đổi người dùng hiện tại để root hai lần.

Một cách khác để điều tra điều này là bằng cách chạy cả hai lệnh với strace -f.

strace -f -o sudoi sudo -i

đấu với

strace -f -o sudosu sudo su -

Nếu bạn khác hai bước đó, bạn sẽ thấy nhiều exeve đang được chạy cho sudo su -.

Một điều nữa.

sudo -i duy trì các biến môi trường bổ sung được thiết lập bởi SUDO.

SUDO_USER=jkrauska
SUDO_UID=1000
SUDO_COMMAND=/bin/bash
SUDO_GID=1000

sudo su - ghi đè các biến đó.


Cảm ơn, tôi đã bình chọn bạn là câu trả lời chính xác. Thêm một câu hỏi nữa, vậy là sudo su -vô nghĩa?
Howard

Nếu bạn muốn ghi đè các tham chiếu trở lại SUDO, nó có thể hữu ích. Vì vậy, không vô nghĩa trong trường hợp đó.
Joel K

Ngoài ra còn có sự khác biệt lớn trong xử lý đối số, xử lý biến môi trường và bảo mật khi trở thành người dùng không root. Xem những gì tôi đã thêm ở đây: serverfault.com/q/601140/102814
Craig Ringer

1

Bắn trả lời: Không, chúng không giống nhau.

Câu trả lời dài: sudo và su - là các chương trình khác nhau thực hiện cùng một nhiệm vụ, đó là nâng bạn lên quyền root.

su từng là cách thực tế để trở thành root trên các hệ thống Linux. Tuy nhiên, luôn có nhu cầu tách biệt các đặc quyền và để lại một số thông tin kiểm toán phía sau. Ngoài ra khi bạn làm su - mọi thứ bạn làm đều được thực hiện dưới quyền root và nguy hiểm khi có nhiều sức mạnh đó. Đây là nơi sudo đã đến để giải cứu.

sudo có một số đặc điểm mà su không có. Yếu tố chính trong sudo là khả năng chạy lệnh "một" với quyền root và sau đó thả đặc quyền cho người dùng bình thường. Ví dụ: Xóa một tập tin thuộc sở hữu của root.

sudo rm /root/someFile

Lệnh này sẽ xóa tệp vì sudo sẽ nâng bạn lên root mỗi khi bạn sử dụng lệnh sudo trước một lệnh khác. Lệnh tiếp theo bạn đã chạy sẽ được chạy như một người dùng bình thường (trừ khi bạn nối thêm lệnh sudo vào đầu). Điều này cho phép bạn hoàn thành nhiệm vụ hành chính và sau đó bỏ đặc quyền ngay lập tức giúp bạn tránh các điều kiện nguy hiểm.

sudo cũng cung cấp các lợi ích khác như hạn chế tập chương trình mà người dùng có thể chạy, ghi nhật ký các lệnh chạy theo sudo và những thứ khác. Để biết thêm thông tin sudo trong một tóm tắt

Khi bạn làm su - hoặc sudo -i bạn cũng làm điều tương tự. Điều đó đang trở thành root nhưng hãy nhớ rằng susudo hoàn toàn khác nhau và cung cấp cho bạn các công cụ khác nhau như một quản trị viên hệ thống. Cá nhân tôi KHÔNG BAO GIỜ chạy su - và chính sách pam của tôi cấm nó , cho phép không ai chạy nó. Trong các hệ thống của tôi, bạn luôn phải sử dụng nguyên nhân sudo của các lợi ích bổ sung.

Thông tin thêm: Sử dụng và kích hoạt sudo


sucũng có thể chạy chỉ một lệnh duy nhất:su -c 'command ...'
Eliah Kagan

Câu hỏi là về sự khác biệt giữa sudo -isudo su -, không phải giữa sudosu.
Alessio Gaeta
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.