Score:0

ฉันจะรักษาสิทธิ์ในการรีบูตสคริปต์เพื่อเขียนไปยัง `/sys/class/backlight/acpi_video0/brightness` ได้อย่างไร

ธง ru

ฉันเขียนสคริปต์ที่ช่วยให้ฉันสลับความสว่างของหน้าจอแล็ปท็อปได้ (ฉันเรียกใช้ if จากปุ่มลัดที่ผูกไว้โดย xbindkeys),
แต่เกี่ยวข้องกับการเขียนถึง /sys/class/backlight/acpi_video0/brightness.

สำหรับตอนนี้ ฉันเพิ่งทำให้มันสามารถเขียนไปยังไฟล์นั้นได้ด้วยการทำ
sudo chown $USER: /sys/class/backlight/acpi_video0/brightness
แต่นั่นจะรีเซ็ตหลังจากทุกครั้งที่ฉันรีบูตแล็ปท็อป
ดังนั้นฉันต้องรันใหม่ก่อนที่จะสามารถใช้ปุ่มลัดได้

วิธีที่เหมาะสมและต่อเนื่องในการทำเช่นนี้คืออะไร



EDIT_3 (กล่าวคือ เพิ่ม หลังจาก การแก้ไข 2 รายการด้านล่าง) (ในทางเทคนิค "คำตอบ"):

ฉันเบื่อกับการพยายามทำให้ udev ทำงาน
และ (หลังจากสับสนมาก (จำนวนที่ไม่ทราบสาเหตุเกิดจากฉันเพียงแค่พิมพ์และพลาด "t" ใน "ความสว่าง"))
ในที่สุดก็ใช้งานได้:

(เพื่อความชัดเจนของฉัน เสียงสะท้อน $USER เป็น o1.)

ดังนั้น


  • (1)

ฉันสร้างไฟล์:
/home/o1/.icanhasbrightness.sh
ประกอบด้วย:

#!/usr/bin/bash  
chown o1: /sys/class/backlight/acpi_video0/brightness  

  • (2)

ฉันทำ:
> sudo chown root:root /home/o1/.icanhasbrightness.sh
และ
> sudo chmod 0711 /home/o1/.icanhasbrightness.sh
(
ดังนั้น
> stat /home/o1/.icanhasbrightness.sh|หัว -n 4|หาง -n 1
#=>
การเข้าถึง: (0711/-rwx--x--x) Uid: ( 0/ root) Gid: ( 0/ root)
)


  • (3)

ฉันทำ:
> ซูโด วิซูโด
และเพิ่มบรรทัด:
o1 ALL=(ทั้งหมด) NOPASSWD: /home/o1/.icanhasbrightness.sh


  • (4)

ฉันแก้ไขฟังก์ชัน Fishshell เพื่อตรวจสอบว่าฉันใช่ ไม่ เจ้าของไฟล์ความสว่าง และถ้าไม่ใช่ ให้เรียกใช้สคริปต์นั้น
(

ฟังก์ชันbrightness_set_current  
    #todo นี่เป็นวิธีที่ "ผิด" ในการจัดการสิ่งนี้ แต่ไม่ว่ามันจะได้ผล  
        ถ้าทดสอบ $USER != (stat -c %U /sys/class/backlight/acpi_video0/brightness)  
            sudo /home/o1/.icanhasbrightness.sh  
        จบ  
    echo $argv > /sys/class/backlight/acpi_video0/brightness  
จบ  

)


... ดังนั้นฉันเดาว่าทางเทคนิคจะตอบคำถามของฉันเอง แต่...

  • (1) ฉันรู้สึกว่านี่อาจเป็นวิธีที่ "ผิด" ในการทำ (?)
  • (2) ตอนนี้ฉันเบื่อที่จะยุ่งกับสิ่งนี้มาก จนฉันไม่อยากโพสต์ "คำตอบ" ในตอนนี้

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

ฟังก์ชันbrightness_get_current
    cat /sys/class/backlight/acpi_video0/brightness.cat
จบ

ฟังก์ชันbrightness_set_current
    #tdแก้ไข(?)
        ถ้าทดสอบ $USER != (stat -c %U /sys/class/backlight/acpi_video0/brightness)
            sudo /home/o1/.icanhasbrightness.sh
        จบ
    echo $argv > /sys/class/backlight/acpi_video0/brightness
