ใช้งานสคริปต์ในการเชื่อมต่ออุปกรณ์ USB


13

โปรดอย่าทำเครื่องหมายว่าซ้ำซ้อนเนื่องจากเป็นคำถามที่แตกต่าง!

ฉันพยายามเรียกใช้สคริปต์เมื่อใดก็ตามที่ pendrive เชื่อมต่อกับระบบของฉัน ผมทำตามนี้และนี้คำถามและเป็นที่ทำงาน แต่ก็ยังมีปัญหาบางอย่าง

นี่คือไฟล์กฎ udev ของฉัน:

ACTION=="add", ATTRS{idVendor}=="8564", ATTRS{idProduct}=="1000", RUN+="/usr/local/my_script.sh"

และนี่คือสคริปต์ของฉัน:

#!/ bin / ทุบตี

env> /tmp/env.out
cp -r / media / * device-name * / * ~ / test /

ฉันมีคำถาม 2 ข้อ:

1. เมื่อฉันเสียบสคริปต์อุปกรณ์ usb ของฉันจะถูกดำเนินการเพราะไฟล์env.outถูกสร้างขึ้นใน/ tmpแต่ข้อมูลจากอุปกรณ์ usb ไม่ได้คัดลอกไปยังไดเรกทอรีทดสอบถ้าฉันเรียกใช้สคริปต์ด้วยตนเองมันทำงานได้ดี! ทำไม??

2. จะทำให้ไฟล์กฏของฉันกว้างขึ้นได้อย่างไรเพื่อที่จะทำงานกับอุปกรณ์ USB ใด ๆ ที่เชื่อมต่อโดยไม่ทราบ ID

แนวคิดเบื้องหลังของฉันคือการคัดลอกข้อมูลทั้งหมดจากอุปกรณ์ USB ที่เชื่อมต่อไปยังคอมพิวเตอร์ของฉันโดยอัตโนมัติเมื่อมีการเชื่อมต่อ

ขอบคุณล่วงหน้า!


คุณไม่ได้พยายามทำสิ่งนี้ใช่ไหม askubuntu.com/questions/474/…
virtualxtc

@virtualxtc ขอบคุณสำหรับคำแนะนำนี้! แต่ฉันต้องการที่จะรู้ว่ามีอะไรผิดปกติกับวิธีการนี
ตัวชี้ Null

คุณช่วยกรุณาบอกฉันว่ามีอะไรผิดปกติกับสคริปต์ของฉัน? ทำไมมันไม่ทำงาน
ตัวชี้ Null

นอกจากนี้เพียงแค่หัว - ฉันได้เรียนรู้วิธีที่ยากที่คำถามเฉพาะเช่นนี้มักจะเหมาะสำหรับ superuser กว่า askubuntu
virtualxtc

หากนี่เป็นปัญหาของการอนุญาตก็จะปรากฏขึ้นเมื่อฉันพยายามเรียกใช้ด้วยตนเองใช่ไหม
ตัวชี้ Null

คำตอบ:


8

เพื่อตอบคำถามของฉันเอง:

1.Script ไม่ทำงานเนื่องจากต้องการsudoสิทธิ์ในการรัน ..

ทางออกสำหรับสิ่งนี้:

ทำให้สคริปต์นี้sudoทำงานได้!

แก้ไขไฟล์ sudoersโดยใช้

sudo visudo

หลังจากบรรทัด 25 (เช่น%sudo ALL=(ALL)) เพิ่มสิ่งนี้

username ALL=(ALL) NOPASSWD: /home/username/my_script.sh

ตอนนี้เราสามารถใช้sudoสคริปต์นี้ได้โดยไม่ต้องขอรหัสผ่าน sudo

แต่มันอาจทำให้เกิดปัญหาความปลอดภัยดังนั้นโปรดอ้างอิงลิงค์นี้

2. ตอบคำถามที่สองของฉัน:

ในการทำให้สคริปต์นี้ทำงานสำหรับอุปกรณ์ USB ใด ๆที่เชื่อมต่ออยู่ให้เปลี่ยนไฟล์กฎเป็นสิ่งนี้

ACTION=="add", ATTRS{idVendor}=="****", ATTRS{idProduct}=="****", RUN+="/usr/local/my_script.sh"

asterik (*) บอกว่าควรทำสิ่งนี้สำหรับอุปกรณ์ USB ทุกตัวที่เชื่อมต่อ!

แค่นั้นแหละ! ตรวจสอบให้แน่ใจว่าสคริปต์นั้นทำงานได้และเสียบ USB ของคุณ !!

สนุก!


0

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


โปรดอ่านความคิดเห็นก่อนที่จะตอบคำถาม
ตัวชี้ Null

ฉันอ่านความคิดเห็นแล้วฉันตอบคำถาม ฉันทำอะไรผิดหรือเปล่า? ความคิดเห็นใดที่คุณอ้างถึงโดยเฉพาะอย่างยิ่ง
Toby 1 Kenobi

ในความคิดเห็นข้อเสนอแนะเหล่านี้ได้รับแล้วและพวกเขาไม่ได้ทำงานให้ฉัน .. นั่นคือเหตุผลที่ฉันพูดว่าอ่านความคิดเห็น
ตัวชี้ Null

โอ้ใช่ขอโทษความเห็น 5 รายการสุดท้ายถูกซ่อนไว้จากฉันและฉันไม่ได้สังเกตเห็น ความผิดพลาดของฉัน!
Toby 1 Kenobi

@Nullpointer: โปรดแก้ไขคำถามของคุณและเก็บข้อมูลที่ครบถ้วนไว้ในคำถามเพื่อให้ผู้คนไม่จำเป็นต้องอ่านความคิดเห็น ... ความคิดเห็นไม่ได้เป็นส่วนหนึ่งของคำถาม ... ;-)
Fabby

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