Score:1

ฉันจะรันคำสั่ง sudo กับผู้ใช้ระบบได้อย่างไร

ธง br

ฉันต้องการเรียกใช้เซิร์ฟเวอร์ minecraft ใน Docker ดังนั้นฉันจึงเริ่มติดตาม คู่มือนี้. ในคู่มือจะแนะนำให้สร้าง ผู้ใช้ระบบ ด้วยโฮมไดเร็กตอรี่ (/opt/มายคราฟ) แต่ไม่มีรหัสผ่าน (คุณไม่ควร "เข้าสู่ระบบ" ด้วยผู้ใช้รายนี้) เพื่อเรียกใช้เซิร์ฟเวอร์ มันใช้คำสั่งต่อไปนี้: sudo useradd -r -m -U -d /opt/minecraft -s /bin/bash minecraft.

ฉันเปลี่ยนไปใช้ minecraft "ผู้ใช้ระบบ" ที่สร้างขึ้นใหม่ --> sudo su - minecraft.

ปัญหา
เลยอยากใช้ นักเทียบท่า หรือ นักเทียบท่าเขียนและนี่คือที่มาของปัญหา:

  • เมื่อฉันพยายามเรียกใช้ docker-compose โดยใช้ ซูโดมันขอรหัสผ่านจากฉัน (ซึ่งแน่นอนว่าผู้ใช้รายนี้ไม่มี)
  • เมื่อฉันลองมัน ปราศจาก ซูโด, ฉันเข้าใจ ไม่สามารถสร้างไดเรกทอรีข้อมูลผู้ใช้: /opt/minecraft/snap/docker/1458: ปฏิเสธการอนุญาต.

ฉันไม่แน่ใจจริงๆว่าต้องทำอะไรที่นี่ ฉันไม่สามารถเรียกใช้นักเทียบท่า ฉันเดาว่าฉันไม่ต้องการลบรหัสผ่านออกจากผู้ใช้ (อาจเป็นความเสี่ยงด้านความปลอดภัย) และฉันไม่ต้องการเพิ่มรหัสผ่านสำหรับผู้ใช้ (จากนั้นคุณสามารถเข้าสู่ระบบผ่าน ssh หรืออะไรก็ได้) ฉันเข้าใกล้สิ่งนี้ผิดทางหรือไม่?

cn flag
ต้องมีสิทธิ์ sudoer เพื่อใช้คำสั่งนักเทียบท่า `sudo docker` หรือเปิดรูทเชลล์แล้วรันคำสั่ง
br flag
นี่เป็นปัญหาของฉัน ดูสัญลักษณ์แสดงหัวข้อย่อย 1 - "เมื่อฉันพยายามเรียกใช้ docker-compose **โดยใช้ sudo** ระบบจะขอรหัสผ่านจากฉัน (ซึ่งเห็นได้ชัดว่าผู้ใช้รายนี้ไม่มี)" ผู้ใช้รายนี้ต้องสามารถเรียกใช้คำสั่งได้ มิฉะนั้นประเด็นทั้งหมดของผู้ใช้นี้จะเป็นที่สงสัย
cn flag
ฉันลืมพูดถึงว่ามันเป็นไปได้ที่จะเพิ่มกลุ่มนักเทียบท่าและทำเช่นนั้น ฉันไม่ได้ใช้ Docker มาระยะหนึ่งแล้ว
Score:1
ธง jo

ดูที่การเพิ่มกลุ่มนักเทียบท่าที่มีสิทธิพิเศษ https://docs.docker.com/engine/install/linux-postinstall/

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

br flag
ความคิดที่ดี. ฉันทำสิ่งนี้ ตอนนี้ผู้ใช้ ``minecraft`` ของฉันอยู่ในกลุ่ม ``docker`` อย่างไรก็ตาม ฉันได้รับข้อผิดพลาดเดียวกันทุกประการ (```ไม่สามารถสร้างไดเร็กทอรีข้อมูลผู้ใช้: /opt/minecraft/snap/docker/1458: การอนุญาตถูกปฏิเสธ```) ฉันยังลบไดเร็กทอรีนักเทียบท่าและออกจากระบบ/เข้าสู่ระบบแล้วลองอีกครั้ง ข้อผิดพลาดเดียวกัน มันสร้าง ``snap/docker/1458 + common +current`` และส่งคืนข้อความด้านบน ฉันพลาดอะไรไปหรือเปล่า? ฉันอาจเพิ่มเติมว่าทุกอย่างภายใต้ผู้ใช้ ``minecraft`` ของฉัน ``/`` เป็นของผู้ใช้ ``minecraft``
br flag
อาจเป็นเพราะฉันใช้ ``snap`` หรือเปล่า
br flag
เป็นเพราะฉันใช้ ``snap``! เห็นได้ชัดว่า [``snap`` ไม่อนุญาตให้เรียกใช้สิ่งใดที่ไม่ได้อยู่ในไดเร็กทอรี ``home``](https://askubuntu.com/questions/930437/permission-denied-error-when-running-apps-installed -as-snap-packages-ubuntu-17) ฉันถอนการติดตั้งเวอร์ชัน ``snap`` ``docker`` และติดตั้งจาก ``apt`` แทน และตอนนี้ก็ใช้งานได้แล้ว (นอกเหนือจากคำตอบของ @madacoda โดยใช้กลุ่ม ``docker``)
Score:0
ธง br

นี่เป็นเพราะฉันใช้ ตะครุบ.

เห็นได้ชัดว่า ตะครุบ ไม่อนุญาตให้เรียกใช้สิ่งที่ไม่อยู่ภายใต้ บ้าน ไดเรกทอรี. ฉันถอนการติดตั้ง ตะครุบ นักเทียบท่า รุ่นและติดตั้งจาก ฉลาด แทนและตอนนี้ก็ใช้งานได้ (นอกเหนือจากคำตอบของ @ madacoda โดยใช้ นักเทียบท่า กลุ่ม).

madacoda avatar
jo flag
แน่นอนว่าจะเป็นการดีที่จะทำเครื่องหมายคำตอบของฉันหากสามารถแก้ไขปัญหาของคุณได้บางส่วน
br flag
ในกรณีนี้ คำตอบของคุณไม่สามารถแก้ปัญหาของฉันได้ (snap กำลังบล็อกการใช้ไดเร็กทอรีที่ไม่ใช่โฮม) อันที่จริง มันไม่ได้แก้ปัญหาส่วนหนึ่งของฉันด้วยซ้ำ แต่เป็นปัญหาแยกต่างหาก (เรียกใช้คำสั่งนักเทียบท่าโดยไม่ต้องใช้ sudo/root) ดังนั้นจึงไม่มีเหตุผลที่จะทำเครื่องหมายคำตอบของคุณว่าแก้ไขแล้ว ด้วยวิธีนี้ บุคคลถัดไปที่ได้รับข้อความแสดงข้อผิดพลาดนี้สามารถไปยังแนวทางแก้ไขที่ถูกต้องได้โดยตรง แทนที่จะต้องสับสนกับแนวทางแก้ไขปัญหาที่ไม่ได้แก้ปัญหาจริง ฉันได้ลงคะแนนเสียงให้กับคำตอบของคุณแล้ว เนื่องจากมันมีประโยชน์ และเพื่อให้คุณทราบ ฉันขอบคุณมากสำหรับความช่วยเหลือของคุณ และขอขอบคุณสำหรับคำตอบนี้!

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา