chown
là tuyệt vời nếu bạn là một siêu người dùng. Tôi gặp vấn đề khi người khác chạy make
trong thư mục của tôi và hiện sở hữu một số tệp mà tôi không thể sửa đổi. Đây là cách giải quyết của tôi xử lý các tệp và thư mục, mặc dù nó để các thư mục nằm xung quanh với hậu tố .mkmeowner
nếu nó không thể xóa chúng.
- Tập lệnh sau đây thay đổi quyền sở hữu các tệp và thư mục được người dùng hiện tại sở hữu, cố gắng khắc phục các sự cố về quyền bằng cách tạo một bản sao mới của mọi thư mục hoặc tệp không thuộc quyền sở hữu của người dùng hiện tại, xóa (hoặc cố gắng xóa) các tập tin ban đầu, và đổi tên thích hợp.
- Mục đích của nó là viết tắt của "make me own". Tôi không sử dụng dấu gạch dưới vì chúng là một loại đau.
Ví dụ:
% mkmeowner .
% mkmeowner dirpath1 dirpath2
- Nó đòi hỏi đoạn script sau
mkmeownerone
phải nằm trong đường dẫn của bạn.
chủ sở hữu
#!/bin/bash
[ "x$1" == "x-h" ] || [ "x$1" == "x--help" ] && cat << END && exit 0
Usage: $0 dirorfile [direorfile2 ...]:
change ownership of directories or files to current user.
Current user must have permissions to read those and write to owner directory.
END
mkmeownerone=`which mkmeownerone`
for d in $*; do
find "$d" -not -user `whoami` -exec $mkmeownerone {} \;
done
mkmeownerone:
#!/bin/bash
# change ownership of one file or directory
f="$1"
expr match "${f}" '.*\.mkmeowner$' > /dev/null && exit 1 # already tried to do this one
if mv -f "$f" "${f}.mkmeowner"; then
cp -pr "${f}.mkmeowner" "$f" && rm -rf "${f}.mkmeowner"
exit 0
fi
exit 1
man chown
vàman chmod
dễ dàng trả lời câu hỏi của bạn.