Theo mặc định, các tệp được tạo bằng accound gốc có quyền như vậy:
-rw-r--r-- 1 root root 0 11月 17 23:25 rootfile.txt
Ở đây tập tin thuộc về người dùng root và nhóm gốc, và có thể đọc và ghi được bằng root, nhưng chỉ những người khác có thể đọc được.
Cách tiếp cận đơn giản nhất sẽ chỉ là chown
trả lại tệp cho người dùng ban đầu.
chown username:group_name dummy.txt
Bạn có thể sử dụng $SUDO_USER
biến chỉ có thể truy cập khi sudo
được gọi, như vậy:
chown "$SUDO_USER":"$SUDO_USER" dummy.txt
Nếu bạn đang chạy tập lệnh với tư cách là người dùng thông thường, thì chown
phần đó hoàn toàn không cần thiết, vì vậy bạn có thể muốn xem xét sử dụng if-statement hoặc &&
test để kiểm tra trường hợp khi tập lệnh được chạy dưới quyền root và thực hiện một số thứ theo các dòng này:
#!/bin/bash
touch dummy.txt
[ $UID -eq 0 ] && chown "$SUDO_USER":"$SUDO_USER" dummy.txt
Trên đây là cách tiếp cận được đề nghị. Có những thứ khác, như sử dụng chmod
để thay đổi quyền đọc-ghi-thực thi cho người dùng và nhóm, nhưng điều đó không được khuyến khích.
chown
vàchmod
trong tập lệnh của mình để đặt quyền sở hữu và quyền như mong muốn.