1. Tại sao bạn không có mật khẩu root
Mặc dù bạn có thể tạo mật khẩu cho tài khoản superuser cho phép bạn đăng nhập bằng root su
, nhưng điều đáng nói là đây không phải là cách làm thông thường với Ubuntu (hoặc ngày càng nhiều, các bản phân phối khác). Ubuntu đã chọn không cung cấp thông tin đăng nhập gốc và mật khẩu theo mặc định vì một lý do. Thay vào đó, cài đặt Ubuntu mặc định sẽ sử dụng sudo
để cung cấp cho các đặc quyền siêu người dùng. Trong cài đặt Ubuntu mặc định, người đã cài đặt HĐH được cấp quyền "sudo" theo mặc định.
Bất kỳ ai có quyền "sudo" đầy đủ đều có thể thực hiện một cái gì đó "như một siêu người dùng" bằng cách chờ xử lý trước sudo
lệnh của họ. Chẳng hạn, để chạy apt-get dist-upgrade
như một siêu người dùng, bạn có thể sử dụng:
sudo apt-get dist-upgrade
Bạn sẽ thấy cách sử dụng sudo này khá nhiều ở bất cứ nơi nào bạn đọc hướng dẫn về Ubuntu trên web. Đó là một thay thế để làm điều này.
su
apt-get dist-upgrade
exit
Với sudo, bạn chọn trước những người dùng có quyền truy cập sudo. Không cần cho họ nhớ mật khẩu gốc, vì họ sử dụng mật khẩu của riêng họ. Nếu bạn có nhiều người dùng, bạn có thể thu hồi quyền truy cập siêu người dùng chỉ bằng cách xóa quyền sudo của họ mà không cần thay đổi mật khẩu gốc và thông báo cho mọi người về mật khẩu mới. Bạn thậm chí có thể chọn lệnh nào mà người dùng được phép thực hiện bằng sudo và lệnh nào bị cấm đối với người dùng đó. Và cuối cùng, nếu có vi phạm bảo mật, trong một số trường hợp, có thể để lại dấu vết kiểm toán tốt hơn cho thấy tài khoản người dùng nào bị xâm phạm.
Sudo giúp thực hiện một lệnh đơn giản hơn với các đặc quyền siêu người dùng. Với su
, bạn vĩnh viễn thả vào trình bao siêu người dùng phải thoát bằng exit
hoặc logout
. Điều này có thể dẫn đến việc mọi người ở trong vỏ siêu người dùng lâu hơn cần thiết chỉ vì nó thuận tiện hơn đăng xuất và đăng nhập lại sau đó.
Với sudo, bạn vẫn có tùy chọn mở trình bao siêu người dùng (tương tác) vĩnh viễn bằng lệnh:
sudo su
... Và điều này vẫn có thể được thực hiện mà không cần bất kỳ mật khẩu gốc nào, vì sudo
cung cấp đặc quyền siêu người dùng cho su
lệnh.
Và tương tự, thay vì su -
cho một vỏ đăng nhập, bạn có thể sử dụng sudo su -
hoặc phím tắt của nó sudo -i
.
Tuy nhiên, khi làm như vậy, bạn chỉ cần lưu ý rằng bạn đang hoạt động như một siêu người dùng cho mỗi lệnh. Đó là một nguyên tắc bảo mật tốt để không tồn tại như một siêu người dùng lâu hơn mức cần thiết, chỉ để giảm khả năng vô tình gây ra một số thiệt hại cho hệ thống (không có nó, bạn chỉ có thể làm hỏng các tệp mà người dùng của bạn sở hữu).
Chỉ cần làm rõ, bạn có thể , nếu bạn chọn, cung cấp cho người dùng root mật khẩu cho phép đăng nhập bằng root như được mô tả trong câu trả lời của @ Oli's, nếu bạn đặc biệt muốn làm mọi thứ theo cách này. Tôi chỉ muốn cho bạn biết về quy ước ưa thích của Ubuntu sudo
thay vào đó và cho bạn biết rằng có một sự thay thế.
2. Các vấn đề với lệnh chmod 777 -R của bạn
Câu hỏi của bạn cũng có một phần thứ hai: vấn đề của bạn với lệnh sudo chmod 777 -R foobs
.
Thứ nhất, cảnh báo sau đây cho thấy sự cố bảo mật nghiêm trọng tiềm ẩn trên máy của bạn:
sudo: /var/lib/sudo writable by non-owner (040777), should be mode 0700
Điều này có nghĩa là ở một số giai đoạn, bạn đã thiết lập /var/lib/sudo
được thế giới. Tôi tưởng tượng bạn đã làm điều này ở một số giai đoạn bằng cách sử dụng một lệnh như thế nào sudo chmod 777 -R /
. Thật không may, bằng cách này, có lẽ bạn đã phá vỡ tất cả các quyền của tệp trong toàn hệ thống của mình. Không chắc đây sẽ là tệp hệ thống quan trọng duy nhất có quyền được thay đổi thành có thể ghi trên thế giới. Về cơ bản bạn có một hệ thống dễ bị hack bây giờ và cách dễ dàng duy nhất để lấy lại là cài đặt lại.
Thứ hai, lệnh bạn đang sử dụng:
sudo chmod 777 -R foobs
Khi thao tác các tệp trong thư mục chính của bạn, trong trường hợp này ~/Desktop
, bạn không cần phải sử dụng sudo
. Tất cả các tệp bạn tạo trong thư mục chính của bạn dù sao cũng phải được bạn sửa đổi (và nếu không, điều gì đó buồn cười đang diễn ra).
Ngoài ra, bạn cần nhận thức đầy đủ về hậu quả của việc thay đổi quyền truy cập tệp, chẳng hạn như thực hiện đệ quy hoặc trên một số lượng lớn tệp. Trong trường hợp này, bạn đang thay đổi cẩn thận thiết lập quyền truy cập tệp để có thể ghi trên thế giới. Bất kỳ người dùng nào khác, hoặc bất kỳ phần mềm máy chủ có lỗi nào trên máy, có thể dễ dàng truy cập để ghi đè lên tất cả các tệp và thư mục này.
Gần như chắc chắn rằng chmod 777 -R [dir]
đó không phải là một giải pháp thích hợp cho bất kỳ vấn đề nào bạn đang cố gắng giải quyết (và như tôi đã đề cập ở trên, có bằng chứng cho thấy bạn đã thực hiện nó với các tệp hệ thống trong / var / lib và tôi cũng giả sử nhiều vấn đề khác nơi).
Một vài quy tắc cơ bản của ngón tay cái:
Nếu bạn chỉ làm rối với các tập tin của riêng bạn trong thư mục nhà, máy tính để bàn, v.v., bạn không bao giờ cần phải sử dụng sudo
hoặc quyền siêu người dùng. Nếu bạn làm thế, đó là một dấu hiệu cảnh báo rằng bạn đang làm gì đó sai.
Bạn không bao giờ nên sửa đổi thủ công các tệp hệ thống thuộc sở hữu của các gói. Ngoại lệ: trừ khi bạn thực hiện cụ thể theo cách được ghi lại bởi các gói đó, chẳng hạn như bằng cách sửa đổi cấu hình của chúng trong /etc
. Điều này cũng áp dụng để thay đổi quyền tập tin. Nếu một hướng dẫn hoặc cố gắng khắc phục sự cố yêu cầu sudo
hoặc quyền siêu người dùng và đó không chỉ đơn giản là thay đổi cấu hình trong / etc /, đó là dấu hiệu cảnh báo rằng bạn đang làm gì đó sai.
chmod -R 777 whatever
, trừ khi bạn muốn gây ra rủi ro bảo mật rất lớn.