Hãy xem xét 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 trên một người trong đời thực có thể sẽ không hiệu quả nhưng đó là lệnh ma thuật 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.

Phim hoạt hình này là Creative Commons Attribution-Noncommercial của XKCD

Hiểu 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. Trong khi 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, thì hệ điều hành Mã nguồn mở vẫn có phần độc đáo.

Việc hiểu cách Linux xử lý các quyền sẽ giúp bạn dễ dàng hơn rất nhiều với 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 điều mà bạn có thể không nên làm có thể dẫn đến mất dữ liệu hoặc yêu cầu xóa và cài đặt lại hoàn toàn.

Linux không đặt quyền cấp người dùng root 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 độ cho phép 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 Thiết bị đầu cuối dòng lệnh để hoàn thành công việc, sudo là cách an toàn và hiệu quả nhất để thực hiện nó.

Sudo và nhà ga

Có hai cách để cung 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 hiện 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 gõ “sudo” theo sau là lệnh bạn muốn thực hiện.

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 tệp liên quan. 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 bạn.

Chữ “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 bạn lên root tạm thời, 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à người quản trị 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 như 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 mà 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 là phải nhớ điều này hoặc 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 nói chung tốt hơn là 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 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 mặc định này bằng cách chạy lệnh sudo visudo và 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ậ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 đơn giản, nhưng 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:

  • -h hiển thị cho bạn cú pháp và thông tin lệnh cho sudo.
  • -V hiển thị phiên bản hiện tại cho sudo trên máy của bạn.
  • -v làm mới giới hạn thời gian sudo, khởi động lại đồng hồ.
  • -l liệt kê các đặc quyền của người dùng.
  • -k kết thúc phiên sudo hiện tại ngay lập tức, xóa các đặc quyền nâng cao.

Có nhiều tùy chọn khác được tích hợp trong sudo và bạn có thể thấy tất cả chúng bằng cách sử dụng công tắc -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 trao quyền bởi sudo? 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:

  • Nâng cấp apt-get Sudo sẽ nâng cấp tất cả các gói đã cài đặt.
  • Sudo apt-get install mềm bạn chọn; chỉ cần thay đổi tên gói thành tên bạn muốn cài đặt.
  • Nếu bạn không biết tên gói, hãy sử dụng dpkg – danh sách.
  • Nếu bạn muốn xóa một gói đã cài đặt khỏi thiết bị đầu cuối, hãy sử dụng sudo apt-get remove (một lần nữa thay thế tên gói cụ thể được đề cập).

Đâ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 quyền cao hơn với nó.

LEAVE A REPLY

Please enter your comment!
Please enter your name here