Có một lý do nào đó tôi sẽ không thêm / usr / local / sbin, / usr / sbin, / sbin vào đường dẫn của tôi trên Debian không?


25

So sánh Debian (trái) và Ubuntu (phải):

$ ifconfig                                 $ ifconfig
bash: ifconfig: command not found          eth0     Link encap ...
$ which ifconfig                           $ which ifconfig
$                                          /sbin/ifconfig

Sau đó là siêu người dùng:

# ifconfig                                 # ifconfig
eth0      Link encap ...                   eth0     Link encap ...
# which ifconfig                           # which ifconfig
/sbin/ifconfig                             /sbin/ifconfig

Hơn nữa:

# ls -l /sbin/ifconfig                     # ls -l /sbin/ifconfig
-rwxr-xr-x 1 root root 68360 ...           -rwxr-xr-x 1 root root 68040 ...

Dường như với tôi lý do duy nhất tôi không thể chạy ifconfigmà không có siêu năng lực trên Debian là nó không nằm trong đường dẫn của tôi. Khi tôi sử dụng /sbin/ifconfignó không hoạt động.

Có bất kỳ lý do nào tôi không nên thêm /usr/local/sbin:/usr/sbin:/sbinvào đường dẫn của mình trên Debian không? Đây là một máy tính cá nhân, tôi là người dùng duy nhất của con người.


Các phiên bản được sử dụng ( uname -a):
Ubuntu:

Linux ubuntu 3.13.0-51-generic #84-Ubuntu SMP Wed Apr 15 12:08:34 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

Debian:

Linux debian 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u3 (2015-08-04) x86_64 GNU/Linux

Câu hỏi tuyệt vời - được nêu lên :) Tình cờ, đây là một số lịch sử về quyết định của Debian không đưa /usr/local/sbin:/usr/sbin:/sbinvào PATH mặc định cho người dùng thông thường. Cách tiếp cận của Ubuntu có vẻ thân thiện hơn với tất cả mọi người trừ những người dùng dày dạn nhất.
sampablokuper

Câu trả lời:


27

Trong Chính sách Debian được viết rằng Debian tuân theo Tiêu chuẩn phân cấp tệp phiên bản 2.3. Lưu ý số 19 về tiêu chuẩn cho biết:

Quyết định những gì đi vào thư mục "sbin" rất đơn giản: nếu người dùng bình thường (không phải quản trị viên hệ thống) sẽ chạy trực tiếp, thì nó phải được đặt trong một trong các thư mục "bin". Người dùng thông thường không cần phải đặt bất kỳ thư mục sbin nào trong đường dẫn của họ.

Ví dụ: các tệp như chfn mà người dùng chỉ thỉnh thoảng sử dụng vẫn phải được đặt trong / usr / bin. ping, mặc dù nó thực sự cần thiết cho root (phục hồi và chẩn đoán mạng) thường được người dùng sử dụng và phải sống trong / bin vì lý do đó.

Chúng tôi khuyên người dùng nên đọc và thực thi quyền đối với mọi thứ trong / sbin ngoại trừ, có lẽ, một số chương trình setuid và setgid nhất định. Việc phân chia giữa / bin và / sbin không được tạo vì lý do bảo mật hoặc để ngăn người dùng nhìn thấy hệ điều hành, nhưng để cung cấp một phân vùng tốt giữa các nhị phân mà mọi người sử dụng và những thứ chủ yếu được sử dụng cho các tác vụ quản trị. Không có lợi thế bảo mật cố hữu trong việc tạo / sbin ngoài giới hạn cho người dùng .


Câu trả lời ngắn:

Có bất kỳ lý do nào tôi không nên thêm /usr/local/sbin:/usr/sbin:/sbinvào đường dẫn của mình trên Debian không?

Như ghi chú, không có lý do tại sao bạn không nên làm điều đó. Vì bạn là người duy nhất sử dụng hệ thống và bạn cần các tệp nhị phân trong các sbinthư mục, hãy thoải mái thêm chúng vào $PATH. Tại thời điểm này, hãy để tôi hướng dẫn bạn một câu trả lời xuất sắc để làm điều đó một cách chính xác.


4

Lý do duy nhất để không thêm chúng là vì nó làm cho việc hoàn thành các lệnh trở nên chậm hơn (vì nhiều thư mục được tìm kiếm hơn) và kém hiệu quả hơn (vì có nhiều khả năng trùng khớp từ các lệnh không có ý nghĩa đối với việc không sử dụng root ).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.