วิธีการเรียกใช้ Visual Studio Code เป็น root


38

ฉันเพิ่งติดตั้งตัวแก้ไขรหัส Visual Studio ฉันดาวน์โหลดแพ็คเกจ 32 บิต .deb ติดตั้งและเรียกใช้ตามปกติ แต่เมื่อฉันพยายามบันทึกไฟล์ในโฟลเดอร์โครงการของฉันมันจะคืนค่าสิทธิ์ที่ถูกปฏิเสธ ดังนั้นฉันเรียกใช้รหัสอีกครั้งด้วย

sudo code .

และมันจะกลับมา

It is recommended to start vscode as a normal user.
To run as root, you must specify an alternate user data directory with the --user-data-dir argument.

ฉันค้นหาวิธีระบุไดเรกทอรีข้อมูลผู้ใช้สำรองด้วย--user-data-dirอาร์กิวเมนต์ แต่ฉันไม่ค่อยพบมากนัก

ดังนั้นฉันจะรัน Visual Studio Code ในฐานะรูทใน Ubuntu 16.04 ได้อย่างไร

แก้ไข:ฉันต้องการโซลูชันที่หลีกเลี่ยงการเปลี่ยนแปลงสิทธิ์ของไดเรกทอรี

edit2:ไดเรกทอรีโครงการ: /var/www/project(ฉันใช้ Apache กับ vhost)


6
ทำไมไม่เพียงแค่ตั้งค่าการอนุญาตในโฟลเดอร์โปรเจ็กต์ของคุณเพื่ออนุญาตให้บันทึก?
TheWanderer

2
ฉันไม่เข้าใจว่าทำไมคุณต้องการรันโค้ดในฐานะรูท สิ่งนี้อาจเป็นอันตราย คุณควรหาสาเหตุที่แท้จริงว่าทำไมคุณจึงไม่สามารถบันทึกไฟล์ได้
edwinksl

1
โฟลเดอร์โครงการของคุณอยู่ที่ไหน
Nuwan Thisara

1
@Nuwan /var/www/project(ฉันใช้ Apache กับ vhost)
wdarking

คำตอบ:


52

มันอันตรายมากที่จะเรียกใช้ VScode ในฐานะที่เป็นรูท

คุณต้องระบุไดเรกทอรีข้อมูลผู้ใช้ที่จะใช้เมื่อเรียกใช้ vs code:

sudo code --user-data-dir="~/.vscode-root"

จากหน้าต่างที่คุณสามารถเปิดโฟลเดอร์โครงการของคุณ

อีกครั้ง: ไม่แนะนำ มีความสุข.

ปรับปรุงพฤษภาคม 2018

สำหรับทุกคนที่ถามว่าทำไมจึงไม่แนะนำสิ่งนี้คุณไม่เข้าใจอย่างชัดเจนว่าทำไมsudoถึงมีอยู่จริง จากคำถาม AskUbuntu นี้ :

มันเอาชนะรูปแบบความปลอดภัยที่มีมานานหลายปี แอพพลิเคชั่นนั้นมีไว้เพื่อให้ทำงานด้วยการรักษาความปลอดภัยที่ไม่ใช่ของผู้ดูแลระบบ (หรือในฐานะบุคคลทั่วไป) ดังนั้นคุณต้องยกระดับสิทธิ์ของตนเพื่อแก้ไขระบบพื้นฐาน ตัวอย่างเช่นคุณไม่ต้องการให้เกิดความผิดพลาดครั้งล่าสุดของ Rhythmbox เพื่อล้างไดเรกทอรี / usr ทั้งหมดของคุณเนื่องจากข้อบกพร่อง หรือช่องโหว่ที่เพิ่งโพสต์ใน ProFTPD เพื่อให้ผู้โจมตีได้รับ ROOT shell

เป็นเพียงการปฏิบัติที่ดีในระบบปฏิบัติการใด ๆ ที่จะเรียกใช้แอปพลิเคชันของคุณในระดับผู้ใช้และปล่อยให้ผู้ดูแลระบบเป็นผู้ใช้รูทและตามความต้องการเท่านั้น

ฉันไม่ได้บอกว่าคุณไม่ควรใช้ VSCode ในฐานะที่เป็นรูท

สิ่งที่ดีที่สุดที่ต้องทำคือทำสำเนาของไฟล์ที่ถูก จำกัด แก้ไขและคัดลอกกลับเมื่อคุณแน่ใจว่าเสร็จแล้ว

นอกจากนี้สำหรับการแก้ไขไฟล์ที่ผู้ใช้ของคุณไม่มีสิทธิ์ฉันจะแนะนำคำตอบของ Talha Junaid ซึ่งจะขอสิทธิ์ทุกครั้งที่คุณต้องการบันทึกไฟล์ พรอมต์สำหรับการเข้าถึงรูทไม่มีอยู่เมื่อฉันเขียนคำตอบนี้


