FiveM ACE Permissions คืออะไร? วิธีใช้ add_ace, add_principal และจัดสิทธิ์ Admin
FiveM ACE Permissions คือระบบ Access Control ของ FXServer สำหรับกำหนดว่า Principal ใดมีสิทธิ์หรือไม่มีสิทธิ์เข้าถึง Object อะไร เช่น กลุ่ม Admin สามารถใช้ Command บางคำสั่งได้ แต่กลุ่มผู้เล่นทั่วไปใช้ไม่ได้ โดย FXServer มีคำสั่งหลักอย่าง add_ace, add_principal, remove_ace, remove_principal และ test_ace สำหรับจัดการระบบนี้โดยตรง.
สำหรับ Server Owner การเข้าใจ ACE สำคัญมาก เพราะช่วยจัด Permission เป็นระบบ แทนการแจกสิทธิ์ระดับสูงให้ทุก Admin และยังสามารถกำหนด Permission ให้ Resource, Group หรือ Identifier ตามโครงสร้างของ Server ได้.
Meta SEO
Meta Title: FiveM ACE Permissions คืออะไร? วิธีใช้ add_ace และ add_principal
Meta Description: สอน FiveM ACE Permissions แบบละเอียด วิธีใช้ add_ace, add_principal, remove_ace, test_ace ตั้ง Admin Group และแก้ Permission ไม่ทำงานใน server.cfg
Focus Keyword: FiveM ACE Permissions
Related Keywords: FiveM add_ace, FiveM add_principal, FiveM permissions, FiveM admin permissions, FiveM server.cfg, FiveM ACL
สารบัญ
① FiveM ACE Permissions คืออะไร
ACE ย่อมาจาก Access Control Entry
ใน FXServer คำสั่ง add_ace ใช้เพิ่ม Access Control Entry เข้าไปใน Access Control List ของ Server โดยกำหนดองค์ประกอบหลัก 3 ส่วน:
principal
object
allow หรือ deny
รูปแบบอย่างเป็นทางการคือ:
add_ace [principal] [object] [allow|deny]
Cfx.re ระบุว่า Command นี้ใช้เพิ่มสิทธิ์ Access Control ให้ Server โดยตรง.
② Principal คืออะไร
Principal คือ Subject ที่เราต้องการกำหนดสิทธิ์ให้
ตัวอย่างเช่น:
group.admin
หรือ Identifier ของผู้เล่น
แนวคิดคือ:
ใคร → ได้สิทธิ์อะไร
ตัวอย่าง:
add_ace group.admin command.potato allow
หมายถึง group.admin ได้รับอนุญาตให้ใช้ Object command.potato.
③ Principal สามารถเป็น Group ได้ไหม
ได้
ตัวอย่างที่ Official Documentation ใช้คือ:
group.admin
ดังนั้นแทนที่จะเพิ่ม Permission ให้ Admin ทีละคำสั่งซ้ำๆ สามารถสร้าง Group แล้วให้ผู้ดูแลแต่ละคน inherit จาก Group นั้นได้.
④ Principal สามารถเป็น Identifier ได้ไหม
ได้
Official Example แสดง Principal รูปแบบ Identifier เช่น:
identifier.steam:...
และสามารถกำหนด ACE หรือทำให้ Identifier inherit จาก Group ได้.
อย่างไรก็ตาม Server Owner ควรใช้ Identifier ประเภทที่ระบบหรือ Resource ของตนรองรับจริง ไม่ควร Copy Identifier ตัวอย่างจาก Documentation มาใช้ตรงๆ
⑤ Object คืออะไร
Object คือ สิ่งที่ Principal ขอสิทธิ์เข้าถึง
ตัวอย่าง:
command.potato
หรือ:
command.adminstuff
Cfx.re ใช้รูปแบบ command.* ในตัวอย่าง Access Control Commands เพื่อแสดง Permission ของ Commands.
ดังนั้น ACE จะตอบคำถามว่า:
Principal นี้มีสิทธิ์ใช้ Object นี้หรือไม่
⑥ add_ace ใช้ทำอะไร
ใช้เพิ่ม Permission
รูปแบบ:
add_ace principal object allow
หรือ:
add_ace principal object deny
ตัวอย่างจากแนวทางของ Cfx.re:
add_ace group.admin command.example allow
คำสั่งนี้ทำให้ Admin Group ได้รับ Permission สำหรับ Object ที่ระบุ.
⑦ ตัวอย่าง add_ace แบบง่าย
สมมติ Server มี Command ชื่อ:
/adminmenu
หาก Resource ออกแบบ ACE Object เป็น:
command.adminmenu
Configuration อาจมีลักษณะ:
add_ace group.admin command.adminmenu allow
แต่ชื่อ ACE Object จริงต้องตรวจ Documentation ของ Resource ที่ใช้งาน ไม่ควรเดาชื่อ Object เอง
⑧ allow หมายถึงอะไร
allow หมายถึง Principal ได้รับอนุญาตสำหรับ ACE Object นั้น
ตัวอย่าง:
add_ace group.admin command.adminstuff allow
แปลว่า group.admin ถูก Allow สำหรับ command.adminstuff.
⑨ deny หมายถึงอะไร
deny ใช้สร้าง ACE ที่ปฏิเสธ Permission สำหรับ Principal/Object ที่กำหนด
Official Example แสดงรูปแบบ:
add_ace identifier.steam:... command.apple deny
ซึ่งเป็นตัวอย่างการเพิ่ม ACE แบบ Deny.
⑩ add_principal คืออะไร
add_principal ใช้ทำให้ Principal หนึ่ง inherit จาก Principal อีกตัว
รูปแบบ:
add_principal [child_principal] [parent_principal]
Cfx.re อธิบายว่าคำสั่งนี้ทำให้ Child Principal สืบทอดจาก Parent Principal.
⑪ ตัวอย่าง add_principal
สมมติ Player Identifier คือ:
identifier.example:PLAYER_ID
ต้องการให้เป็น Admin:
add_principal identifier.example:PLAYER_ID group.admin
แนวคิดคือ:
Player Identifier
↓
group.admin
↓
Admin Permissions
Official Documentation ใช้โครงสร้างลักษณะเดียวกันในการทำให้ Identifier inherit จาก group.admin.
⑫ ทำไม add_principal ถึงมีประโยชน์
เพราะไม่จำเป็นต้องกำหนด ACE ทุกคำสั่งให้ผู้เล่นแต่ละคน
แทนที่จะทำ:
Admin A → Permission 1
Admin A → Permission 2
Admin A → Permission 3
Admin B → Permission 1
Admin B → Permission 2
Admin B → Permission 3
สามารถจัดเป็น:
group.admin → Permissions
Admin A → group.admin
Admin B → group.admin
ทำให้ server.cfg อ่านง่ายและบริหารง่ายกว่า
⑬ ตัวอย่างโครงสร้าง Admin Group
ตัวอย่างเชิงโครงสร้าง:
add_ace group.admin command.example allow
add_ace group.admin command.example2 allow
add_principal identifier.example:ADMIN1 group.admin
add_principal identifier.example:ADMIN2 group.admin
ACE Object และ Identifier จริงต้องใช้ค่าที่ Resource/Server ของคุณรองรับ
แต่หลักการคือ:
กำหนด Permission ให้ Group → เพิ่ม Admin เข้า Group
⑭ Moderator กับ Admin แยก Group ได้ไหม
ได้ในเชิงโครงสร้างของ Principal
ตัวอย่าง:
group.moderator
group.admin
จากนั้นกำหนด ACE แตกต่างกัน
ตัวอย่างแนวคิด:
add_ace group.moderator command.basic allow
add_ace group.admin command.basic allow
add_ace group.admin command.advanced allow
วิธีนี้ช่วยลดการแจก Permission เกินหน้าที่
⑮ Admin สามารถ inherit จาก Group อื่นได้ไหม
add_principal ถูกออกแบบให้ Child Principal inherit จาก Parent Principal.
จึงสามารถออกแบบ Hierarchy ได้ตามความต้องการของ Server แต่ไม่ควรสร้างหลายชั้นจนซับซ้อนเกินจำเป็น เพราะเวลา Permission ผิดจะ Debug ยากขึ้น
⑯ builtin.everyone คืออะไร
Cfx.re Console Documentation แสดงตัวอย่าง ACE Output ที่มี Principal:
builtin.everyone
ร่วมกับ ACE Object ซึ่งสื่อถึง Principal พื้นฐานสำหรับทุกคนในระบบ ACE.
จึงต้องระวังอย่างมากหากกำหนด Permission กว้างให้ Principal ระดับ Everyone
⑰ อย่า Allow Admin Commands ให้ทุกคน
ตัวอย่างที่ไม่ควรทำโดยไม่เข้าใจผล:
add_ace builtin.everyone command.adminstuff allow
เพราะจะทำให้ Permission ถูกกำหนดในขอบเขตกว้างมาก
Admin Command ควรจำกัดอยู่ใน Group ที่เหมาะสมแทน
⑱ Allow กับ Deny ต้องระวังอะไร
เมื่อ Server มี ACE หลายชุด เช่น:
Group
Identifier
Resource
Inherited Principal
การตามว่า Permission มาจากไหนอาจซับซ้อนขึ้น
ดังนั้นควรใช้เครื่องมืออย่าง test_ace, list_aces และ list_principals เพื่อดูโครงสร้างจริง แทนการเพิ่ม ACE ใหม่ซ้ำๆ เมื่อ Permission ไม่ทำงาน.
⑲ remove_ace คืออะไร
ใช้ลบ ACE ที่กำหนดออกจาก Access Control List
รูปแบบ:
remove_ace [principal] [object] [allow|deny]
Official Documentation ยกตัวอย่างการลบ ACE แบบ Deny ออกจาก Identifier หนึ่งโดยตรง.
⑳ ตัวอย่าง remove_ace
ถ้ามี:
add_ace group.admin command.example allow
และต้องการลบ ACE ที่ตรงกัน สามารถใช้โครงสร้าง:
remove_ace group.admin command.example allow
โดยต้องระบุ Principal, Object และสถานะ ACE ให้ตรงกับรายการที่จะลบ.
㉑ remove_principal คืออะไร
ใช้ลบความสัมพันธ์การ inherit ระหว่าง Child และ Parent Principal
รูปแบบ:
remove_principal child parent
Cfx.re ระบุว่าคำสั่งนี้ใช้ลบ Principal Inheritance Entry ที่กำหนด.
㉒ ตัวอย่าง remove_principal
ถ้าเคยเพิ่ม:
add_principal identifier.example:ADMIN1 group.admin
เมื่อต้องการนำออกจาก Group ใช้แนวคิด:
remove_principal identifier.example:ADMIN1 group.admin
ซึ่งตรงกับพฤติกรรมของ remove_principal ใน FXServer.
㉓ test_ace คือคำสั่งที่ควรรู้มากที่สุด
เมื่อ Permission ไม่ทำงาน อย่าเพิ่ม add_ace ซ้ำทันที
ใช้:
test_ace principal object
ก่อน
Cfx.re ระบุว่า test_ace ใช้ตรวจว่า Principal ถูก Allow หรือ Deny สำหรับ Object ที่ระบุ.
㉔ ตัวอย่าง test_ace
test_ace group.admin command.adminstuff
FXServer จะใช้คำสั่งนี้ตรวจ Permission ของ group.admin ต่อ command.adminstuff.
นี่ควรเป็นหนึ่งในคำสั่งแรกที่ใช้เมื่อ Admin บอกว่า:
“ผมอยู่กลุ่ม Admin แล้ว แต่ใช้คำสั่งไม่ได้”
㉕ list_aces คืออะไร
Cfx.re Console Documentation ระบุว่า:
list_aces
ใช้แสดงรายการ ACE ทั้งหมด พร้อมความสัมพันธ์ระหว่าง Principal, Object และสถานะ Allow/Deny.
ตัวอย่าง Output ใน Documentation มีรูปแบบ:
principal -> object = ALLOW
หรือ
principal -> object = DENY
㉖ list_aces มีประโยชน์อย่างไร
ช่วยตอบคำถามว่า:
ACE ถูกโหลดจริงหรือไม่
Group มี Permission หรือไม่
มี Deny ที่ไม่ตั้งใจหรือไม่
Config ถูก Execute หรือไม่
แทนการเปิด server.cfg แล้วเดาว่า FXServer โหลดบรรทัดนั้นสำเร็จแล้ว
㉗ list_principals คืออะไร
Cfx.re ระบุว่า:
list_principals
ใช้แสดง Principal Inheritance ทั้งหมดในระบบ.
ตัวอย่าง Output:
child <- parent
จึงช่วยตรวจว่า Identifier ถูกเพิ่มเข้า group.admin จริงหรือไม่
㉘ Permission ไม่ทำงานให้ใช้ 3 คำสั่งนี้
จำไว้:
list_aces
list_principals
test_ace
สามคำสั่งนี้ช่วยตรวจ:
ACE มีอยู่ไหม
Principal inherit ถูกไหม
ผลสุดท้าย Allow หรือ Deny
ซึ่งมีประสิทธิภาพกว่าการเพิ่ม Permission ใหม่ซ้ำไปเรื่อยๆ.
㉙ ACE ใส่ใน server.cfg ได้ไหม
ได้
Access Control Commands เป็น Server Commands และ Cfx.re ระบุว่า Server Commands สามารถ Execute จาก Server Configuration File ได้.
Official Vanilla server.cfg เองก็มีตัวอย่าง ACE Configuration สำหรับ Admin Group.
㉚ ตัวอย่าง ACE ใน server.cfg
Official Vanilla Configuration มีแนวคิดประมาณ:
add_ace group.admin command allow
add_ace group.admin command.quit deny
พร้อมการเพิ่ม Principal เข้า Admin Group.
ตัวอย่างนี้แสดงให้เห็นว่า Group สามารถได้รับสิทธิ์กว้าง แล้ว Deny Command บางตัวแยกออกได้
㉛ command กับ command.name ต่างกันอย่างไร
ACE Object สามารถมีโครงสร้างแบบกว้างหรือเฉพาะเจาะจงตามระบบ Permission ที่ Resource/Command ใช้
Official Vanilla Example ใช้:
command
และ:
command.quit
ใน Configuration เดียวกัน.
ดังนั้น Server Owner ควรให้สิทธิ์เฉพาะเท่าที่จำเป็น ไม่ควร Allow Object กว้างโดยไม่มีเหตุผล
㉜ ทำไม Official Config Allow command แต่ Deny quit
ตัวอย่าง Vanilla Config ของ Cfx.re ใช้แนวคิด:
group.admin → command → allow
group.admin → command.quit → deny
เพื่อแสดงว่ากลุ่มสามารถมี Permission กว้าง แต่จำกัด Command สำคัญบางตัวออกได้.
นี่เป็นตัวอย่างที่ดีของการจัด Permission แบบมีขอบเขต
㉝ Resource สามารถมี ACE Permission ได้ไหม
ได้
Server Commands สามารถถูกเรียกจาก Resource ได้หาก Resource ได้รับ ACL Permission ที่เหมาะสม และ Cfx.re ระบุไว้ว่า Resource ที่ได้รับอนุญาตสามารถใช้ EXECUTE_COMMAND ได้.
ดังนั้น Resource ที่ต้อง Execute Commands บางประเภทอาจต้องมี ACE สำหรับ resource.resourceName
㉞ Resource Principal มีรูปแบบอย่างไร
Resource Principal มักมีโครงสร้าง:
resource.resourceName
แนวทาง ACL ของ Cfx.re แสดงตัวอย่างเช่น:
add_ace resource.myframework command.add_principal allow
เพื่อให้ Resource สามารถใช้ Command ที่ต้องการได้.
อย่างไรก็ตามหน้า Cookbook ดังกล่าวเป็น Archive ดังนั้นควรตรวจ Documentation ปัจจุบันของ Resource ก่อนนำตัวอย่างเฉพาะไปใช้.
㉟ อย่าให้ Resource Full Command Permission แบบสุ่ม
หาก Resource ต้องใช้เพียงหนึ่ง Command ควรให้เฉพาะ Permission ที่จำเป็น
เช่นแนวคิด:
resource.example
↓
command.required
แทนการ Allow Commands ทุกประเภท
วิธีนี้ช่วยลดผลกระทบหาก Resource มี Bug หรือทำงานผิดจากที่คาด
㊱ ACE กับ ConVar Permission เหมือนกันไหม
ไม่ใช่สิ่งเดียวกัน
ConVar บางกรณีใช้ ACE สำหรับอนุญาต Resource Execute Command เช่น command.set ขณะที่ Cfx.re ยังมีระบบ Sandbox Permission สำหรับจำกัด Resource Access เพิ่มเติมในบางบริบท.
ดังนั้นต้องดู Documentation ของ Feature ที่ต้องการควบคุม
㊲ ACE Permissions กับ txAdmin Permissions เหมือนกันไหม
ไม่เหมือนกันทั้งหมด
txAdmin มี Permission System ของตัวเองสำหรับควบคุมสิทธิ์ Admin ใน Web Panel/In-game Admin เช่น:
console.viewconsole.writecontrol.servercommands.resourcesserver.cfg.editorplayers.kickplayers.ban
และข้อมูล Permission ถูกบริหารผ่าน Admin Manager.
ACE เป็นระบบ Access Control ระดับ FXServer ส่วน txAdmin Permissions เป็นระบบสิทธิ์สำหรับฟังก์ชัน txAdmin
㊳ txAdmin all_permissions คืออะไร
Cfx.re ระบุว่า:
all_permissions
คือ Root Permission ของ txAdmin ซึ่งอนุญาตให้ทำ Action ได้ทั้งหมด.
ไม่ควรแจก Permission นี้ให้ Staff ทุกคน
㊴ console.view กับ console.write ต่างกันอย่างไร
ใน txAdmin:
console.view
ใช้ดู Console
ส่วน:
console.write
อนุญาตให้เขียน Console Commands.
การแยกสองสิทธิ์นี้ช่วยให้ Staff ดู Error ได้โดยไม่ต้องมีสิทธิ์ Execute Commands
㊵ commands.resources คืออะไร
txAdmin Permission:
commands.resources
ใช้อนุญาต Start/Stop Resources.
เหมาะกับ Developer ที่ต้องจัดการ Resources แต่ไม่จำเป็นต้องมี Root Admin Permission
㊶ server.cfg.editor คืออะไร
txAdmin มี Permission:
server.cfg.editor
สำหรับ Read/Write server.cfg.
ควรให้เฉพาะ Technical Admin ที่เข้าใจ Configuration เพราะการแก้ server.cfg ผิดสามารถทำให้ Server Boot หรือ Resources มีปัญหาได้
㊷ วิธีแบ่ง Staff Permission ที่เหมาะสม
ตัวอย่างเชิงโครงสร้าง:
Moderator
จัดการ Player เฉพาะที่จำเป็น
ไม่มี Console Write
ไม่มี Server Restart
Admin
Player Management เพิ่ม
ดู Console
จำกัด Command Access
Developer
Console
Resources
Config ตามหน้าที่
Server Owner
Permission สูงสุด
txAdmin รองรับการแบ่งสิทธิ์แต่ละ Action แยกจากกัน เช่น Console, Server Control, Resource Control และ Player Management.
㊸ FiveM ACE Permission ไม่ทำงาน แก้อย่างไร
ใช้ลำดับนี้:
ตรวจ
server.cfgตรวจ Principal
ตรวจ Object
ตรวจ
allow/denyใช้
list_acesใช้
list_principalsใช้
test_aceตรวจ Config ถูก Execute หรือไม่
ตรวจ Resource Documentation
Restart/Reload ในบริบทที่จำเป็น
Commands สำหรับ List และ Test ACE มีไว้เพื่อช่วยตรวจสถานะจริงของ Access Control.
㊹ Admin ใช้คำสั่งไม่ได้แม้มี add_ace
ตรวจว่า Admin ถูกเพิ่มเข้า Principal ที่ได้รับ ACE จริงหรือไม่
เช่นคุณมี:
add_ace group.admin command.example allow
แต่ไม่มี:
add_principal identifier.example:ADMIN group.admin
Admin คนนั้นอาจไม่ได้ inherit จาก Group ตามที่คุณตั้งใจ
ใช้:
list_principals
ช่วยตรวจความสัมพันธ์จริง.
㊺ add_principal แล้ว Admin ยังใช้ไม่ได้
ทดสอบ:
test_ace group.admin command.example
ก่อน
ถ้า Group ถูก Allow แต่ Player ยังใช้ไม่ได้ ให้ตรวจ:
Identifier ที่ใช้
Principal Inheritance
Resource Permission Check
Command/Object Name
ไม่ควรเพิ่ม add_ace ซ้ำหลายบรรทัด
㊻ Permission หายหลัง Restart Server
ถ้าคุณเพิ่ม ACE ผ่าน Console เพียงชั่วคราว แต่ไม่ได้เก็บ Configuration ใน server.cfg หรือ Config File ที่ถูก Execute ตอน Boot ค่าที่ต้องการอาจไม่ถูกสร้างใหม่หลัง Server Restart
Server Commands สามารถเก็บใน server.cfg หรือไฟล์ Config ที่เรียกด้วย exec เพื่อให้ถูก Execute ตอน Server Start.
㊼ ควรแยก permissions.cfg ไหม
เมื่อ Permission เริ่มเยอะ สามารถแยก Config เช่น:
permissions.cfg
แล้วใน server.cfg ใช้:
exec permissions.cfg
Cfx.re ระบุว่า exec [filename] ใช้ Execute Commands จาก Config File ที่ระบุ.
วิธีนี้ช่วยให้ server.cfg อ่านง่ายขึ้น
㊽ ตัวอย่าง permissions.cfg แบบเป็นระเบียบ
# Admin Group
add_ace group.admin command.example allow
# Moderator Group
add_ace group.moderator command.basic allow
# Admin Members
add_principal identifier.example:ADMIN1 group.admin
# Moderator Members
add_principal identifier.example:MOD1 group.moderator
นี่เป็นตัวอย่างโครงสร้างเพื่ออธิบายระบบเท่านั้น ชื่อ Identifier และ ACE Objects ต้องใช้ค่าจริงจาก Server/Resource ของคุณ
㊾ อย่า Copy Identifier ของคนอื่น
Identifier ใน Tutorial เป็นเพียงตัวอย่าง
ต้องใช้ Identifier ของ Admin คนจริงที่ Server ตรวจพบ
หาก Copy ตัวอย่างเช่น:
identifier.steam:110000112345678
จาก Documentation มาใช้ตรงๆ Permission จะไปผูกกับ Identifier ตัวอย่างนั้น ไม่ใช่ Admin ของคุณ.
㊿ Checklist FiveM ACE Permissions
ก่อนเปิด Production Server ตรวจว่า:
มี Group แยกตามหน้าที่
add_aceใช้ Object ถูกadd_principalใช้ Identifier ถูกไม่ Allow Permission กว้างเกินจำเป็น
ใช้ Deny เฉพาะเมื่อเข้าใจผล
list_acesแสดง Permission ถูกlist_principalsแสดง Group ถูกtest_aceให้ผลตามต้องการConfig ถูก Execute ตอน Boot
Resource Permissions ถูกจำกัด
txAdmin Permissions แยกจาก ACE
ไม่แจก
all_permissionsให้ทุกคนBackup Config ก่อนแก้ชุดใหญ่
ทดสอบ Staff Account จริงหลังแก้
ตารางคำสั่ง FiveM ACE สำคัญ
| คำสั่ง | หน้าที่ |
|---|---|
add_ace | เพิ่ม Access Control Entry |
add_principal | ทำให้ Principal inherit จากอีก Principal |
remove_ace | ลบ ACE |
remove_principal | ลบ Principal Inheritance |
test_ace | ทดสอบ Allow/Deny |
list_aces | ดู ACE ทั้งหมด |
list_principals | ดู Principal Inheritance |
exec | โหลด Permission Config เพิ่ม |
หน้าที่ของ Commands เหล่านี้อ้างอิงจาก Server และ Console Documentation ของ Cfx.re.
ตัวอย่าง FiveM Admin Permission แบบง่าย
ตัวอย่างเชิงโครงสร้าง:
# ให้กลุ่ม admin ใช้ command ที่ต้องการ
add_ace group.admin command.example allow
# เพิ่ม Admin เข้า group.admin
add_principal identifier.example:ADMIN_IDENTIFIER group.admin
จากนั้นตรวจด้วย:
list_principals
test_ace group.admin command.example
ใช้ ACE Object และ Identifier จริงของ Server ไม่ใช่ค่าตัวอย่าง
ตัวอย่าง Admin กับ Moderator
# Moderator
add_ace group.moderator command.basic allow
# Admin
add_ace group.admin command.basic allow
add_ace group.admin command.advanced allow
# Members
add_principal identifier.example:MODERATOR group.moderator
add_principal identifier.example:ADMIN group.admin
หลักคือ ให้สิทธิ์ตามหน้าที่ ไม่ใช่ให้ทุก Group มี Permission เท่ากัน
FiveM add_ace ไม่ทำงานแก้อย่างไร
เริ่มจาก:
list_aces
ตรวจว่า ACE ถูกโหลดจริงหรือไม่
จากนั้น:
test_ace group.admin command.example
เพื่อดูผล Allow/Deny และใช้:
list_principals
ตรวจว่า Admin ถูกเพิ่มเข้า Group จริงหรือไม่.
หาก ACE ไม่อยู่ในรายการ ให้กลับไปตรวจ server.cfg หรือ Config File ที่ Execute
FiveM add_principal ไม่ทำงานแก้อย่างไร
ตรวจรูปแบบ:
add_principal child parent
Cfx.re ระบุว่า Child Principal จะ inherit จาก Parent Principal.
จากนั้นใช้:
list_principals
เพื่อดูว่า Relation ถูกสร้างจริงหรือไม่.
FiveM Admin ใช้ Command ไม่ได้
อย่าเริ่มจากให้ Permission ทุกอย่าง
ตรวจตามลำดับ:
Command/Object → Group ACE → Principal → Identifier → test_ace
หาก Resource มี Permission System ของตัวเองเพิ่มเติม ต้องตรวจ Documentation ของ Resource นั้นด้วย เพราะ ACE ของ FXServer ไม่ได้แปลว่า Resource ทุกตัวจะใช้ Permission Model แบบเดียวกัน
FiveM Permission ซ้ำหลายบรรทัดควรทำอย่างไร
จัด Permission ใหม่เป็น Group และ Config แยก
ตัวอย่าง:
permissions.cfg
แล้วเรียกจาก:
exec permissions.cfg
เพราะ FXServer รองรับการ Execute Config Files เพิ่มเติมผ่าน exec.
ทำให้แก้และตรวจ Permission ง่ายกว่าใส่ทุกอย่างปะปนใน server.cfg
FAQ FiveM ACE Permissions
FiveM ACE คืออะไร
ACE คือ Access Control Entry สำหรับกำหนดว่า Principal หนึ่งถูก Allow หรือ Deny ต่อ Object หนึ่งในระบบ Access Control ของ FXServer.
add_ace กับ add_principal ต่างกันอย่างไร
add_ace เพิ่ม Permission ให้ Principal ส่วน add_principal ทำให้ Principal หนึ่ง inherit จากอีก Principal หนึ่ง.
จะรู้ได้อย่างไรว่า Admin อยู่ group.admin แล้ว
ใช้:
list_principals
เพื่อดู Principal Inheritance ในระบบ.
จะรู้ได้อย่างไรว่า Permission Allow หรือ Deny
ใช้:
test_ace principal object
Cfx.re ระบุว่าคำสั่งนี้ใช้ทดสอบ Access Result ของ Principal ต่อ Object.
list_aces ใช้ทำอะไร
ใช้แสดง ACE ทั้งหมดและความสัมพันธ์ระหว่าง Principal, Object และสถานะ Permission.
ACE กับ txAdmin Permission เหมือนกันไหม
ไม่เหมือนกันทั้งหมด txAdmin มี Permission System ของตัวเอง เช่น console.view, console.write, control.server และ commands.resources.
Permission หายหลัง Restart เกิดจากอะไร
หากเพิ่ม ACE ผ่าน Console แต่ไม่ได้เก็บคำสั่งไว้ใน Config ที่ Execute ตอน Server Boot Permission นั้นอาจไม่ได้ถูกสร้างกลับมาใน Session ใหม่ จึงควรจัด Permission Configuration ไว้ใน server.cfg หรือไฟล์ Config ที่เรียกผ่าน exec.
สรุปสำคัญ
FiveM ACE Permissions เป็นระบบ Access Control ของ FXServer โดยคำสั่งที่สำคัญที่สุดคือ:
add_ace
add_principal
remove_ace
remove_principal
test_ace
list_aces
list_principals
add_ace ใช้กำหนดสิทธิ์ Principal → Object → Allow/Deny ขณะที่ add_principal ใช้ทำให้ Child Principal inherit จาก Parent Principal เช่นเพิ่ม Identifier ของ Admin เข้า group.admin.
เมื่อ Permission ไม่ทำงาน อย่าเพิ่ม ACE ซ้ำทันที แต่ให้ใช้ list_aces, list_principals และ test_ace เพื่อดูสถานะที่ FXServer โหลดจริงก่อน เพราะ Cfx.re มีคำสั่งเหล่านี้ไว้สำหรับตรวจ Access Control โดยตรง.
ส่วน txAdmin มี Permission System แยก เช่น console.view, console.write, control.server, commands.resources และ server.cfg.editor จึงควรจัด Staff Permission ตามหน้าที่และหลีกเลี่ยงการแจก all_permissions ให้ทุกคน.
สำหรับผู้อ่าน comsiam ให้จำสูตร “add_ace = ให้สิทธิ์, add_principal = เข้ากลุ่ม, test_ace = ตรวจสิทธิ์” และ comsiam แนะนำให้สร้าง Group ตามหน้าที่ของ Staff แล้วให้เฉพาะ Permission ที่ต้องใช้จริง จะดูแลง่ายกว่าการแจกสิทธิ์ระดับสูงให้ Admin ทุกคน
Comments
Post a Comment