authbind - Trực tuyến trên đám mây

Đây là lệnh authbind có thể được chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi, chẳng hạn như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS

CHƯƠNG TRÌNH:

TÊN


authbind - liên kết các ổ cắm với các cổng đặc quyền mà không cần root

SYNOPSIS


liên kết xác thực [lựa chọn] chương trình [đối số ...]

MÔ TẢ


liên kết xác thực cho phép một chương trình không hoặc không nên chạy dưới quyền root để liên kết với số thấp
các cổng một cách có kiểm soát.

Bạn phải gọi chương trình bằng cách sử dụng liên kết xác thực. liên kết xác thực sẽ thiết lập một số môi trường
các biến, bao gồm một LD_PRELOAD, điều này sẽ cho phép chương trình (bao gồm bất kỳ
các quy trình con mà nó có thể chạy) để liên kết với các cổng được đánh số thấp (<512) nếu hệ thống được định cấu hình
để cho phép điều này.

LỰA CHỌN


--sâu Thông thường, liên kết xác thực sắp xếp chỉ chương trình mà nó trực tiếp gọi để trở thành
bị ảnh hưởng bởi phiên bản đặc biệt của ràng buộc(2). Nếu bạn chỉ định --sâu sau đó tất cả
các chương trình mà chương trình đó gọi trực tiếp hoặc gián tiếp sẽ bị ảnh hưởng, vì vậy
miễn là họ không bỏ đặt các biến môi trường được thiết lập bởi liên kết xác thực.

--chiều sâu niveaux
Nguyên nhân liên kết xác thực ảnh hưởng đến các chương trình đang niveaux sâu trong biểu đồ gọi. Các
mặc định là --chiều sâu 1.

VỊ TRÍ CỦA CHÚNG TÔI KIỂM SOÁT


Quyền truy cập vào các cổng được đánh số thấp được kiểm soát bởi quyền và nội dung của tệp trong
khu vực cấu hình, / etc / authbind.

Thứ nhất, / etc / authbind / byport /cổng được thử nghiệm. Nếu tệp này có thể truy cập được để thực thi
người dùng đang gọi điện, theo truy cập(2), sau đó ràng buộc với cổng được ủy quyền. Nếu
tệp có thể được xem là không tồn tại (kiểm tra sự tồn tại trả về NỔI BẬT) thì các bài kiểm tra tiếp theo sẽ
được sử dụng để tìm sự cho phép; nếu không, ràng buộc không được ủy quyền và ràng buộc cuộc gọi
sẽ trở lại với sai giá trị từ truy cập(2) cuộc gọi, thường là MẶT BẰNG (Sự cho phép
từ chối).

Thứ hai, nếu thử nghiệm đó không giải quyết được vấn đề, / etc / authbind / byaddr /địa chỉ,cổng (bất kì
giao thức) hoặc không thành công / etc / authbind / byaddr /địa chỉ:cổng (Chỉ IPv4) được thử nghiệm, trong
tương tự như trên. Ở đây địa chỉ là từ inet_ntopcổng là TCP hoặc UDP (cục bộ)
số cổng, được biểu thị dưới dạng số nguyên không dấu với số chữ số khác XNUMX tối thiểu.

Thứ ba, chỉ dành cho IPv6: vì đại diện văn bản từ inet_ntop phức tạp
dự đoán, một biến thể của địa chỉ cũng được thử nghiệm không sử dụng dấu hai chấm
viết tắt: mỗi đoạn 16 byte được thể hiện bằng số chữ số hex tối thiểu
(tức là với các số XNUMX đứng đầu bị loại bỏ), các phần được phân tách bằng dấu hai chấm như nguyên trạng
thông thường.

Thứ tư, nếu câu hỏi vẫn chưa được giải quyết, tệp / etc / authbind / byuid /uid sẽ được
đã mở và đọc. Nếu tệp không tồn tại thì ràng buộc không được ủy quyền và ràng buộc
sẽ trở lại EPERM (hoạt động không cho phép, hoặc là Không chủ sở hữu). Nếu tệp tồn tại, nó sẽ
được tìm kiếm một dòng của biểu mẫu
addrmin[-addmax],portmin[-portmax]
địa chỉ[/chiều dài],portmin[-portmax]
địa chỉ 4/chiều dài:portmin,portmax
phù hợp với yêu cầu. Biểu mẫu đầu tiên yêu cầu địa chỉ nằm trong phạm vi có liên quan
(bao gồm ở cả hai đầu). Biểu mẫu thứ hai và thứ ba yêu cầu rằng chiều dài bit
of địa chỉ phù hợp với những người trong đề xuất ràng buộc gọi. Biểu mẫu thứ ba chỉ có sẵn cho IPv4
vì địa chỉ IPv6 chứa dấu hai chấm. Địa chỉ trong tệp byuid có thể ở bất kỳ hình thức nào
chấp nhận được đối với inet_pton. Trong mọi trường hợp, số cổng được đề xuất phải nằm trong
phạm vi bao gồm được chỉ định. Nếu một dòng như vậy được tìm thấy thì ràng buộc được ủy quyền.
Nếu không thì không, và ràng buộc sẽ thất bại với NỔI BẬT (Không như vậy hồ sơ or thư mục).

