สร้างไฟล์ในโฟลเดอร์: ปฏิเสธสิทธิ์


37

ฉันมีปัญหาในการคัดลอกไฟล์ไปยังไดเรกทอรีบน Ubuntu 12.04 ฉันสร้างไดเรกทอรีในโฮมไดเรกทอรีเพื่อให้เส้นทางที่ฉันต้องการคัดลอกคือ:

/home/sixven/camp_sms/inputs

แต่เมื่อ ini รันคำสั่งต่อไปนี้ใน terminal เพื่อสร้างไฟล์ตัวอย่างดังนี้

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

ฉันไม่สามารถคัดลอกไฟล์โดยตรงในไดเรกทอรีนั้น ฉันจะกำหนดสิทธิ์ด้วยคำสั่งchown& chmodเพื่อคัดลอกไฟล์ได้อย่างไร

ฉันไม่ทราบว่าจะใช้ผู้ใช้และกลุ่มใด


คุณสร้างไดเรกทอรีได้อย่างไร ทำไมมันจึงเป็นใน/home/sixven? ทำไมมันไม่อยู่ในโฮมไดเร็กตอรี่ของคุณ?
terdon

2
จากสิ่งที่คุณคัดลอกคุณกำลังเรียกใช้การสัมผัสในฐานะผู้ใช้francisco-vergaraแต่ไดเรกทอรีของคุณอยู่ใน/home/sixvenนั้นคือที่บ้านของผู้ใช้จริงfrancisco-vergeraหรือมันเป็นของsixvenผู้ใช้หรือไม่ คุณควรชี้แจงสิ่งที่คุณต้องการทำอย่างแน่นอน เขียนในบ้านของผู้ใช้คนอื่น? แชร์ไดเรกทอรีนั้นในกลุ่มหรือไม่?
Leiaz

คำตอบ:


54

ก่อนอื่นคุณต้องรู้ว่าการอนุญาตเริ่มต้นของไดเรกทอรีใน Ubuntu คือ 644 ซึ่งหมายความว่าคุณไม่สามารถสร้างไฟล์ในไดเรกทอรีที่คุณไม่ใช่เจ้าของ

คุณกำลังพยายามเป็นuser:francisco-vergaraในการสร้างแฟ้มในไดเรกทอรีซึ่งเป็นเจ้าของโดย/home/sixven/camp_sms/inputsuser:sixven

ดังนั้นวิธีแก้ปัญหานี้:

  1. คุณสามารถเปลี่ยนการอนุญาตของไดเรกทอรีและทำให้ผู้อื่นสามารถสร้างไฟล์ภายใน

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

    คำสั่งนี้จะเปลี่ยนการอนุญาตของไดเรกทอรีซ้ำและเปิดใช้งานผู้ใช้รายอื่นทั้งหมดเพื่อสร้าง / แก้ไขและลบไฟล์และไดเรกทอรีภายใน

  2. คุณสามารถเปลี่ยนเจ้าของจัดส่งของไดเรกทอรีนี้และทำให้user:francisco-vergaraเป็นเจ้าของ

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

    แต่อย่างนี้user:sixvenไม่สามารถเขียนในโฟลเดอร์นี้ได้อีกดังนั้นคุณอาจเคลื่อนที่เป็นวงวนไม่สิ้นสุด

ดังนั้นฉันแนะนำให้คุณใช้ตัวเลือกที่ 1

หรือถ้าผู้ใช้ทั้งสองสามารถเข้าถึงไดเรกทอรีนี้คุณสามารถทำตามเคล็ดลับต่อไปนี้:

เปลี่ยนความเป็นเจ้าของของไดเรกทอรีไปและให้เจ้าของกลุ่มuser:francisco-vergaragroup:sixven

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

เช่นเดียวกับที่ผู้ใช้ทั้งสองยังคงสามารถใช้ไดเรกทอรีได้

แต่อย่างที่ฉันบอกคุณก่อนมันง่ายและมีประสิทธิภาพมากกว่าในการใช้ตัวเลือก 1


10
รื้อฟื้นสิ่งนี้เพื่อพูดว่า: คุณไม่ควรทำอะไรเลย 'chmod -R 777' การกำหนดความเป็นเจ้าของอย่างถูกต้องเป็นวิธีปฏิบัติที่ปลอดภัยกว่า digitalocean.com/community/tutorials/... askubuntu.com/questions/20105/...
ดักลาสอดัมส์

12

หากต้องการเปลี่ยนความเป็นเจ้าของไฟล์ให้ทำเช่นนี้ในฐานะรูท:

chown -R user:user /home/sixven

หากคุณตัดสินใจที่จะไปทาง chmod:

หากคุณรู้ว่าผู้ใช้เป็นส่วนหนึ่งของกลุ่มของไฟล์

chmod -R g+rw /home/sixven

มิฉะนั้น:

chmod -R o+rw /home/sixven

แต่วิธีนี้ไม่ปลอดภัยเกินไป


ใช้งานได้อย่างมีเสน่ห์
Faris Rayhan

1

เริ่มต้น umask 022 (ใน Ubuntu) เพื่อให้สิทธิ์สำหรับ / home / ชื่อผู้ใช้กลายเป็น 755. และคุณเข้าสู่ระบบในฐานะผู้ใช้francisco-vergaraและพยายามที่จะสร้างไฟล์ในผู้ใช้ sixyen หน้าแรก: /home/sixvenคือ มันไม่ได้รับอนุญาตให้เขียนผู้ใช้อื่น ๆ เฉพาะผู้ใช้ / กลุ่มของsixvenมีการเข้าถึงการเขียน

ถ้าคุณต้องการเข้าถึงการเขียนในไดเรกทอรีนั้นคุณจะต้องเป็นส่วนหนึ่งของกลุ่มที่sixvenใช้usermod -G sixyen francisco-vergara OR chmod -R 777 /home/sixven(อย่าใช้มันเป็นวิธีปฏิบัติที่ไม่ดี)


คุณไม่ได้เร่งรีบอะไรสักอย่างเหรอ? เรายังไม่รู้สถานการณ์ของ OP
guntbert
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.