it-swarm-vi.tech

Phần cứng và phần mềm của bạn là gì?

Sự khác biệt giữa hai lệnh siêu người dùng, su -sSudo -s là gì?

Cả hai đều cung cấp cho Shell quyền truy cập vào tài khoản superuser.

23
Callum

Trong thực tế, cả hai sẽ làm cho bạn trở thành siêu người dùng. Tuy nhiên, họ làm những việc hơi khác nhau, theo những cách hơi khác nhau.

Đầu tiên, su - chuyển bạn sang Shell đăng nhập, trong khi Sudo -s thì không. Trong thực tế, điều này thường có nghĩa là các biến môi trường của bạn sẽ không được chuyển sang root 's cho Sudo -s. Lưu ý rằng bạn có thể chạy chỉ su đến không lấy Shell đăng nhập hoặc Sudo -i để nhận Shell đăng nhập [không phải trong tất cả các phiên bản].

Thứ hai, susu - chuyển sang một người dùng mới bằng cách yêu cầu bạn xác thực là người dùng mới. Sudo -sSudo -i (và chỉ Sudo foo thông thường) cho phép bạn chạy một lệnh mà bạn được ủy quyền trước [xem /etc/sudoers], có thể bằng cách yêu cầu bạn xác nhận hiện tại ID của bạn.

Nếu bạn muốn thực sự dễ thương, bạn cũng có thể chạy Sudo su -, sẽ yêu cầu đăng nhập với quyền root (su -) do người dùng root (phần Sudo điều hành).

Nếu người dùng root bị khóa (chẳng hạn như trên Ubuntu), bạn sẽ không thể đăng nhập với quyền root bằng cách sử dụng su. Trong trường hợp này, bạn sẽ cần sử dụng Sudo -s hoặc Sudo -i

30
Mikeage
su -s

Sẽ chuyển sang người dùng (trong trường hợp này là root) và khởi chạy Shell mà bạn chỉ định hoặc một trong vài phương pháp xác định Shell khác. Điều này rất hữu ích nếu bạn muốn sử dụng zsh hoặc Shell khác làm root thực sự nhanh chóng ... và vì một số lý do bạn không sử dụng Sudo.

Sudo -s

Chỉ cần thực thi Shell bằng Sudo, nó sẽ cung cấp cho bạn một Shell gốc. Bạn cũng có thể chuyển Shell cho nó.

su -s cũ hơn, già hơn nhiều so với lệnh Sudo -s. Tôi đoán là nhà phát triển đang cố gắng làm cho nó dễ dàng nhất có thể để chuyển sang sử dụng Sudo.

12
Mark Turner

su là một lệnh để thay đổi người dùng khác, để chạy Shell hoặc thực thi một lệnh cụ thể. Bạn phải xác thực là người dùng khác. Nếu bạn muốn su để root, bạn cần mật khẩu root.

Sudo là một lệnh để thực thi một lệnh khác (tùy chọn Shell) là một người dùng khác. Bạn phải xác thực là người dùng của chính bạn. Quyền sử dụng Sudo (và những điều cụ thể bạn có thể làm với nó) được chỉ định bởi quản trị viên trong tệp sudoers.

Nếu bạn cấp cho ai đó quyền truy cập vào su (ví dụ: bằng cách cung cấp cho họ mật khẩu gốc), thì họ có thể làm bất cứ điều gì với nó - chạy các lệnh khác, mở Shell, thay đổi mật khẩu, đăng nhập từ xa qua ssh, v.v. Về cơ bản, bạn cho phép họ truy cập vào tài khoản khác, với 'su' chỉ là một điều họ có thể làm với tài khoản đó.

Sudo là hạt mịn hơn nhiều. Bạn có thể cấp đặc quyền cho người dùng hoặc cho một nhóm. Bạn có thể cho phép người dùng hoặc nhóm Sudo trong một khung thời gian nhất định (ví dụ: Thứ Hai đến Thứ Sáu, 9 giờ sáng đến 5 giờ chiều). Bạn có thể chỉ định một danh sách cụ thể các lệnh mà họ được phép chạy (ví dụ: chỉ/usr/local/bin/run_backup) hoặc bạn có thể chỉ định một người dùng cụ thể mà họ được phép chạy các lệnh như (ví dụ: www, sao lưu, nhân viên, v.v. ).

