สคริปต์นี้กำลังทำอะไร
#!/bin/bash
xhost +local:
xhost +si:localuser:root
รายการเริ่มต้นของxhost
คืออะไร
สคริปต์นี้กำลังทำอะไร
#!/bin/bash
xhost +local:
xhost +si:localuser:root
รายการเริ่มต้นของxhost
คืออะไร
คำตอบ:
xhost +SI:localuser:root
อนุญาตให้root
ผู้ใช้เข้าถึงเซิร์ฟเวอร์ X ที่กำลังทำงานอยู่ เซิร์ฟเวอร์ X ปัจจุบันถูกระบุโดยDISPLAY
ตัวแปรสภาพแวดล้อม xhost +local:
ทำสิ่งเดียวกันสำหรับผู้ใช้ทุกคนดังนั้นroot
บรรทัดจึงไม่ค่อยมีประโยชน์
manpageมีคำอธิบายที่ดีพอสมควร:
[+]name The given name (the plus sign is optional) is added to the list
allowed to connect to the X server. The name can be a host
name or a complete name (See NAMES for more details).
...
NAMES
A complete name has the syntax ``family:name'' where the families are
as follows:
...
local contains only one name, the empty string
si Server Interpreted
...
The local family specifies all the local connections at once. However,
the server interpreted address "si:localuser:username" can be used to
specify a single local user. (See the Xsecurity(7) manual page for more
details.)
และXsecurity
manpageพูดว่า:
SERVER INTERPRETED ACCESS TYPES
The sample implementation includes several Server Interpreted
mechanisms:
IPv6 IPv6 literal addresses
hostname Network host name
localuser Local connection user id
localgroup Local connection group id
ด้วยบริบทเล็กน้อย: มีสองวิธีที่ใช้กันโดยทั่วไปเพื่ออนุญาตให้เข้าถึงเซิร์ฟเวอร์ X หนึ่งคือผ่านXauthority
ไฟล์ซึ่งใช้ร่วมกันโดยลูกค้าและไม่ต้องการการกำหนดค่าฝั่งเซิร์ฟเวอร์เพิ่มเติม อีกอันคือผ่านxhost
รายการซึ่งทำการตั้งค่าบนเซิร์ฟเวอร์เมื่อรันไทม์ (ดังนั้นนี่ไม่ใช่การเปลี่ยนแปลงถาวร)
ดังนั้นlocaluser
เป็นคำหลักที่จะเก็บรักษาไว้ตามที่เป็นอยู่ ( root
คือชื่อผู้ใช้ที่นี่) นี่เป็นเหมือนการเพิ่มไปยังกลุ่มโดยที่กลุ่มอยู่ในความเข้าใจของเซิร์ฟเวอร์ในการให้สิทธิ์ อย่างไรก็ตามไม่มีกลุ่มระบบหรือผู้ใช้ที่ได้รับผลกระทบ เฉพาะการกำหนดค่ารันไทม์ของเซิร์ฟเวอร์ X เท่านั้นที่มีการเปลี่ยนแปลง
พฤติกรรมเริ่มต้นของxhost
เมื่อทำงานโดยไม่มีข้อโต้แย้งคือการพิมพ์รายการตาม manpage พูดว่า:
nothing If no command line arguments are given, a message indicating
whether or not access control is currently enabled is printed,
followed by the list of those allowed to connect.
ตัวอย่างเช่น:
$ xhost
access control enabled, only authorized clients can connect
SI:localuser:muru
( muru
คือชื่อผู้ใช้ของฉัน)