Tạo tập tin trong thư mục: quyền bị từ chối


37

Tôi gặp sự cố khi sao chép tệp vào thư mục trên Ubuntu 12.04. Tôi tạo một thư mục trong thư mục chính để đường dẫn mà tôi muốn sao chép là:

/home/sixven/camp_sms/inputs

Nhưng khi ini chạy lệnh sau trong terminal để tạo tệp mẫu như sau:

francisco-vergara@Francisco-Vergara:/home/sixven/camp_sms/inputs$ touch test_file.txt
touch: can not make `touch' on «test_file.txt»: permission denied

Tôi không thể sao chép các tập tin trực tiếp trong thư mục đó. Làm cách nào tôi có thể gán quyền với lệnh chown& chmodđể sao chép tệp?

Tôi không biết người dùng và nhóm nào sẽ sử dụng.


Làm thế nào bạn tạo thư mục? Tại sao nó ở trong /home/sixven? Tại sao nó không có trong thư mục nhà của bạn?
terdon

2
Từ những gì bạn đã sao chép, bạn đang chạy cảm ứng với tư cách là người dùng francisco-vergara, nhưng thư mục của bạn nằm trong /home/sixvenđó thực sự là nhà của người dùng francisco-vergerahay nó thuộc về sixvenngười dùng? Bạn nên làm rõ những gì bạn muốn làm chính xác. Viết trong nhà của người dùng khác? Chia sẻ thư mục đó trong một nhóm?
Leiaz

Câu trả lời:


54

Trước hết bạn phải biết rằng quyền mặc định của các thư mục trong Ubuntu là 644, điều đó có nghĩa là bạn không thể tạo một tệp trong thư mục mà bạn không phải là chủ sở hữu.

bạn đang cố gắng user:francisco-vergaratạo một tập tin trong một thư mục /home/sixven/camp_sms/inputsthuộc sở hữu của user:sixven.

Vậy làm thế nào để giải quyết điều này:

  1. Bạn có thể thay đổi quyền của thư mục và cho phép người khác tạo tệp bên trong.

    sudo chmod -R 777 /home/sixven/camp_sms/inputs
    

    Lệnh này sẽ thay đổi quyền của thư mục theo cách đệ quy và cho phép tất cả người dùng khác tạo / sửa đổi và xóa các tệp và thư mục bên trong.

  2. Bạn có thể thay đổi tàu chủ sở hữu của thư mục này và làm user:francisco-vergarachủ sở hữu

    sudo chown -R francisco-vergara:francisco-vergara /home/sixven/camp_sms/inputs
    

    Nhưng như thế này user:sixvenkhông thể viết lại trong thư mục này và do đó bạn có thể di chuyển trong một vòng lặp vô hạn tròn.

Vì vậy, tôi khuyên bạn nên sử dụng Tùy chọn 1.

Hoặc nếu thư mục này sẽ được truy cập bởi cả hai người dùng, bạn có thể thực hiện thủ thuật sau:

thay đổi quyền sở hữu của thư mục để user:francisco-vergaravà giữ cho chủ sở hữu nhóm group:sixven.

sudo chown -R francisco-vergara /home/sixven/camp_sms/inputs

Như vậy cả hai người dùng vẫn có thể sử dụng thư mục.

Nhưng như tôi đã nói với bạn trước đây Cách dễ nhất và hiệu quả hơn để sử dụng tùy chọn 1.


10
Hồi sinh điều này để nói: bạn hầu như không bao giờ nên 'chmod -R 777' bất cứ điều gì. Đặt quyền sở hữu một cách chính xác là một thực tế an toàn hơn nhiều. digitalocean.com/community/tutorials/... askubuntu.com/questions/20105/...
Douglas Adams

12

Để thay đổi quyền sở hữu tập tin, hãy làm điều này với quyền root:

chown -R user:user /home/sixven

Nếu bạn quyết định đi theo con đường chmod:

Nếu bạn biết rằng người dùng là một phần của nhóm tệp

chmod -R g+rw /home/sixven

Nếu không thì:

chmod -R o+rw /home/sixven

Nhưng cách này không quá an toàn.


Hoạt động như một bùa mê
Faris Rayhan

1

UMASK 022 mặc định (trong Ubuntu), do đó, quyền cho / home / tên người dùng trở thành 755. và bạn đã đăng nhập với tư cách người dùng francisco-vergaravà cố gắng tạo tệp trong user sixyen Home: tức là /home/sixven. nó không có quyền ghi cho người dùng khác Chỉ người dùng / Nhóm sixvencó quyền truy cập ghi.

nếu bạn muốn truy cập ghi trong thư mục đó, thì bạn cần tham gia Nhóm sixvenbằng cách sử dụng usermod -G sixyen francisco-vergara OR chmod -R 777 /home/sixven(không sử dụng thông lệ xấu đó).


Không phải bạn đang vội vã mọi thứ một chút sao? Chúng tôi vẫn không biết tình hình của OP.
guntbert
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.