4
เหตุใดจึงไม่แนะนำให้เรียกใช้ VScode ในฐานะรูท ตัวอย่างเช่นจะเปลี่ยนบางสิ่งในโฮสต์ได้อย่างไร ฉันจะต้องได้รับอนุญาตรูทไม่ได้?
zwitterion

1
ขอบคุณมันใช้งานได้แล้วตอนนี้ฉันมีหน้าต่าง VSCode หนึ่งอันทำงานเป็นรูทและฉันต้องการเริ่มต้นหน้าต่าง vscode อื่นเป็นรูทเป็นไปได้ไหม?
RLaaa

1
ใช่เป็นไปได้เปิดเทอร์มินัลอื่น
ลูคัส DAW

3
@MarcoDufal ไม่อย่างแน่นอน นี่เป็นความคิดที่น่ากลัว โดยเฉพาะอย่างยิ่งเมื่อทำงานกับไฟล์ OS คุณไม่ควรตั้งค่าการอนุญาตเป็น 777 ซึ่งหมายความว่าทุกอย่างในระบบไม่ว่าจะเป็นผู้ใด / สิ่งใดที่เริ่มต้นขึ้นหรือสิ่งที่ได้รับอนุญาตให้ทำมีสิทธิ์แก้ไขชุดไฟล์และโฟลเดอร์นั้น อย่างมากที่สุดคุณควร "เป็นเจ้าของ" ไฟล์เพื่อให้คุณได้รับอนุญาตให้แก้ไขโดยมีบางสิ่งที่ใกล้เคียงกับการอนุญาต 755 รายการ
zawata

3
@zawata คุณพูดถูก! กรุณาแก้ตัวเป็นสามเณร ขอบคุณสำหรับหัวขึ้น!
Marco Dufal

13

ในกรณีที่คุณต้องการเปลี่ยนแปลงไฟล์เดียวฉันต้องการวิธีต่อไปนี้

  • เรียกใช้ vs-code ในฐานะผู้ใช้ทั่วไป
  • ทำการเปลี่ยนแปลงไฟล์
  • File -> Save หรือกด Ctrl + S
  • ข้อผิดพลาด vs-code จะปรากฏขึ้นที่มุมล่างขวา

    ไม่สามารถบันทึก 'ด้วง': สิทธิ์ไม่เพียงพอ เลือก 'ลองใหม่เป็นผู้ดูแลระบบ' เพื่อลองอีกครั้งในฐานะผู้ดูแลระบบ

    ป้อนคำอธิบายรูปภาพที่นี่

  • Retry as Adminคลิกที่ มันจะขอข้อมูลประจำตัวของผู้ดูแลระบบ

    ป้อนคำอธิบายรูปภาพที่นี่

  • ป้อนข้อมูลประจำตัวและสนุกกับการบันทึกไฟล์ด้วย vs-code


1
มีวิธีการทำเช่นนี้โดยไม่ต้องทำเช่นนี้ทุกครั้งสำหรับไฟล์ทุกไฟล์หรือไม่? ฉันมีไฟล์หลายร้อยไฟล์ที่ฉันต้องทำการเปลี่ยนแปลงและ VS Code จะถามรหัสผ่านของฉันต่อไป ฉันพร้อมที่จะโยนแล็ปท็อปของฉันกับผนัง
Joshua Kemmerer

จากนั้นคุณสามารถทำตามคำตอบที่ได้รับการยอมรับด้านบน askubuntu.com/a/820205/367228
Talha Junaid

4

คุณต้องให้สิทธิ์กับโฟลเดอร์ html ของคุณ

ลองใน terminal ของคุณ

sudo chmod -R 777 /var/www/html/

โปรดตรวจสอบการอนุญาตของไฟล์และโฟลเดอร์โครงการที่มีอยู่


9
นี่คือคำแนะนำที่โง่ที่สุดที่เคยมีมา ... สิทธิ์ที่ จำกัด ได้ถูกนำมาใช้เพื่อหยุดกระบวนการที่เป็นอันตรายเพื่อแก้ไขหรือทำลายระบบของคุณ ทำงานกับสำเนาของไฟล์ที่ถูก จำกัด แล้วคัดลอกไฟล์เหล่านั้นเมื่อเสร็จแล้วหรือดีกว่าทำสคริปต์การติดตั้งให้ทำ คุณสามารถเพิ่มผู้ใช้ของคุณไปยังกลุ่มที่เป็นเจ้าของไดเรกทอรีและไฟล์
Soren

cd ไปที่โฟลเดอร์โครงการของคุณและเรียกใช้ sudo chmod -R 777 <project_dir_name> และเสร็จแล้ว
lilhamad

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