จบ

ฟังก์ชัน Brightness_get_max --คำอธิบาย 'ความสว่างสูงสุด, mb'
    แมว /sys/class/backlight/acpi_video0/max_brightness
จบ

ฟังก์ชัน Brightness_set_max --คำอธิบาย 'ความสว่างสูงสุด, mb'
    ความสว่าง_set_ปัจจุบัน (brightness_get_max)
จบ

ฟังก์ชันbrightness_toggle
    #
        #
            set -l รายละเอียด $argv
            ตั้ง -l current_brightness (brightness_get_current)
            set -l current_ct (xsct|g --nocolor -o '\d+$')
                #ขก
                    # echo current_ct $current_ct
        #
            ตั้งค่า -l ความสว่าง
                ถ้าทดสอบ $current_brightness -eq 0
                    ตั้งค่าความสว่าง 'นาที'
                อย่างอื่นถ้าทดสอบ $current_brightness -eq (brightness_get_max)
                    ตั้งค่าความสว่าง 'สูงสุด'
                อื่น
                    ตั้งค่าความสว่าง 'กลาง'
                จบ
            ตั้งค่า -l สีแดง
                ถ้าทดสอบ $current_ct -eq 1,000
                    ตั้งค่าสีแดง 'สีแดง'
                อย่างอื่นถ้าทดสอบ $current_ct -lt 1,000
                    ตั้งค่าสีแดง 'red_super'
                อย่างอื่นถ้าทดสอบ $current_ct -lt 700
                    ตั้งค่าสีแดง 'red_impossible'
                อย่างอื่นถ้าทดสอบ $current_ct -lt 6500
                    ตั้งค่าสีแดง 'กลาง'
                อย่างอื่นถ้าทดสอบ $current_ct -eq 6500
                    ตั้งค่าสีแดง 'สีขาว'
                อื่น
                    ตั้งค่าสีแดง 'สีน้ำเงิน'
                จบ
        #
            ฟังก์ชันbrightness_set_to_max_white
                ความสว่าง_set_max
                D0 xsct 0 #คือ 6500
            จบ
            ฟังก์ชัน Brightness_set_to_min_red
                ความสว่าง_set_ปัจจุบัน 0
                D0 xsct 1000
            จบ
            ฟังก์ชันbrightness_set_to_min_white
                ความสว่าง_set_ปัจจุบัน 0
                D0 xsct 0 #คือ 6500
            จบ
        #
            #ข
                ถ้าทดสอบ "$verbose"
                    echo \t'สถานะปัจจุบัน:'
                    echo \t\t'brightness:' \t$brightness
                    echo \t\t'ความแดง:' \t$ความแดง
                จบ
            #
                ถ้าทดสอบ "$brightness" = 'max' -a "$redness" = 'white'
                    #ข
                        ทดสอบ "$ verbose"
                        และเสียงสะท้อน "1 - การตั้งค่าเป็น min_red ( จาก max_white )"
                    ความสว่าง_set_to_min_red
                อย่างอื่นถ้าทดสอบ "$brightness" = 'min' -a "$redness" = 'red'
                    #ข
                        ทดสอบ "$ verbose"
                        และเสียงสะท้อน "2 - การตั้งค่าเป็น min_white ( จาก min_red )"
                    ความสว่าง_set_to_min_white
                อย่างอื่นถ้าทดสอบ "$brightness" = 'min' -a "$redness" = 'white'
                    #ข
                        ทดสอบ "$ verbose"
                        และเสียงสะท้อน "3 - การตั้งค่าเป็น max_white ( จาก min_white )"
                    ความสว่าง_set_to_max_white
                อื่น
                    #ข
                        ทดสอบ "$ verbose"
                        และเสียงสะท้อน "4 - การตั้งค่าเป็น max_white ( จากที่อื่น ๆ )"
                    ความสว่าง_set_to_max_white
                จบ
จบ

และผูกไว้กับกุญแจ
ฉันเพิ่งใส่เข้าไป ~/.xbindkeysrc เนื้อหานี้:

"ปลา -c 'brightness_toggle'"
  Mod4 + น้อยกว่า

