Mặc định hiện tại cho tài khoản root trong /etc/passwd
là root:x:0:0:root:/root:/bin/bash
.
Tại sao không đặt nó thành root:x:0:0:root:/root:/usr/sbin/nologin
?
Mặc định hiện tại cho tài khoản root trong /etc/passwd
là root:x:0:0:root:/root:/bin/bash
.
Tại sao không đặt nó thành root:x:0:0:root:/root:/usr/sbin/nologin
?
Câu trả lời:
Nếu đó là trường hợp, bạn sẽ chỉ có thể chạy các lệnh với sudo
một lúc, nhưng bạn sẽ không thể bắt đầu một vỏ gốc. Một shell root thuận tiện trong nhiều trường hợp, ví dụ nếu bạn dự định chạy nhiều lệnh dưới dạng root trong một hàng.
Cụ thể, bạn không thể chạy sudo -i
, như AlexP đã lưu ý. Từ man sudo
:
-i, --login Run the shell specified by the target user's password database entry as a login shell.
sudo /bin/bash
làm việc để làm điều đó?
sudo -s
tôi nghĩ (vỏ gốc, nhưng không phải vỏ đăng nhập gốc ). Mặc dù đó là một điểm tốt - và trên thực tế sudo -s
dường như hoạt động ngay cả khi lớp vỏ của rễ là/usr/sbin/nologin
-i
, -s
, /bin/bash
, và vân vân bằng cách chỉ cho phép một danh sách trắng các lệnh, xem tài liệu cho sudoers file. Điều này là rất tốt, ví dụ như có thể cho phép người dùng chạy /etc/init.d/someservice restart
bằng root mà không cho phép họ chạy /etc/init.d/someservice stop
. Nhưng mặc định ubfox chỉ là không đặt mật khẩu root
và cho phép người dùng quản trị làm mọi thứ với sudo. Có lẽ lý do là a) nhiều hơn một người dùng quản trị viên và b) Người dùng quản trị viên không cần nhớ mật khẩu thứ hai cho tài khoản root.
Bên cạnh câu trả lời sudo của Alberto Santini, còn có một câu trả lời khác (tốt hơn nhiều). Nếu shell của root được đặt thành một cái gì đó không phải là shell, thì việc khởi động một người dùng sẽ không hoạt động. Có sự phục hồi sulogin
cho những thứ như vỏ không còn tồn tại hoặc vỏ bị hỏng hoàn toàn, nhưng nó sẽ không hoạt động nếu vỏ có vẻ là vỏ hợp lệ nhưng thực tế không phải là vỏ.
Bạn vẫn có thể sudo
trực tiếp lấy vỏ bằng cách chỉ định vỏ để sudo
nó không bảo vệ tốt.
sudo -i
?