Ghi đè đường dẫn đến nhị phân cho người dùng cụ thể


8

Câu hỏi của tôi có vẻ tầm thường nhưng tôi đã không tìm thấy bất cứ điều gì hữu ích trên internet. Tôi có một nhị phân trong

/urs/bin/binary

nhưng nó đã lỗi thời và phiên bản mới hơn có sẵn trên một số mount chẳng hạn

/mount/new_version/binary

Có một tập lệnh bash gọi nhị phân này dưới dạng như

binary -doSomething

Tôi cần tập lệnh này để gọi phiên bản nhị phân mới thay vì phiên bản cũ nhưng tôi không được phép thay đổi tập lệnh này. Có phải là một cách để ghi đè đường dẫn đến nó nhưng chỉ dành cho người dùng của tôi? Bất kỳ trợ giúp sẽ được đánh giá cao.


Nếu bạn không được phép làm điều đó, hãy nói chuyện với quản trị viên của bạn.
Sven

Câu trả lời:


11

Nếu nhị phân là trong /usr/bin/binaryvà kịch bản gọi nhị phân mà không chỉ định đường dẫn đầy đủ, nhưng thay vì dựa vào /usr/binlà ở PATHsau đó bạn chỉ có thể thêm vị trí của nhị phân mới vào đầu của người sử dụng của PATH. Đặt một cái gì đó như thế này trong ~/.bashrc:

PATH=/mount/new_version:$PATH

Vì lý do bảo mật, các tập lệnh thường chỉ định đường dẫn đầy đủ đến nhị phân để ngăn chặn loại điều này.


3

Nếu bạn có quyền truy cập vào nhị phân, bạn có thể sao lưu nó và tạo một liên kết tượng trưng.

mv /urs/bin/binary /urs/bin/binary.bkp
ln -s /mount/new_version/binary /urs/bin/binary

[BIÊN TẬP]

Xin lỗi, không thấy thay đổi chỉ được thực hiện cho một người dùng.

Bạn có thể tạo một hàm được gọi thay vì nhị phân.

Tùy thuộc vào cách bạn thực hiện nhị phân (đường dẫn đầy đủ hoặc chỉ tên), bạn phải tạo một hàm phù hợp , như:

# Full path
function /urs/bin/binary () { command /mount/new_version/binary "$@"; }
export -f /urs/bin/binary
# Name
function binary () { command /mount/new_version/binary "$@"; }
export -f binary

Nếu nhị phân không chấp nhận / cần đối số, hãy xóa "$ @" .

Để tự động hóa việc tạo chức năng, hãy đặt các dòng chức năng trong tệp .profile trong thư mục gốc của người dùng.


Điều này sẽ ảnh hưởng đến tất cả người dùng. Nó không được chấp nhận.
Viktor Stolbin

Xin lỗi, tôi đã sửa câu trả lời vì thay đổi chỉ ảnh hưởng đến một người dùng.
Douglas P.

3

alias commandname=/mount/new_version/binary

trong .bashrc phía trên câu lệnh path / export hoặc trong hồ sơ sẽ thực hiện đủ dễ dàng.

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.