(Mod4 + น้อยกว่า แค่เป็นอะไร xbindkeys -mk บอกฉันว่ามันเรียกว่าคีย์คอมโบเมื่อฉันกดมัน)

... ใช่แล้ว ยกเว้นการติดตั้ง xsct คุณต้องทำเช่นกัน
> git โคลน 'https://github.com/faf0/sct.git'
(ในขณะที่สิ่งที่คุณต้องการ วท ผบ.จะลงเอยด้วย)
แล้ว
> sudo apt ติดตั้ง libxrandr-dev (การพึ่งพาที่คุณต้องรวบรวม)
แล้ว (ในขณะที่ วท dir สร้างโดย โคลนคอมไพล์-ing)
> sudo ทำการติดตั้ง

(
นอกจากนี้ ฉันตั้งค่าปุ่มลัดเพื่อพลิกขอบของหน้าจอที่ "ขึ้น"
(ซึ่งก็อาศัยว่า ความสว่าง_set_current ฟังก์ชั่นเพราะอย่างน้อยสำหรับฉันใช้ xrandr -o ยุ่งกับความสว่างด้วยเหตุผลบางประการ)
ด้วยเปลือกปลา:

ฟังก์ชัน screen_orientation -- คำอธิบาย 'การวางแนวหน้าจอ/จอภาพ - อาร์กิวเมนต์ที่เป็นไปได้คือปกติ/ซ้าย/ขวา/คว่ำ'
    ตั้งค่า current_brightness (แมว /sys/class/backlight/acpi_video-0/max_brightness)
    xrandr -o $argv
    และbrightness_set_current $current_brightness

    #เดาว่าฉันไม่ต้องการสิ่งนี้จริงๆเหรอ?
        #ถ้าthnpadd
        #ไนโตรเจน --restore
        # # และ D0 ไนโตรเจน --restore
        # จบ
จบ

และ ~/.xbindkeysrc:

"fish -c 'screen_orientation ไปทางซ้าย'"  
  Mod4 + ซ้าย  
"fish -c 'screen_orientation ปกติ'"  
  Mod4 + อัพ  
"fish -c 'screen_orientation ขวา'"  
  Mod4 + ขวา  
"fish -c 'screen_orientation คว่ำ'"  
  Mod4 + ลง  

)
)))




EDIT_1 ("อาจจะ udev?"):

ฉันพบเมื่อ อาร์ควิกิ:

ตามค่าเริ่มต้นเท่านั้น ราก สามารถเปลี่ยนความสว่างด้วยวิธีนี้ เพื่ออนุญาตให้ผู้ใช้ใน [ตัวอย่าง] วิดีโอ กลุ่มเพื่อเปลี่ยนความสว่าง สามารถใช้กฎ udev เช่นต่อไปนี้:
[เขียนถึงไฟล์นี้:]
/etc/udev/rules.d/backlight.rules
[เนื้อหานี้:]
ACTION=="เพิ่ม", SUBSYSTEM="แบ็คไลท์", KERNEL="acpi_video0", GROUP="วิดีโอ", MODE="0664"

ฉันทำอย่างนั้นแล้ว:
sudo groupadd วิดีโอ
และ:
sudo usermod -aG วิดีโอ o1
(
สมมติว่าฉันจำสิ่งที่ฉันทำตามลำดับได้ถูกต้อง
แต่ไม่ว่า กลุ่ม $USER ทำ ยืนยันว่าฉัน เป็น ใน วิดีโอ กลุ่ม.
)

แต่หลังจากรีสตาร์ทยังคงพยายามเขียนแบบนี้ยังคงได้รับ:
> เสียงสะท้อน 5 > /sys/class/backlight/acpi_video0/brightness
#=>

คำเตือน: เกิดข้อผิดพลาดขณะเปลี่ยนเส้นทางไฟล์ '/sys/class/backlight/acpi_video0/brightness'  
เปิด: ปฏิเสธการอนุญาต  

และนี่:
> stat /sys/class/backlight/acpi_video0/brightness
#=>

  ไฟล์: /sys/class/backlight/acpi_video0/brightness  
  ขนาด: 4096 บล็อก: 0 IO บล็อก: 4096 ไฟล์ปกติ  
