Người dùng root là thực thể mạnh mẽ nhất trong vũ trụ Linux với quyền hạn vô hạn, dù tốt hơn hay xấu hơn. Tạo người dùng? Hiểu rồi. Hủy một hệ thống tệp? Rất tiếc, tôi cũng hiểu rồi.
Câu chuyện nguồn gốc
Người dùng gốc là siêu người dùng Linux. Theo đúng nghĩa đen, họ có thể làm bất cứ điều gì. Không có gì bị hạn chế hoặc vượt quá giới hạn đối với root
. Việc họ là siêu anh hùng hay siêu nhân phụ thuộc vào người dùng con người, người đảm nhận vai trò quản trị viên hệ thống. Những sai lầm của người dùng root có thể rất nghiêm trọng, vì vậy tài khoản root chỉ nên được sử dụng cho các mục đích quản trị.
Khái niệm về người dùng gốc được kế thừa từ Unix, có người dùng gốc là người quản trị siêu cấp của nó. Nhưng cái tên “gốc” xuất phát từ đâu thì không ai biết chắc. Một số người nghĩ rằng nó đến từ hệ điều hành Multics, hệ điều hành có từ trước Unix.
Ken Thompson và Dennis Ritchie, hai trong số những kiến trúc sư và tác giả quan trọng nhất của Unix, trước đây đều đã từng làm việc về Đa phương tiện. Multics có một hệ thống tệp bắt đầu tại một điểm được gọi là thư mục gốc hoặc “/”, và tất cả các thư mục và thư mục con khác được phân nhánh từ trên xuống và ra ngoài từ gốc giống như một cây đảo ngược. Đó là cùng một loại cấu trúc cây được Unix áp dụng. Vì vậy, có lẽ Unix cũng đã thông qua người dùng gốc từ Multics?
Tìm kiếm thông qua tài liệu kỹ thuật Multics sẽ phát hiện ra vô số tham chiếu đến các ổ đĩa logic gốc, ổ đĩa vật lý gốc, thẻ gốc và thư mục gốc. Nhưng không có đề cập đến tài khoản người dùng root hoặc người dùng được gọi là “root”.
Quảng cáo
Một giả thuyết khác là trong những ngày đầu của Unix, thư mục chính của superuser là thư mục gốc “/” của hệ thống tập tin. Siêu người dùng cần một cái tên. Thuật ngữ “người dùng root” đã được sử dụng thay cho tên chính thức, nhưng thuật ngữ này vẫn bị mắc kẹt và trở thành tên chính thức.
Điều đó có vẻ nhiều khả năng hơn, nhưng dường như không ai có thể nói chắc chắn làm thế nào người dùng root lại lấy được tên của nó.
Lệnh sudo
Trên bất kỳ hệ điều hành nào, cách tốt nhất là dành riêng superuser cho mục đích quản trị và sử dụng tài khoản người dùng thông thường trong thời gian còn lại. Trên thực tế, hầu hết các bản phân phối Linux hiện đại sẽ không cho phép bạn đăng nhập với tư cách là người dùng gốc.
Tất nhiên, đây là Linux, vì vậy bạn có thể định cấu hình nó để cho phép người dùng root đăng nhập. Nhưng bạn càng dành ít thời gian để đăng nhập root
, tốt hơn. Bên cạnh việc bảo vệ bản thân khỏi những thảm họa do lỗi chính tả, nếu bạn không thể đăng nhập bằng root
, không ai khác có thể. Bất kỳ ai có quyền truy cập trái phép vào hệ thống của bạn sẽ không thể đăng nhập với tư cách root
, hạn chế những thiệt hại mà chúng có thể gây ra.
Nhưng nếu đăng nhập với tư cách root
bị vô hiệu hóa, làm cách nào để bạn quản trị máy tính Linux của mình? Chà, đó là những gì sudo
lệnh dành cho. Nó không yêu cầu người dùng root đăng nhập. Nó tạm thời cung cấp root
quyền hạn của bạn. Nó giống như nhặt chiếc búa của Thor Mjolnir và tạm thời được ban cho sức mạnh của Thor. Nhưng bạn chỉ có thể nhặt được cái búa nếu bạn xứng đáng. Tương tự như vậy, không chỉ bất cứ ai có thể sử dụng sudo
chỉ huy. Các sudo
chỉ lệnh ban cho root
quyền hạn của bạn nếu bạn được cho là xứng đáng và được thêm vào danh sách những người giỏi.
Có một lệnh khác tương tự như sudo
gọi là su
. Với sudo
, bạn xác thực bằng mật khẩu của riêng bạn. Với su
, bạn xác thực bằng mật khẩu của người dùng root. Điều này có ý nghĩa theo hai cách. Thứ nhất, điều đó có nghĩa là bạn cần gán mật khẩu cho người dùng root để sử dụng su
. Theo mặc định, người dùng root không có mật khẩu và điều này giúp bảo mật. Nếu root
không có mật khẩu, bạn không thể đăng nhập bằng root
.
Quảng cáo
Thứ hai, nếu bạn đặt mật khẩu gốc, tất cả những người sẽ sử dụng su
lệnh cần biết mật khẩu. Và chia sẻ mật khẩu là một bảo mật không có, và đối với mật khẩu gốc, thậm chí còn hơn thế nữa. Bất kỳ ai trong số những người biết mật khẩu gốc có thể cho người khác biết. Nếu bạn cần thay đổi mật khẩu gốc, bạn cần thông báo mật khẩu mới cho tất cả những người cần biết.
Sẽ an toàn hơn nhiều khi sử dụng danh sách sudoers để hạn chế ai có thể sử dụng sudo
và cho phép mỗi người có đặc quyền sử dụng mật khẩu cá nhân của họ để xác thực.
Sử dụng sudo
Tệp “/ etc / shadow” chứa tên người dùng của mỗi tài khoản trên máy tính Linux của bạn, cùng với các phần thông tin khác, bao gồm cả mật khẩu được mã hóa của mỗi tài khoản, thời điểm thay đổi mật khẩu lần cuối và khi mật khẩu hết hạn. Bởi vì nó chứa thông tin nhạy cảm, nó chỉ có thể được đọc bởi root
.
Nếu chúng ta cố gắng sử dụng wc
để đọc các dòng, từ và ký tự trong tệp bóng, chúng tôi sẽ bị từ chối quyền.
wc /etc/shadow
Nếu chúng ta đang ở trong danh sách sudoers và chúng ta sử dụng cùng một lệnh với sudo
ở đầu dòng, chúng tôi sẽ được nhắc nhập mật khẩu và lệnh sẽ được thực thi cho chúng tôi. Nếu bạn là người dùng duy nhất trên máy tính Linux của mình, bạn sẽ tự động được thêm vào danh sách sudoers khi hệ thống được cài đặt.
sudo wc /etc/shadow
Bởi vì chúng tôi đang chạy lệnh dưới quyền root, wc
lệnh được thực hiện. Không ai phủ nhận root.
Quảng cáo
Các sudo
lệnh được sử dụng để có nghĩa là “superuser làm.” Nó đã được cải tiến để cho phép bạn chạy lệnh với tư cách là bất kỳ người dùng nào, vì vậy nó được đổi tên thành “người dùng thay thế thực hiện”. Lệnh thực sự được thực thi như thể người dùng khác đã chạy nó. Nếu bạn không chỉ định tên người dùng, sudo
mặc định sử dụng root
. Nếu bạn muốn sử dụng một người dùng khác, hãy sử dụng -u
(người dùng) tùy chọn.
Chúng ta có thể thấy rằng các lệnh được thực thi với tư cách người dùng khác bằng cách sử dụng whoami
chỉ huy.
whoami
sudo whoami
sudo -u mary whoami
LIÊN QUAN: Cách xác định tài khoản người dùng hiện tại trong Linux
Chạy như root mà không cần sử dụng su
Sự cố với sudo
là bạn phải sử dụng “sudo” ở đầu mỗi lệnh. Nếu bạn chỉ gõ một hoặc hai lệnh, đó không phải là vấn đề lớn. Nếu bạn có một chuỗi lệnh dài hơn để thực thi, nó có thể trở nên mệt mỏi. Nó có thể mệt mỏi, nhưng nó hoạt động như một biện pháp an toàn hữu ích cho root
quyền hạn của nó, và bạn phải có ý thức thực hiện an toàn mọi lúc.
Có một cách để “đăng nhập” hiệu quả là root
cái đó không sử dụng su
và không yêu cầu người dùng root phải có mật khẩu.
Cảnh báo: Hãy cẩn thận khi bạn đang sử dụng phương pháp này. Mọi lệnh bạn đưa ra sẽ được thực thi một cách vui vẻ, không có câu hỏi nào được đặt ra — ngay cả khi lệnh đó phá hoại.
Sử dụng sudo
để chạy một trình bao Bash mở một trình bao mới với root
với tư cách là người dùng.
sudo bash
Lưu ý rằng dấu nhắc lệnh thay đổi. Ký tự cuối cùng của lời nhắc bây giờ là dấu thăng “#” thay vì ký tự đô la “$”.
Quảng cáo
Cách phần nội dung của dấu nhắc lệnh được hiển thị khác nhau giữa các bản phân phối. Trong Ubuntu, chúng tôi được thông báo rằng người dùng root
và hiển thị tên của máy tính và thư mục làm việc hiện tại. Màu của lời nhắc cũng bị thay đổi.
Bởi vì chúng tôi root
, chúng tôi có thể thực hiện các lệnh thường yêu cầu sử dụng sudo
.
wc /etc/shadow
Để thoát khỏi shell của người dùng root, hãy nhấn “Ctrl + D” hoặc nhập “exit” và nhấn “Enter”.
exit
Ít siêu nhân hơn, nhiều Clark Kent hơn
Nếu bạn nằm trong danh sách những người làm chủ, bạn có siêu quyền lực đối với hệ thống Linux của mình. Chỉ cần nhớ rằng, Superman dành nhiều thời gian với tư cách là một người thay thế hiền lành của anh ấy hơn là anh ấy trong chiếc áo choàng đỏ của mình.
Sử dụng tài khoản người dùng thông thường của bạn càng nhiều càng tốt. Chỉ thay đổi thành root
khi bạn thực sự cần.