Gần đây khi làm việc với Alpine Linux 3.21, mình gặp phải một lỗi khá “khó chịu” khi dùng lệnh chown
để đổi chủ sở hữu và nhóm cho file. Bình thường, mình vẫn hay quen dùng cú pháp kiểu:
chown user.group file
Ví dụ:
chown root.wheel myfile.txt
Nhưng lần này, Alpine 3.21 lại báo lỗi, không thực hiện được!
Sau khi tìm hiểu, mình mới biết:
Alpine Linux (và các hệ điều hành hiện đại khác tuân thủ chuẩn POSIX) KHÔNG còn hỗ trợ cú pháp dùng dấu chấm (.) để phân biệt giữa user và group nữa. Thay vào đó, phải dùng dấu hai chấm (:) nhé mọi người!
Cú pháp đúng theo chuẩn POSIX bây giờ phải là:
chown user:group file
Ví dụ:
chown root:wheel myfile.txt
Lý do là gì?
- Chuẩn POSIX yêu cầu dùng dấu hai chấm để tách user và group, để tên user và group có thể chứa dấu chấm mà không bị nhầm lẫn.
- Các phiên bản chown hiện đại (ví dụ trên Alpine Linux 3.21 với BusyBox hoặc coreutils mới) sẽ báo lỗi hoặc không nhận cú pháp cũ nếu bạn dùng dấu chấm.
Nguồn tham khảo:
Tóm lại:
Ai còn thói quen dùng chown user.group file
thì nên chuyển sang chown user:group file
để tránh lỗi nhé! Đặc biệt là anh em dùng Alpine Linux, Ubuntu, Debian, hoặc các hệ thống hiện đại khác.
Có ai từng bị lỗi này chưa, comment chia sẻ trải nghiệm cùng mình nhé!