หน้า 1 จากทั้งหมด 1

การตั้งค่าใน CentOS ให้ user=asterisk อยู่ใน group อื่นด้วย

โพสต์โพสต์แล้ว: 08 ส.ค. 2020 13:39
โดย nuiz
พอดีผมกำลังเทส Application หนึ่งซึ่ง Asterisk ต้องไป read/write ไฟล์ในไดเร็คตอรี่ /dev ครับ แต่ค่าดีฟอลท์ ower ของไฟล์คือ user=root และ grop=dialout ครับ ดังตัวอย่าง
โค้ด: เลือกทั้งหมด
[root@right ~]# ls -la /dev/ttyUSB2
crw-rw---- 1 root dialout 188, 2 Aug  8 12:03 /dev/ttyUSB2


แต่ในเครื่อง Issabel/Elastix/FreePBX ตอน Asterisk ทำงานมันใช้ user คือ asterisk ครับ จึงไม่สามารถ read/write ไฟล์ เวลาเข้า Asterisk Console จะฟ้องแบบนี้
โค้ด: เลือกทั้งหมด
[2020-08-08 12:10:34] WARNING[3668]: chan_dongle.c:225 opentty: unable to open /dev/ttyUSB2: Permission denied


วิธีแก้ไขให้ asterisk สามารถ read/write ไฟล์ /dev/ttyUSB2 (ซึ่งเป็นไฟล์ device name ของอุปกรณ์) ได้ น่าจะมีหลายวิธีอยู่ครับ แบบที่ง่ายสุดก็คือนี้เลย
โค้ด: เลือกทั้งหมด
[root@right ~]# chmod 666 /dev/ttyUSB*

หรือไม่ก็
โค้ด: เลือกทั้งหมด
[root@right ~]# chmod 777 /dev/ttyUSB*


แต่บทความนี้ผมจะไม่ได้ใช้วิธีเปลี่ยน permission ของไฟล์ครับ ผมจะเซ็ตเพิ่มว่าให้ user=asterisk อยู่ใน group=dialout ด้วย วิธีการมีดังต่อไปนี้ครับ

1. ตรวจสอบก่อนว่า user=asterisk อยู่ group ไหน
โค้ด: เลือกทั้งหมด
grep asterisk /etc/passwd

ผลลัพธ์
asterisk:x:997:994:Asterisk PBX:/var/lib/asterisk:/bin/bash

พบว่า asterisk อยู่ใน group id=994 ซึ่งเมื่อเราไปดูในไฟล์ /etc/group พบว่า group ชื่อ asterisk

2. ตรวจสอบก่อนว่า group=dialout มี user อะไรอยู่บ้าง
โค้ด: เลือกทั้งหมด
grep dialout /etc/group
dialout:x:18:

จากข้อมูลนี้และในไฟล์ /etc/passwd ทำให้เรารู้ว่าไม่มี user อยู่ใน group dialout

3. เพิ่ม user=asterisk ให้อยู่ใน group=dialout ด้วย
รันคำสั่งนี้ครับ
[code]
usermod -a -G dialout asterisk
[/code

4. ตรวจสอบว่า user=asterisk อยู่ใน group ไหนบ้าง
พบว่าอยู่ใน group asterisk ซึ่งเป็น group เดิม (เรียกว่า primary group) และ dialout แล้ว
[code]
groups asterisk
[code]
ผลลัพธ์
asterisk : asterisk dialout

วิธีการติดตั้ง Issabel บน CentOS 7
เปิดบริการ อบรม Issabel/FreePBX/Elastix ด้วยคอร์สพิเศษ ให้ติดตั้ง คอนฟิกคล่อง ใช้งานคล่อง ได้ใน 3 วัน
เทคนิคการคอนฟิก Firewall เมื่อเปลี่ยนพอร์ต Web (http/https)
เทคนิคการใช้งาน Firewall + GeoIP บน Issabel
เทคนิคการใช้งาน Issabel
เทคนิคการใช้งาน Elastix
เทคนิคการใช้งาน Asterisk
เทคนิคการใช้งาน FreePBX
ติดตั้งธีม Elastixwave บน Issabel
ตัวอย่างการใช้งาน Action URL บน Grandstream IP Phone