Sẽ không thực sự quan trọng nếu các tệp trong /bin
(hoặc bất kỳ thư mục tiêu chuẩn nào khác có thể thực thi được) có thể ghi được bằng root hay không. Trên máy chủ Linux tôi đang sử dụng, chúng có thể ghi được bằng root, nhưng trên máy OpenBSD của tôi thì không.
Miễn là họ không thể ghi được bởi nhóm hoặc bởi "người khác"!
Không có vấn đề bảo mật, vd
-rwxr-xr-x 1 root root 126584 Feb 18 2016 /bin/ls
Nếu ai đó muốn ghi đè lên nó, họ sẽ phải root và nếu họ root
và ghi đè lên nó, thì họ cũng vậy
- cài đặt phiên bản mới hoặc
- vụng về, hay
- một kẻ tấn công với quyền root đã có .
Một điều khác cần xem xét là root có thể ghi vào tệp bất kể nó có được bảo vệ hay không, bởi vì ... root.
Cũng lưu ý rằng "một tập lệnh" cũng giống như một tệp nhị phân. Một tập lệnh không cần phải ghi "vì đó là tệp văn bản". Nếu bất cứ điều gì, nó có lẽ chỉ cần có quyền như các tệp thực thi khác trong cùng thư mục.
Đừng đi thay đổi quyền trên mọi thứ ngay bây giờ! Điều đó có thể phá hỏng tất cả các loại người quản lý gói và có khả năng gây nhầm lẫn, những người có thể xác minh rằng các quyền được đặt đúng. Nó cũng có thể làm cho hệ thống dễ bị tổn thương nếu bạn vô tình thay đổi các quyền sai cách trên ứng dụng quan trọng về bảo mật.
Chỉ cần giả sử rằng các quyền trên các tệp thực thi được đặt chính xác, trừ khi bạn tìm thấy thứ gì đó trông thật kỳ quặc, trong trường hợp đó bạn có thể nên liên hệ với người bảo trì gói có liên quan để xác minh thay vì bắt đầu thay đổi công cụ.
Từ các bình luận và trên trò chuyện , đã có một cuộc gọi cho một số lịch sử.
Lịch sử của các quyền trên nhị phân trên Linux không phải là bất cứ điều gì tôi biết. Có thể suy đoán rằng họ chỉ đơn giản là thừa hưởng các quyền từ thư mục hoặc chỉ từ mặc định umask
của Linux, nhưng tôi thực sự không biết.
Những gì tôi biết là OpenBSD cài đặt các nhị phân trong hệ thống cơ sở 1 với chế độ cấp phép theo mặc định 555 ( -r-xr-xr-x
). Điều này được chỉ định trong một đoạn Makefile trong /usr/share/mk/bsd.own.mk
đó thiết lập BINMODE
thành 555 (trừ khi nó đã được đặt). Sau này được sử dụng khi cài đặt thực thi trong make build
trong /usr/src
.
Tôi đã xem nhật ký CVS có chú thích cho tệp này và thấy rằng dòng này trong tệp không thay đổi do được nhập từ NetBSD vào năm 1995.
Trên NetBSD, tệp lần đầu tiên được đưa vào CVS vào năm 1993, với giá trị BINMODE
được đặt là 555.
Dự án FreeBSD dường như đã sử dụng cùng một tệp chính xác như NetBSD kể từ ít nhất là năm 1994 và với một cam kết sau đó thêm một gợi ý trong thông báo cam kết rằng các tệp cũ là từ bản phát hành 4.4BSD của Bản phân phối phần mềm Berkeley.
Ngoài ra, CSRG tại Berkeley đã giữ các nguồn trong SCCS nhưng kho lưu trữ của chúng có sẵn ở dạng Git trên GitHub 2 . Các tập tin mà chúng tôi đang đem lại cho các treatement forencic đây dường như đã được cam kết bởi Keith Bostic (hoặc ai đó trong gần anh ta) vào năm 1990.
Vậy đó là câu chuyện. Nếu bạn muốn tại sao , thì tôi cho rằng chúng ta sẽ phải hỏi Keith. Tôi đã hy vọng nhìn thấy một thông điệp cam kết cho một sự thay đổi nói rằng " điều này cần phải là 555 vì ... ", nhưng không.
1 hệ thống BSD có sự phân chia chặt chẽ hơn thành "hệ thống cơ sở" và "gói bên thứ 3" (cổng / gói) so với Linux. Hệ thống cơ sở là một đơn vị kết hợp cung cấp một bộ đầy đủ các phương tiện để chạy hệ điều hành, trong khi các cổng hoặc gói được xem là "phần mềm cục bộ" và được cài đặt bên dưới /usr/local
.
2 Một kho lưu trữ GitHub toàn diện hơn về các bản phát hành Unix từ những năm 70 trở đi cũng có sẵn .
root
có quyền ghi vào tệp nhị phân? Nếu không có gì khác nó sẽ giúp khi nâng cấp gói đó.