คำถามการพิสูจน์ตัวตน Sublime Text 3 เมื่อบันทึกเอกสาร


11

ฉันใช้ข้อความประเสริฐเพื่อการพัฒนาเว็บ ทุกครั้งที่ฉันพยายามบันทึกการเปลี่ยนแปลง (Ctrl + S) หน้าต่างการตรวจสอบสิทธิ์จะปรากฏขึ้น:

จำเป็นต้องมีการตรวจสอบสิทธิ์เพื่อเรียกใช้ '/ bin / cp' ในฐานะผู้ใช้ขั้นสูง

เห็นได้ชัดว่าเมื่อฉันป้อนรหัสผ่าน Sublime จะบันทึกการเปลี่ยนแปลงอย่างถูกต้อง แต่เมื่อฉันกดยกเลิกหน้าต่างอื่นปรากฏขึ้นพร้อมกับข้อผิดพลาด:

ข้อผิดพลาด: administrator_copy_file (/tmp/.Some_File_Here, / var / www / Rest_Of_Path_Here) ล้มเหลว: การอนุญาตล้มเหลว

เนื่องจากฉันค่อนข้างใหม่สำหรับ Ubuntu ฉันไม่ทราบวิธีกำจัดการอนุญาตที่ปรากฏขึ้น ฉันมีสิทธิ์ทั้งหมดจะ/ var / wwwโฟลเดอร์


คุณแน่ใจว่าผู้ใช้ของคุณมีสิทธิ์ในการเขียนไป/var/wwwโดยไม่ต้องกลายราก (เช่นใช้sudo)?
David Bailey

@DavidBailey ฉันมีสิทธิ์ในการเขียนไป/var/wwwแต่ไม่ถึงโฟลเดอร์ย่อย ฉันได้ทำchownใน/var/wwwแต่เมื่อผมได้ตรวจสอบสิทธิ์บนโฟลเดอร์ย่อยอดีต มันเป็น/var/www/First_Site www-dataฉันคิดว่าchownในโฟลเดอร์หลักจะให้สิทธิ์ฉันกับโฟลเดอร์ย่อย / ไฟล์ทั้งหมดในนั้น
SONGE

คำตอบ:


6

/var/www/Rest_Of_Path_Hereคุณไม่ได้รับอนุญาตที่จะเขียนถึง ST3 พยายามยกระดับ UID เพื่อเขียนในฐานะผู้ใช้ที่ถูกต้อง ฉันไม่รู้ว่ามันสามารถทำสิ่งนี้ได้ แต่ฉันได้ทดสอบแล้วและมันก็ใช้ได้ดี

มีไม่กี่วิธีที่คุณสามารถแก้ไขปัญหานี้คือ:

  1. อนุญาตให้ผู้ใช้ของคุณจะเขียนไฟล์โดยตรง ตัวเลือกมากมายที่นี่:

    • chownไฟล์เพื่อให้คุณเป็นเจ้าของ ซึ่งอาจทำให้เสียสิ่งที่ทำงานเป็นผู้ใช้อื่น ๆ ที่อาจจำเป็นต้องเขียนเช่นเว็บเซิร์ฟเวอร์ทำงานตามที่ www ผู้ใช้ คุณอาจต้องเปลี่ยนสิ่งที่พวกเขาทำงานเช่นกัน
    • เพิ่มผู้ใช้ของคุณในwww-dataกลุ่มและเปลี่ยนรูปแบบไฟล์เป็น774เพื่อให้สมาชิกในกลุ่มสามารถเขียน / ดำเนินการได้
    • เปลี่ยนไฟล์มาสก์เพื่อให้ผู้ใช้รายอื่นสามารถเขียนได้ (เช่น 777) ... แต่มันค่อนข้างเสี่ยงหากมีบางสิ่งที่เป็นอันตรายต่อเซิร์ฟเวอร์อยู่แล้ว
    • ใช้ACLsเพื่อให้ผู้ใช้ของคุณเพื่อการเขียนโดยไม่ต้องรบกวนกรอบสิทธิ์มาตรฐาน
  2. เปลี่ยนเวิร์กโฟลว์ของคุณที่จะเขียนลงไปในระบบการควบคุมเวอร์ชัน (เช่นคอมไพล์) ในฐานะผู้ใช้ของคุณและจากนั้นมีสคริปต์ทำงานตามที่ผู้ใช้อื่น ๆ ตรวจสอบออก สิ่งนี้มีประโยชน์อื่น ๆ

  3. เรียก ST3 เป็นผู้ใช้ที่สามารถเขียนมี:

    sudo -u www-data subl /var/www/Rest_Of_Path_Here
    

    มันค่อนข้างน่าเกลียดกว่าแค่การแก้ไขไฟล์


