Hãy xem truyện tranh ở trên từ webcomic XKCD xuất sắc. Người lười biếng trên ghế muốn bạn của họ làm cho họ một cái bánh mì sandwich, nhưng họ không có thẩm quyền để bắt họ làm điều đó. Đó là, cho đến khi anh ta gọi ra lệnh sudo hùng mạnh. Sau đó, một chiếc bánh sandwich sẽ được làm theo cách này hay cách khác.
Mặc dù việc thử sudo với một người trong đời thực có lẽ không hiệu quả nhưng đó là mệnh lệnh kỳ diệu vượt qua mọi rào cản trong thế giới Linux. Sudo là gì? Tại sao nó thậm chí còn tồn tại? Câu trả lời nằm ở cách Linux xử lý các quyền.
Hiểu về Quyền của Người dùng Linux
Linux được coi là một hệ điều hành an toàn do cách nó xử lý các quyền. Mặc dù các hệ điều hành như macOS (có chung tổ tiên với Linux) và Windows hiện nay giống Linux hơn về mặt này, nhưng hệ điều hành Nguồn mở vẫn có phần độc đáo.
Việc hiểu cách Linux xử lý các quyền khiến nó trở thành một dễ dàng hơn rất nhiều để hiểu được lệnh sudo. Tất cả các hệ điều hành hiện đại đều có cấp quyền người dùng "quản trị viên" hoặc "người chủ". Nếu bạn có tài khoản quản trị hoặc root, bạn có thể thay đổi bất kỳ cài đặt nào, xóa bất kỳ dữ liệu nào và nói chung là làm bất cứ điều gì bạn thích với máy tính.
Điều đó bao gồm những việc mà bạn có thể không nên làm có thể dẫn đến mất dữ liệu hoặc cần phải xóa hoàn toàn và cài đặt lại.
Linux không 'không đặt quyền cấp người dùng gốc làm mặc định. Thay vào đó, tài khoản của bạn không thể truy cập vào các phần thực sự nhạy cảm của hệ thống nếu không nâng cấp quyền của bạn. Điều đó có nghĩa là hệ thống sẽ yêu cầu bạn nhập mật khẩu quản trị viên khi bạn muốn làm điều gì đó khác thường bằng giao diện đồ họa.
Tuy nhiên, khi bạn muốn sử dụng dòng lệnh Thiết bị đầu cuối để hoàn thành công việc, sudo là an toàn nhất và cách hiệu quả nhất để sử dụng nó.
Sudo và Terminal
Có hai cách để tự cấp cho mình các quyền nâng cao trong Linux. Một là đăng nhập với tư cách người dùng root vĩnh viễn. Vấn đề với điều này là bất kỳ ai khác có thể truy cập vào máy tính có thể tàn phá và thậm chí bạn có thể làm điều đó một cách tình cờ. Sudo chỉ nâng cao quyền của bạn trong một thời gian ngắn để thực thi các lệnh cụ thể theo sau nó.
Cú pháp Sudo
Cú pháp của Sudo (định dạng của lệnh) rất đơn giản. Chỉ cần nhập “sudo” trước lệnh bạn muốn thực thi.
Ví dụ: “sudo apt-get update” sẽ cập nhật tất cả các kho ứng dụng được liệt kê trong phần liên quan tập tin. Nếu bạn đã cố gắng chạy nó mà không có sudo, bạn sẽ nhận được thông báo lỗi cho bạn biết rằng bạn không có quyền. Ngẫu nhiên, đây thường là lệnh sudo đầu tiên bạn muốn chạy sau khi cài đặt mới bản phân phối Linux yêu thích của mình.
"Su" trong Sudo
"su" trong sudo là viết tắt của "superuser" và nó là một lệnh độc lập. Lệnh "su" cho phép bạn thay đổi các đặc quyền của người dùng mà sudo nâng cao bạn lên.
Mặc dù sudo nâng cấp bạn lên root tạm thời, nhưng su thay đổi bạn thành người dùng khác với các đặc quyền phù hợp. Điều đó có vẻ như là một sự khác biệt không quan trọng, nhưng có những lý do chính đáng để thay đổi tài khoản mà sudo nâng cao người dùng lên.
Trước hết, việc thay đổi tài khoản có nghĩa là người dùng thông thường không biết mật khẩu gốc. Thứ hai, có một bản ghi của tất cả các lệnh sudo, có nghĩa là quản trị viên hệ thống (root) có thể tra cứu ai đã ban hành lệnh su.
Cú pháp của su về cơ bản giống với sudo:
Su USERNAME -c COMMAND
Thay thế USERNAME bằng người dùng mong muốn để chạy lệnh và COMMAND bằng lệnh Linux bạn muốn thực thi.
Nếu bạn muốn chạy nhiều lệnh với tư cách người dùng khác, chỉ cần sử dụng:
Su USER
Thay thế USER bằng danh tính tài khoản người dùng mong muốn.
Nếu bạn tự sử dụng su, Linux sẽ chuyển sang tài khoản người dùng khác cho đến khi bạn sử dụng lệnh “exit”. Điều quan trọng cần nhớ là nếu không người dùng tiếp theo truy cập vào thiết bị đầu cuối trong phiên đó sẽ vẫn có quyền cao hơn. Đây là lý do tại sao bạn nên sử dụng sudo hơn là su.
Giới hạn thời gian Sudo
Lần đầu tiên sử dụng lệnh sudo, bạn Tôi sẽ phải nhập mật khẩu. Sau đó, mật khẩu đó sẽ vẫn có hiệu lực trong 15 phút. Bạn có thể thay đổi giá trị mặc định này bằng cách chạy lệnh sudo visudovà thay đổi “timestamp_timeout =” thành giá trị dài hơn hoặc ngắn hơn. Tuy nhiên, chúng tôi khuyên bạn không nên làm điều này trừ khi bạn có lý do chính đáng để gia hạn hoặc rút ngắn thời gian mà mật khẩu sudo vẫn còn hiệu lực.
Công tắc tùy chọn Sudo
Mặc dù cú pháp sudo là đơn giản, một số công tắc đáng để biết. Các lệnh này mở ra thông tin bổ sung hoặc giúp bạn kiểm soát phiên sudo:
Có nhiều tùy chọn khác được tích hợp trong sudo và bạn có thể xem tất cả chúng bằng cách sử dụng nút chuyển -h đầu tiên được liệt kê ở trên.
Ảnh chụp màn hình ở trên là kết quả khi bạn sử dụng tùy chọn trợ giúp.
Các lệnh Sudo hữu ích
Vậy mọi người dùng Linux nên biết những lệnh nào được sudo trao quyền cho mọi người dùng Linux? Chúng tôi đã đề cập đến bản cập nhật sudo apt-get, nhưng cũng cần lưu ý những điều này:
Đây có thể là những lệnh sudo đầu tiên bạn sẽ phải sử dụng, nhưng như bạn đã học ở trên, bất kỳ lệnh nào cũng có thể tuân theo sudo, nhưng bạn chỉ nên sử dụng những lệnh cần có đặc quyền cao hơn với nó.