อุปกรณ์: 16h/22d ไอโหนด: 22741 ลิงก์: 1  
การเข้าถึง: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)  
การเข้าถึง: 2021-09-24 10:51:53.894540644 -0700  
แก้ไข: 2021-09-24 10:51:53.888124116 -0700  
เปลี่ยนแปลง: 2021-09-24 10:51:53.888124116 -0700  
 การเกิด: -  

ซึ่งหมายความว่ามันยังเป็นเพียง ราก ที่มีสิทธิ์เขียนไฟล์ใช่ไหม

กฎ udev นั้น เคยเป็น ควรจะ... เปลี่ยนความเป็นเจ้าของไฟล์เป็น วิดีโอ กลุ่มใช่ไหม?
(
สมมติว่า "ไฟล์นี้เป็นของกลุ่มนี้" ได้รับแนวคิดและ / หรือคำศัพท์ที่ถูกต้อง ... ?
อย่างไรก็ตามมันควรจะให้ วิดีโอ สิทธิ์การเขียนแบบกลุ่มสำหรับไฟล์ใช่ไหม
)

เหตุใดจึงไม่ทำงาน
-- ฉันหมายถึง เนื่องจากฉันไม่สามารถกระโดดขึ้นไปบนซุ้มประตูและลองดูได้
ฉันทำได้เท่านั้น สมมติ ว่าสิ่งที่ฉันทำ คงจะ ทำงานบนซุ้มประตู (?),
Ubuntu แตกต่างกันอย่างไร


EDIT_2 ("udev ควร งาน??"):

จากที่ผมพอจะเข้าใจจาก บทช่วยสอน udev นี้,
มัน ควร งาน?
(
หรืออย่างใดก็ได ทำ พูด:
ไฟล์กฎการอ่าน: /etc/udev/rules.d/backlight.rules
-- แต่มัน ไม่ พูดอะไรเกี่ยวกับ "กลุ่ม" หรือ "โหมด".
)