Bên cạnh tính linh hoạt của nó, Sudo là một giải pháp tốt hơn trong mọi trường hợp, bởi vì nó không yêu cầu quyền truy cập vào bất cứ thứ gì mà người dùng chưa có. Nếu bạn cấp cho ai đó quyền truy cập Sudo, bạn có thể thu hồi nó bằng cách xóa dòng của họ trong tệp sudoers hoặc xóa họ khỏi nhóm sudoers. Nếu bạn xóa tài khoản của họ, quyền truy cập của họ sẽ biến mất.

Nếu bạn cung cấp cho họ mật khẩu gốc, thậm chí giả sử họ không làm gì khó chịu với nó, thì họ sẽ biết nó mãi mãi. Nếu bạn có nhiều người cần quyền truy cập root cho các tác vụ quản trị, điều này có nghĩa là thay đổi tất cả mật khẩu gốc bất cứ khi nào ai đó rời đi hoặc cho rằng họ có quyền truy cập đầy đủ vào hệ thống của bạn sau khi bạn rời đi.

9
Dan Udey
  • s sẽ hỏi bạn mật khẩu người dùng root .
  • Sudo sẽ hỏi bạn mật khẩu của bạn (và bạn cần được xóa để truy cập Sudo để làm điều đó).
5
badp

Từ Wikipedia :

su (viết tắt của người dùng thay thế hoặc người dùng chuyển đổi) là một lệnh Unix được sử dụng để chạy Shell của người dùng khác mà không cần đăng xuất.

Một lệnh có liên quan được gọi là Sudo thực thi một lệnh như một người dùng khác nhưng quan sát một tập các ràng buộc về việc người dùng có thể thực thi lệnh nào mà người dùng khác (nói chung là trong một tập tin cấu hình có tên/etc/sudoers, có thể chỉnh sửa tốt nhất bằng lệnh visudo). Không giống như su, Sudo xác thực người dùng bằng mật khẩu của chính họ thay vì mật khẩu của người dùng đích (để cho phép ủy quyền các lệnh cụ thể cho người dùng cụ thể trên các máy chủ cụ thể mà không chia sẻ mật khẩu giữa họ và trong khi giảm thiểu rủi ro của bất kỳ thiết bị đầu cuối không giám sát nào).

2
Yaakov Ellis

Một điều không được nói đầy đủ là đây: cái nào bạn có thể sử dụng thường phụ thuộc vào phân phối bạn đang sử dụng và ai điều hành nó. Một hoặc cái kia (su hoặc Sudo) có thể không được thiết lập để sử dụng đầy đủ theo mặc định. Vì vậy, ví dụ, như một số người đã đề cập, OS X và Ubuntu vô hiệu hóa tài khoản root (su) theo mặc định. Tương tự, Debian không cung cấp cho người dùng thông thường bất kỳ đặc quyền mặc định nào cho Sudo. . hơn SF, nhưng chỉ trong trường hợp.)

Cuối cùng, nếu bạn muốn sử dụng Sudo theo cách chi tiết hơn, bạn nên xem man sudoers để biết cách chỉnh sửa tệp / etc/sudoers. Tuy nhiên, bạn nên không bao giờ chỉnh sửa bằng tay. Sử dụng chương trình visudo - nó sẽ ngăn bạn lưu các chỉnh sửa của mình trừ khi chúng ít nhất là lành mạnh. Đó là một biện pháp bảo vệ tuyệt vời chống lại các lỗi đơn giản có thể khóa bạn khỏi các đặc quyền quản trị viên của hệ thống của riêng bạn.

2
Telemachus

Trên các hệ thống mà tài khoản superuser bị vô hiệu hóa, chẳng hạn như Mac OS X, su sẽ không hoạt động; Sudo -s sẽ.

Ngoài ra, có vẻ như không có su -s, ít nhất là trên máy của tôi.

1
jtbandes

Giới thiệu này có thể giúp bạn. su là viết tắt của su root và bạn giữ quyền của mình với tư cách là người dùng khác vô thời hạn. Nguy hiểm hơn, nhưng cũng thuận tiện hơn nếu bạn thực hiện nhiều lệnh truy cập root trong một khoảng thời gian.

1
Nikhil Chelliah

su về cơ bản sẽ tạo Shell đăng nhập mới với một đặc quyền người dùng (đăng nhập) khác Sudo sẽ tạm thời cho phép bạn thực thi lệnh bằng cách sử dụng người dùng mà bạn đã chỉ định. Trên một số UNIX như FreeBDS, không có tùy chọn '-s'.

1
hendrasaputra