Câu trả lời:
Tôi nghĩ sudo -s
không phải là "tốt hơn", nó chỉ khác nhau.
sudo -s
giữ thư mục $ HOME của bạn, vì vậy khi bạn khởi động chương trình, họ sẽ sử dụng các tệp cấu hình (chứ không phải root) của bạn, v.v ... Nhược điểm: họ cũng có thể thay đổi quyền sở hữu các tệp của bạn trong thư mục $ HOME, ví dụ điển hình là .Xauthority
tệp, nhưng tôi chưa bao giờ gặp vấn đề với điều đó
sudo su
hoặc là sudo -i
các chương trình sẽ sử dụng thư mục gốc của root và các tập tin cấu hình của nó. Điều này có thể trực quan hơn, nhưng điều đó cũng có nghĩa là nó sẽ không sử dụng bất kỳ cấu hình nào bạn có thể tự đặt cho mình (bí danh, lịch sử bash, ...).
Bởi vì sudo -s
sẽ không thay đổi các biến môi trường của bạn, đặc biệt $HOME
, sẽ ở lại HOME=/home/USER
. Nếu bạn sử dụng, sudo su
nó sẽ thay đổi thành HOME=/root
tác dụng phụ tiêu cực khi các chương trình bạn bắt đầu thử truy cập vào thư mục chính của người dùng.
Vì vậy, về cơ bản nó giống như sudo
vs gksudo
khi chạy các chương trình đồ họa.
Ngoài sự khác biệt đã được đề cập với các biến môi trường, tôi thấy sudo su
ngớ ngẩn và lãng phí vì bạn đang yêu cầu sudo
chạy su
bằng root và yêu cầu nó chạy shell như root. Tại sao yêu cầu một chương trình yêu cầu một chương trình cung cấp cho bạn một vỏ gốc, khi bạn có thể có chương trình đầu tiên cung cấp cho bạn vỏ đó? Điều đó có ý nghĩa trong bất kỳ ý nghĩa thực tế? Không, tôi chỉ là người phạm tội.
sudo su
để root, vâng, chỉ cần đi sudo -i
, ví dụ. Nhưng nó có ích khi bạn muốn trở thành một người dùng khác : sudo su - myuser
.
sudo -i
sẽ thay đổi /root
thư mục và sudo su
sẽ ở trong thư mục bạn đang có.
sudo -u myuser
,.
Tôi sẽ không đồng ý với các câu trả lời khác khi xem xét các trường hợp khi bạn muốn đăng nhập với tư cách là người dùng không có vỏ. Đó là một trường hợp rất phổ biến với người dùng được gán cho các dịch vụ.
Sử dụng "sudo su" sẽ khởi động shell được chỉ định bởi người dùng. Tuy nhiên, trong trường hợp người dùng được gán cho quy trình máy chủ, trình bao là / usr / bin / false và việc ghi nhật ký sẽ thất bại. Thay vào đó, bạn nên nhập như:
sudo -sHu <server-user>
nó sẽ đăng nhập bạn và cd vào đường dẫn chính của nó, ngay cả khi người dùng không có shell được gán
sudo -i
hoặcsudo su
là tốt hơn so vớisudo -s
những lý do nêu ở đây: ubuntuforums.org/showpost.php?p=6188826&postcount=4 Ngoài ra: đây là một bản sao có thể có của superuser.com/questions/29/...