Nếu xảy ra lỗi đọc hoặc thư mục / etc / authbind không thể được truy cập, sau đó không chỉ
sẽ ràng buộc thất bại, nhưng một thông báo lỗi sẽ được in ra stderr. Các dòng không được công nhận trong
/ etc / authbind / byuid /uid các tệp bị bỏ qua một cách im lặng, cũng như các dòng có địa chỉ có khác XNUMX
nhiều hơn một chút chiều dài từ trên cùng hoặc nơi một số phút lớn hơn tối đa.

THÍ DỤ


Ví dụ: một nỗ lực của uid 432 để liên kết với cổng 80 của địa chỉ
[2620: 106: e002: f00f :: 21] sẽ dẫn đến việc gọi authbind truy cập(2) trên, theo thứ tự,
/ etc / authbind / byport / 80
/etc/authbind/byaddr/2620:106:e002:f00f::21,80
/etc/authbind/byaddr/2620:106:e002:f00f:0:0:0:21,80
Nếu không có tệp nào trong số này tồn tại, authbind sẽ đọc
/ etc / authbind / byuid / 432
và tìm kiếm một đường cho phép truy cập có liên quan; ví dụ về các dòng sẽ làm như vậy
là:
2620:106:e002:f00f::21,80
:: / 0,80

CẢNG 512-1023


Không khuyến khích cấp phép ràng buộc cho các cổng từ 512 đến 1023. Một vài
giao thức (bao gồm một số phiên bản của NFS) cho phép khách hàng bằng cách thấy rằng họ đang sử dụng
một số cổng trong phạm vi này. Vì vậy, bằng cách cho phép một chương trình làm máy chủ cho một cổng như vậy,
bạn cũng cho phép nó mạo danh toàn bộ máy chủ lưu trữ cho các giao thức đó.

Để đảm bảo rằng việc này không được thực hiện một cách tình cờ, nếu số cổng được yêu cầu nằm trong
phạm vi 512-1023, authbind sẽ mong đợi các tệp quyền có thêm ! tại
bắt đầu của tên lá của họ.

CƠ CHẾ


Thư viện được chia sẻ được tải bằng cách sử dụng LD_PRELOAD ghi đè ràng buộc(2) cuộc gọi hệ thống. Khi một
chương trình được gọi qua liên kết xác thực cuộc gọi ràng buộc để liên kết một ổ cắm với một cổng TCP / IP được đánh số thấp,
và nếu chương trình chưa có giá trị hiệu dụng là 0, thì phiên bản của ràng buộc
được cho là bởi liên kết xác thực fork và thực thi một chương trình trợ giúp setuid-root. Đối với không phải TCP / IP
ổ cắm, cổng được đánh số cao hoặc chương trình đã được root, liên kết xác thực vượt qua cuộc gọi
đến bản gốc ràng buộc(2) cuộc gọi hệ thống, được tìm thấy bằng cách sử dụng dlsym(3) với tay cầm
RTLD_NEXT.

ERROR XỬ LÝ


Thông thường áp dụng các cơ chế xử lý lỗi C thông thường. Nếu như liên kết xác thực không thể tìm thấy chương trình
nó đã được yêu cầu thực thi nó sẽ in một thông báo tới stderr và thoát ra với mã 255.

Chương trình trợ giúp thường báo cáo lại thư viện được chia sẻ với trạng thái thoát
chứa một sai giá trị mã hóa cho dù ràng buộc đã được cho phép và thành công.
Điều này sẽ được quay trở lại chương trình gọi theo cách thông thường.

Trong trường hợp cấu hình rõ ràng hoặc các lỗi nghiêm trọng khác, thư viện và / hoặc
chương trình trợ giúp có thể làm cho các thông báo được in ra stderr của chương trình, cũng như
trả về -1 từ ràng buộc.

Sử dụng authbind trực tuyến bằng các dịch vụ onworks.net



Các chương trình trực tuyến Linux & Windows mới nhất