(ฉันยังพยายามเปลี่ยนไฟล์ =ถึง :='s (เพื่อ "ตรวจสอบให้แน่ใจว่าไม่ถูกลบล้างโดยกฎอื่น") ในกรณีนี้)

> ข้อมูล udevadm -a /sys/class/backlight/acpi_video0/
#=>

    ข้อมูล Udevadm เริ่มต้นด้วยอุปกรณ์ที่ระบุโดย devpath จากนั้น  
    เดินขึ้นห่วงโซ่ของอุปกรณ์หลัก มันพิมพ์สำหรับทุกอุปกรณ์  
    พบแอตทริบิวต์ที่เป็นไปได้ทั้งหมดในรูปแบบคีย์กฎ udev  
    กฎการจับคู่สามารถประกอบขึ้นจากคุณสมบัติของอุปกรณ์  
    และแอตทริบิวต์จากอุปกรณ์หลักเครื่องเดียว

      กำลังดูอุปกรณ์ '/devices/pci0000:00/0000:00:01.0/backlight/acpi_video0':  
        เคอร์เนล = "acpi_video0"  
        ระบบย่อย = "แบ็คไลท์"  
        คนขับ==""  
        ATTR{max_brightness}=="15"  
        ATTR{actual_brightness}=="15"  
        ATTR{bl_power}=="0"  
        ATTR{type}=="เฟิร์มแวร์"  
        ATTR{ความสว่าง}=="15"  
        ATTR{scale}=="ไม่ทราบ"

      ดูที่อุปกรณ์หลัก '/devices/pci0000:00/0000:00:01.0':  
        เมล็ด = "0000:00:01.0"  
        ระบบย่อย = "pci"  
        ไดรเวอร์ = "เรดอน"  
        ATTRS{local_cpulist}=="0-1"  
        ATTRS{msi_bus}=="1"  
        ATTRS{max_link_width}=="255"  
        ATTRS{consistent_dma_mask_bits}=="40"  
        ATTRS{driver_override}=="(null)"  
        ATTRS{power_dpm_state}=="สมดุล"  
        ATTRS{revision}=="0x00"  
        ATTRS{device}=="0x9648"  
        ATTRS{local_cpus}=="3"  
        ATTRS{subsystem_device}=="0x21ea"  
        ATTRS{d3cold_allowed}=="1"  
        ATTRS{power_method}=="dpm"  
        ATTRS{numa_node}=="-1"  
        ATTRS{broken_parity_status}=="0"  
        ATTRS{power_state}=="D0"  
        ATTRS{boot_vga}=="1"  
        ATTRS{irq}=="31"  
        ATTRS{current_link_width}=="0"  
        ATTRS{current_link_speed}=="ไม่ทราบ"  
        ATTRS{คลาส}=="0x030000"  
        ATTRS{power_profile}=="ค่าเริ่มต้น"  
        ATTRS{dma_mask_bits}=="40"  
        ATTRS{ผู้ขาย}=="0x1002"  
        ATTRS{subsystem_vendor}=="0x17aa"  
        ATTRS{enable}=="1"  
        ATTRS{power_dpm_force_performance_level}=="อัตโนมัติ"  
        ATTRS{ari_enabled}=="0"  
        ATTRS{max_link_speed}=="ไม่ทราบ"

      ดูที่อุปกรณ์หลัก '/devices/pci0000:00':  
        เมล็ด = "pci0000:00"  
        ระบบย่อย==""  
        ไดรเวอร์ ==""  

และ:
> การทดสอบ udevadm --action="add" '/devices/pci0000:00/0000:00:01.0/backlight/acpi_video0'
#=>

    โหลดดัชนีโมดูล  
    ไฟล์คอนฟิกูเรชันแยกวิเคราะห์ /usr/lib/systemd/network/99-default.link  
    แยกวิเคราะห์ไฟล์การกำหนดค่า /usr/lib/systemd/network/73-usb-net-by-mac.link  
    สร้างบริบทการกำหนดค่าลิงก์  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/39-usbmuxd.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/40-usb-media-players.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/40-usb_modeswitch.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/40-vm-hotadd.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/50-apport.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/50-firmware.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/50-udev-default.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/55-dm.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/55-ippusbxd.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/56-hpmud.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/56-lvm.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-autosuspend-chromiumos.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-block.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-cdrom_id.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-crda.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-drm.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-evdev.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-fido-id.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-input-id.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-inputattach.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-libgphoto2-6.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-libsane.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-pcmcia.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-persistent-alsa.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-persistent-input.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-persistent-storage-dm.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-persistent-storage-tape.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-persistent-storage.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-persistent-v4l.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-sensor.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-serial.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-tpm-udev.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/61-autosuspend-manual.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/61-kde-bluetooth-rfkill.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/61-persistent-storage-android.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/64-btrfs.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/64-xorg-xkb.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/65-libwacom.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/66-snapd-autoimport.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/69-cd-sensors.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/69-libmtp.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/69-lvm-metad.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/69-wacom.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/70-joystick.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/70-mouse.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/70-pcspkr-beep.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/70-power-switch.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/70-printers.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/70-spice-vdagentd.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/70-touchpad.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/70-u2f.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/70-uaccess.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/71-power-switch-proliant.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/71-seat.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/71-u-d-c-gpu-detection.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/73-seat-late.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/73-special-net-names.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/75-net-description.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/75-probe_mtd.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-broadmobi-port-types.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-cinterion-port-types.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-dell-port-types.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-dlink-port-types.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-ericsson-mbm.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-fibocom-port-types.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-foxconn-port-types.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-gosuncn-port-types.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-haier-port-types.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-huawei-net-port-types.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-longcheer-port-types.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-mtk-port-types.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-nokia-port-types.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-pcmcia-device-blacklist.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-qdl-device-blacklist.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-quectel-port-types.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-sierra.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-simtech-port-types.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-telit-port-types.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-tplink-port-types.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-ublox-port-types.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-usb-device-blacklist.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-usb-serial-adapters-greylist.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-x22x-port-types.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-zte-port-types.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/78-graphics-card.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/78-sound-card.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/80-debian-compat.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/80-drivers.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/80-iio-sensor-proxy.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/80-libinput-device-groups.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/80-mm-candidate.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/80-net-setup-link.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/80-udisks2.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/81-net-dhcp.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/84-nm-drivers.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/85-hdparm.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/85-hplj10xx.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/85-nm-unmanaged.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/85-regulatory.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/85-tlp-rdw.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/85-tlp.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/90-alsa-restore.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/90-bolt.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/90-console-setup.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/90-fwupd-devices.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/90-libinput-fuzz-override.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/90-nm-thunderbolt.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/90-pulseaudio.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/95-cd-devices.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/95-dm-notify.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/95-upower-csr.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/95-upower-hid.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/95-upower-hidpp.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/95-upower-wup.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/96-e2scrub.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/97-hid2hci.rules  
    ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/99-systemd.rules  
    ไฟล์กฎการอ่าน: /etc/udev/rules.d/backlight.rules  
    ยกเลิกการโหลดดัชนีโมดูล  
    ยกเลิกการโหลดบริบทการกำหนดค่าลิงก์  
    โปรแกรมนี้มีไว้สำหรับแก้จุดบกพร่องเท่านั้น ไม่ได้รันโปรแกรมใดๆ  
    ระบุโดยปุ่ม RUN อาจแสดงผลไม่ถูกต้องเนื่องจาก  
    ค่าบางอย่างอาจแตกต่างออกไป หรือไม่มีให้ใช้งานในการจำลองสถานการณ์

    DEVPATH=/devices/pci0000:00/0000:00:01.0/backlight/acpi_video0  
    ACTION=เพิ่ม  
    SUBSYSTEM=แบ็คไลท์  
    TAGS=:ที่นั่ง:ระบบd:  
    ID_PATH=pci-0000:00:01.0  
    ID_PATH_TAG=pci-0000_00_01_0  
    ID_FOR_SEAT=แบ็คไลท์-pci-0000_00_01_0  
    SYSTEMD_WANTS=systemd-backlight@backlight:acpi_video0.service  
    USEC_INITIALIZED=2680045  
Score:-1
ธง it

คำตอบกระป๋องนี้ อาจ ช่วย.

ปัญหาการเข้าถึงอุปกรณ์หลายอย่างสามารถแก้ไขได้ด้วยการเปลี่ยนแปลงสมาชิกกลุ่ม

คุณสามารถค้นหาชื่ออุปกรณ์ได้โดยการดู sudo Journalctl --ติดตาม ขณะที่คุณเชื่อมต่ออุปกรณ์ของคุณ หรือ ls -1 /dev >dev.before, เชื่อมต่ออุปกรณ์ , รอ 10 วินาที , ls -1 /dev >dev.after;diff dev.{ก่อน,หลัง}.

โดยเฉพาะถ้า ls -l แสดงว่าสิทธิ์กลุ่ม (ที่สอง "rwx" แฝดสาม) คือ "แถว" (เช่น."-rw-rw----") จากนั้นเพิ่มตัวเองในกลุ่มที่เป็นเจ้าของอุปกรณ์จะให้สิทธิ์ แถว เข้าไป.

นี่คือวิธี:

อุปกรณ์="/dev/อะไรก็ตาม"
sudo adduser $USER $(stat -c "%G" $อุปกรณ์)

ซึ่งจะช่วยให้คุณเป็นสมาชิกในกลุ่มที่สามารถ แถว อุปกรณ์, แต่มีอีกหนึ่งขั้นตอน

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

หากต้องการสร้างกระบวนการเดียวในกลุ่มใหม่ (สำหรับการทดสอบ ก่อนออกจากระบบ/เข้าสู่ระบบ):

newgrp $(stat -c "%G" $อุปกรณ์)  

หรือพิมพ์ชื่อกลุ่ม ดู ผู้ชายคนใหม่.

ru flag
"ในขณะที่คุณเชื่อมต่ออุปกรณ์ของคุณ"? มันคือหน้าจอของแล็ปท็อป ไม่เคย "ต่อ" เองเลย...???
ru flag
เช่นเดียวกับกลุ่มที่เป็นเจ้าของ (`stat -c %G /sys/class/backlight/acpi_video0/brightness`) เป็นเพียง `root` ดังนั้นคำตอบนั้นจึงสรุปได้ว่า "เพิ่ม `$USER` ในกลุ่ม `root `" ใช่ไหม? ซึ่งเป็นเนื้อหา ... ไม่มีแม้แต่คำตอบ?

โพสต์คำตอบ

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