คุณพูดถูก ฉันมีสิทธิ์เพียงโฟลเดอร์/ var / wwwแต่ไม่ได้อยู่ในโฟลเดอร์ย่อยทั้งหมดที่อยู่ในwww-dataนั้น ฉันคิดว่าทางออกที่ดีที่สุดที่นี่จะเป็นการเพิ่มผู้ใช้ของฉันในwww-dataกลุ่ม
Songe

เพียงเพื่อให้ทุกคนรู้ การเพิ่มผู้ใช้ของฉันไปยังwww-dataกลุ่มแก้ไขปัญหา ฉันเพิ่งจะรีบูตระบบหลังจากนี้ ขอบคุณ @Oli
SONGE

4

ฉันมีปัญหาเดียวกันและสามารถแก้ไขได้โดยการให้สิทธิ์แก่ผู้ใช้ในโฟลเดอร์เฉพาะซึ่งฉันต้องแก้ไขใน Sublime text 3 ฉันใช้คำสั่งต่อไปนี้:

sudo chmod 775 -R projectname/   
sudo chown username -R projectname/

ฉันคิดว่ามันจะเป็นประโยชน์กับคนอื่น ๆ ในอนาคต


ขอบคุณมาก
:)

0

เพิ่มผู้ใช้ของคุณในกลุ่มผู้ดูแลระบบโดยหนึ่งในด้านล่างตามเวอร์ชันของ Ubuntu ที่คุณใช้ ลองทั้งคู่:

sudo usermod -a -G admin username

หรือ

sudo usermod -a -G sudo username

หากคุณอยู่ในกลุ่มผู้ดูแลระบบแล้วให้ลองchownที่โฟลเดอร์


ทำไม? มีข้อเสนอแนะทุกข้อว่าพวกเขาอยู่ในกลุ่ม sudo / admin แล้ว (ใช้ได้เมื่อใส่รหัสผ่าน)
Oli

อาจchownจะทำ @Oli
Sharad Gautam

0

ฉันมีปัญหาเดียวกันพยายามที่จะแก้ไขไฟล์เซิร์ฟเวอร์ apache ของฉันด้วยข้อความประเสริฐและฉันไม่ต้องการที่จะทำลายการอนุญาตของเว็บเซิร์ฟเวอร์ของฉัน การเปลี่ยนไฟล์ g + w และทำให้ผู้ใช้ของคุณอยู่ในกลุ่ม www-data ไม่ใช่แนวคิดที่ปลอดภัยมาก

สิ่งที่ฉันอยากจะแนะนำคือการใช้ปลั๊กอิน SFTP สำหรับข้อความประเสริฐ:

  • ทำซ้ำไฟล์ของเว็บเซิร์ฟเวอร์ของคุณไปยังโฟลเดอร์ที่เป็นของผู้ใช้ของคุณเอง
  • กำหนดค่าปลั๊กอิน SFTP ด้วย:
"upload_on_save": true,
"host": "localhost",
"user": "www-data",

อย่าให้รหัสผ่านในการกำหนดค่าสำหรับช่องโหว่ความปลอดภัยที่สำคัญเช่นกัน

Sublime ข้อความจะขอให้คุณใส่รหัสผ่านครั้งเดียวแล้วจะจำได้สำหรับเซสชั่น เมื่อบันทึกไฟล์แต่ละไฟล์มันจะเปิดเซสชัน sftp ไปยัง localhost และจะเขียนไฟล์ไปยังดิสก์ด้วยผู้ใช้ที่เหมาะสม


0

ดำเนินการต่อไปนี้ในเทอร์มินัล Linux / Unix ของคุณ:

sudo chmod -R 777 project-name
sudo chown user-name project-name

พยายาม-R 775และไม่ได้ผลดังนั้นจึง-R 777มีเคล็ดลับแม้ว่าฉันจะให้สิทธิ์การเขียนกับทุกโครงการ

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