Xin lỗi, tôi muốn hỏi điều này dưới dạng nhận xét cho câu trả lời đã chọn, nhưng tôi chưa có bất kỳ đại diện nào về siêu người dùng.
Câu trả lời bảo mật có ý nghĩa, nhưng nếu bạn đặt "." trong PATH của bạn là điều cuối cùng, không nên tìm shell trong thư mục hiện tại khi nó tìm kiếm các tệp thực thi, và do đó làm giảm rủi ro bảo mật? Nếu nó đã tìm kiếm $ PATH theo thứ tự, nó sẽ tìm / bin / ls trước khi tìm thấy ./ls.
Vì vậy, làm thế nào không an toàn cho tôi để đặt "." ở cuối biến môi trường $ PATH của tôi?
Nó hoạt động như tôi đề nghị. Đây là cách tôi đã thử nghiệm:
Đầu tiên, thêm "." đến KẾT THÚC của biến môi trường PATH của bạn.
Sau đó, đặt tệp sau vào một số thư mục, chẳng hạn như ~ / dir1 / dir2 / test_which.rb:
#!/your/path/to/ruby
puts "this file is from the current directory"
Và đặt tệp này tại /usr/bin/test_which.rb
#!/your/path/to/ruby
puts "this file is at /usr/bin/test_which.rb"
Hãy chắc chắn chmod + x các tệp để chúng có thể thực thi được.
Bây giờ, nếu bạn thay đổi thư mục thành ~ / dir1 / dir2 và thực thi test_which.rb, bạn sẽ nhận được đầu ra
this file is at /usr/bin/test_which.rb
Thật vậy, nếu bạn chạy "which test_which.rb" từ bất cứ đâu, nó sẽ báo cáo
/usr/bin/test_which.rb
Bạn vẫn có thể thực thi tệp trong thư mục hiện tại bằng cách gõ:
./test_which.rb
ls
sẽ/usr/bin/ls
và./ls
không. Ngoài ra còn có trở ngại nếu bạn biết cách thêm.
vào cuối con đường của mình, bạn có thể có một số ý tưởng về những gì bạn đang làm. root không bao giờ có.
trong đường dẫn, nhiều hệ thống thậm chí không cho phép root đăng nhập nữa.