Trên CentOS 7, tôi đã cài đặt một số tệp thực thi /opt/app-version/bin/executable
. Những thực thi đó có các quyền sau:
rwxrwxr-x. 500 500
Quyền sở hữu của mọi thư mục trong đường dẫn /opt/app-version/bin/
là - 500 500
ngoại trừ /opt
, đó là root root
.
Câu hỏi đầu tiên của tôi: 500 500
kinh doanh này là gì? Cho rằng tôi đã cài đặt các tệp thực thi bằng cách sử dụng sudo
, chủ sở hữu và nhóm không nên root
?
Tôi đã chạy lệnh sau với quyền root để tạo các liên kết tượng trưng đến các tệp thực thi trong /usr/local/bin/
:
ln /opt/app-version/bin/executable /usr/local/bin/executable --symbolic
Tôi có thể chạy executable
từ dòng lệnh như một người dùng thông thường, nhưng không phải là người dùng thông thường sử dụng sudo
.
Chạy sudo executable
trở lại sh: executable: command not found
.
Chạy sudo echo $PATH
cho thấy đó /usr/local/bin/
là trong $PATH
môi trường sudo. (Hoặc hiện nó? Tôi nhìn thấy các nội dung của $PATH
cho môi trường sử dụng siêu hay $PATH
cho môi trường của người sử dụng mà gọi sudo
? Liệu CentOS tạo ra một môi trường mới cho các lệnh chạy với sudo
, hay nó chỉ cần chạy lệnh trong môi trường của người gọi? )
Chạy sudo ls -la /usr/local/bin/executable
trả về một danh sách cho executable
ở /usr/local/bin/
với quyền sở hữu lrwxrwxrwx. 1 root root
. (Có ln --symbolic
thực sự tạo các liên kết có thể chỉnh sửa trên toàn cầu theo mặc định không? Đó không phải là - một ý tưởng khủng khiếp?) Sự hiểu biết của tôi là chương trình này sudo
sẽ có thể chạy executable
.
Tôi đang thiếu gì?