Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Linux

Sudo trong Linux là gì và cách sử dụng

Xem xét truyện tranh trên từ webcomic XKCD xuất sắc. Người lười biếng ngồi trên ghế muốn bạn bè làm cho họ một chiếc bánh mì kẹp, nhưng họ thiếu thẩm quyền để bắt họ làm. Đó là, cho đến khi họ triệu hồi lệnh sudo quyền lực. Sau đó, một chiếc bánh mì kẹp sẽ được làm một cách hay cách khác.

Mặc dù thử sudo trên người trong đời thực có thể không hiệu quả bằng, 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í tồn tại? Câu trả lời nằm ở cách Linux xử lý quyền限.

Sudo trong Linux là gì và cách sử dụng

Hiểu về quyền người dùng Linux

Linux được coi là một hệ điều hành an toàn nhờ cách nó xử lý quyền限. Mặc dù các hệ điều hành như macOS (chia sẻ tổ tiên với Linux) và Windows hiện nay giống Linux hơn về mặt này, hệ điều hành mã nguồn mở vẫn còn hơi độc đáo.

Hiểu cách Linux xử lý quyền限 làm cho việc nắm bắt lệnh sudo dễ dàng hơn nhiều. Tất cả các hệ điều hành hiện đại đều có cấp quyền "quản trị viên" hoặc "root". Nếu bạn có tài khoản admin 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à tổng thể 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 bạn có lẽ không nên làm có thể dẫn đến mất dữ liệu hoặc cần phải xóa sạch và cài đặt lại hoàn toàn.

Sudo trong Linux là gì và cách sử dụng

Linux không đặt quyền限 cấp 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 nhạy cảm thực sự của hệ thống mà không nâng cấp cấp quyề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 gì đó bất thường bằng giao diện đồ họa.

Tuy nhiên, khi bạn muốn sử dụng dòng lệnh Terminal để hoàn thành việc, sudo là cách an toàn và hiệu quả nhất để thực hiện.

Sudo và Terminal

Sudo trong Linux là gì và cách sử dụng

Có hai cách để tự cấp 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 cách này là bất kỳ ai khác truy cập máy tính có thể phá hoại, và ngay cả bạn cũng có thể làm vậy vô tình. Sudo nâng cấp quyền限 của bạn chỉ 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 lệnh) rất đơn giản. Chỉ cần gõ "sudo" theo sau là lệnh bạn muốn thực thi.

Sudo trong Linux là gì và cách sử dụng

Ví dụ, "sudo apt-get update" sẽ cập nhật tất cả kho ứng dụng được liệt kê trong tệp liên quan. Nếu bạn thử chạy nó không có sudo, bạn sẽ nhận được thông báo lỗi nói rằng bạn không có quyền限. Ngay cả, đâ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 ưa thích của bạn.

"Su" trong Sudo

"su" trong sudo là viết tắt của "superuser" (siêu người dùng) và nó là một lệnh độc lập. Lệnh "su" cho phép bạn thay đổi đặc quyền mà sudo nâng cấp bạn lên.

Mặc dù sudo nâng cấp bạn lên root tạm thời, su thay đổi bạn thành một người dùng khác với đặc quyền phù hợp. Điều đó có thể dường như là một sự phân biệt không quan trọng, nhưng có những lý do tốt để thay đổi tài khoản mà sudo nâng cấp người dùng lên.

Thứ nhất, 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 root. Thứ hai, có nhật ký 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 đã phát lệnh su.

Cú pháp cho su về cơ bản giống như sudo:

Su TÊN_NGƯỜI_DÙNG -c LỆNH

Thay thế TÊN_NGƯỜI_DÙNG bằng người dùng mong muốn để chạy lệnh và LỆNH bằng lệnh Linux bạn muốn thực thi.

Nếu bạn muốn chạy nhiều lệnh như một người dùng khác, chỉ cần dùng:

Su NGƯỜI_DÙNG

Thay thế NGƯỜI_DÙNG bằng danh tính tài khoản người dùng mong muốn.

Nếu bạn dùng su đơn độc, Linux sẽ chuyển sang tài khoản người dùng khác cho đến khi bạn dùng lệnh "exit". Quan trọng phải nhớ điều này hoặc người dùng tiếp theo truy cập terminal trong phiên đó vẫn sẽ có quyền限 nâng cao. Đây là lý do tại sao thường tốt hơn dùng sudo thay vì su.

Giới hạn thời gian của Sudo

Sudo trong Linux là gì và cách sử dụng

Lần đầu tiên bạn dùng lệnh sudo, bạn phải nhập mật khẩu. Sau đó, mật khẩu đó sẽ vẫn hợp lệ 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 hoặc ngắn hơn. Tuy nhiên, chúng tôi không khuyên bạn làm điều này trừ khi bạn có lý do tốt để kéo dài hoặc rút ngắn thời gian mật khẩu sudo vẫn hợp lệ.

Các tùy chọn chuyển đổi của Sudo

Mặc dù cú pháp sudo đơn giản, có một vài chuyển đổi đáng biết. Các lệnh này mở thêm thông tin hoặc giúp bạn kiểm soát phiên sudo:

  • -h hiển thị cú pháp và thông tin lệnh cho sudo.
  • -V hiển thị phiên bản hiện tại của 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 quyền người dùng.
  • -k chấm dứt phiên sudo hiện tại ngay lập tức, loại bỏ đặc quyền nâng cao.

Có nhiều tùy chọn khác tích hợp trong sudo, và bạn có thể thấy tất cả chúng bằng cách dùng chuyển đổi -h đầu tiên được liệt kê ở trên.

Sudo trong Linux là gì và cách sử dụng

Ảnh chụp màn hình trên là kết quả khi bạn dùng tùy chọn help.

Các lệnh Sudo hữu ích

Vậy lệnh nào được sudo trao quyền mà mọi người dùng Linux nên biết? Chúng tôi đã đề cập sudo apt-get update, nhưng hãy ghi nhớ những lệnh sau:

  • Sudo apt-get upgrade sẽ nâng cấp tất cả các gói đã cài đặt.
  • Sudo apt-get install <tên-gói> cài đặt phần mềm bạn chọn; chỉ cần thay tên gói thành cái bạn muốn cài đặt.
  • Nếu bạn không biết tên gói, dùng dpkg –list.
  • Nếu bạn muốn gỡ bỏ một gói đã cài đặt từ terminal, dùng sudo apt-get remove <tên-gói (lại thay thế tên gói cụ thể).

Đây có lẽ là những lệnh sudo đầu tiên bạn phải dùng, nhưng như bạn đã học ở trên, bất kỳ lệnh nào cũng có thể theo sau sudo, nhưng bạn chỉ nên dùng những lệnh cần đặc quyền cao hơn với nó.