Trong "Lập trình Perl" -w
điều hành tập tin thử nghiệm được mô tả như sau:Tại sao toán tử kiểm tra tệp không hoạt động (Perl)?
-w file là có thể ghi bởi UID hiệu quả/GID.
Tôi có hai tập tin:
-rwsrwxrwx 1 testuser testuser 226 Jul 20 20:31 script.pl
-rw-rw-r-- 1 testuser testuser 34 Jul 14 17:24 file.txt
suid
được thiết lập trên script.pl
, vì vậy khi tôi chạy nó như là người dùng Caligula, UID hiệu quả/GID nên một của testuser. script.pl
là:
#!/usr/bin/perl
use v5.14;
if (-w 'file.txt') {
say "true";
}
else {
say "false";
}
Nhưng khi tôi chạy nó [email protected]:~$ ./script.pl
đầu ra luôn là false
. Tại sao điều đó xảy ra, có thể tôi không hiểu cách sử dụng chính xác của toán tử đó?
Đánh giá cao của tôi.
FYI: Perl 5.16.0 là bây giờ có sẵn, mặc dù đó có thể là tin cũ cho tất cả mọi người nhưng tôi kể từ những ngày gần đây nhất trong bóng tar là 2012-05-20 vì vậy nó đã được đóng gói về sau đó. –