mkdir đệ quy - thư mục tồn tại nhưng người dùng không có quyền trên đó


0

Tôi đang cố gắng đệ quy tạo thư mục thông qua ssh.

Thư mục / home / user / staging tồn tại. Nhưng người dùng không được phép đọc / về nhà . mkdir không biết nếu / home / user tồn tại và cố gắng tạo nó.

mkdir -p /home/user/staging/first/second/third/fourth/
mkdir: cannot create directory ‘/home/user’: Permission denied

Làm thế nào để bỏ qua thư mục này và tiếp tục tạo nơi người dùng có quyền?

Tôi đang cố gắng thực hiện nó với kịch bản của riêng tôi,

rec()
{
    dir=$1
    if [[ ! -e $dir ]]; then
        echo "creating $dir"
        newdir=$(echo $dir | sed 's:/[^/]*$::')
        rec $newdir
        mkdir $dir
    fi
}

Vì một số lý do kiểm tra này không thành công nếu [[! -e $ dir]] và vòng lặp đi qua các thư mục hiện có và cuối cùng không tạo ra bất cứ điều gì.


Điều gì sẽ giúp : id; ls -ld /home
AB

Làm thế nào về cd'ing vào nhà của người dùng, sau đó tạo các thư mục tương đối?
Xen2050

nếu userkhông có quyền thực thi /home, thì đây là hành vi dự kiến. Câu trả lời này về quyền truy cập thư mục có thể giúp bạn.
danzel

Câu trả lời:


0

Tôi đã không quản lý để làm cho kịch bản này hoạt động.

Tuy nhiên, giải pháp là sử dụng tùy chọn - tương đối của chính rsync.

rsync -a --relative /new/x/y/z/ user@remote:/pre_existing/dir/

Như được mô tả trong câu trả lời này: https://stackoverflow.com/a/22908437/6505678

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.