AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-50978

user84207's questions

Martin Hope
ealfonso
Asked: 2024-06-25 22:55:17 +0800 CST

为什么 UFW 被自动删除?

  • 6

我注意到 UFW 软件包已从服务器中删除,但不记得手动删除过它。查看 的日志/var/log/apt/history.log,我注意到了以下条目:

Start-Date: 2024-06-24  18:56:55
Commandline: apt-get install -y iptables-persistent
Requested-By: ealfonso (1000)
Install: iptables-persistent:amd64 (1.0.20), netfilter-persistent:amd64 (1.0.20, automatic)
Remove: ufw:amd64 (0.36.2-1)
End-Date: 2024-06-24  18:57:06

我确实请求iptables-persistent安装。上面的日志是否表明安装触发了 UFW 删除iptables-persistent?

从iptables-persistent软件包描述来看,似乎没有与 UFW 直接冲突,并且根据这个答案,UFW 可以兼容iptables-persistent。

apt
  • 1 个回答
  • 44 Views
Martin Hope
user84207
Asked: 2024-05-28 07:17:50 +0800 CST

帮助将 Kerberos 密钥导入 openafs

  • 6

我在将 Kerberos 密钥导出和导入 openafs 时遇到了麻烦。

我的第一个问题是,当使用addprinc和ktadd命令时kadmin.local,加密密钥类型-e选项似乎被忽略。例如,当我尝试添加 type 的键时,似乎会添加des-cbc-crc:v4type 的键:aes256-cts-hmac-sha1-96

kadmin.local:  ktadd -e des-cbc-crc:v4 -k /tmp/afs.ktab afs
Entry for principal afs with kvno 4, encryption type aes256-cts-hmac-sha1-96 added to keytab WRFILE:/tmp/afs.ktab.
Entry for principal afs with kvno 4, encryption type aes128-cts-hmac-sha1-96 added to keytab WRFILE:/tmp/afs.ktab.

同样的情况也发生在 addprinc 上,我尝试指定-e DES-CBC-CRC:md5密钥类型,但这似乎被忽略了,最终得到了一个aes128-cts-hmac-sha1-96密钥:

$ kadmin.local
Authenticating as principal root/[email protected] with password.
kadmin.local:  addprinc -policy service -randkey -e DES-CBC-CRC:md5 afs
WARNING: policy "service" does not exist
Principal "[email protected]" created.
kadmin.local:  getprinc afs
Principal: [email protected]
Expiration date: [never]
Last password change: Mon May 27 18:22:21 EDT 2024
Password expiration date: [never]
Maximum ticket life: 0 days 10:00:00
Maximum renewable life: 7 days 00:00:00
Last modified: Mon May 27 18:22:21 EDT 2024 (root/[email protected])
Last successful authentication: [never]
Last failed authentication: [never]
Failed password attempts: 0
Number of keys: 2
Key: vno 1, aes256-cts-hmac-sha1-96
Key: vno 1, aes128-cts-hmac-sha1-96
MKey: vno 1
Attributes: REQUIRES_PRE_AUTH
Policy: service [does not exist]
kadmin.local:  

此外,当我尝试使用 导入此密钥时asetkey,我收到一条不可读的错误消息:

sudo asetkey add 4 /tmp/afs.ktab afs
asetkey: unknown RPC error (-1765328203) for keytab entry with Principal [email protected], kvno 4, DES-CBC-CRC/MD5/MD4

阅读asetkey联机帮助页时,我看到强烈建议不要使用des-cbc-crc密钥类型并使用rxkad-k5扩展名:

A modern AFS cell should be using the rxkad-k5 extension, or risks terribly insecure operation (complete cell compromise for $100 in 1 day).  The
       keys used for rxkad-k5 operation are stored in the KeyFileExt.  Cells not using the rxkad-k5 extension (i.e., stock rxkad) use keys of the des-cbc-
       crc encryption type, which are stored in the KeyFile.

进一步阅读,KeyFileExt手册页说尝试添加rxkad-k5键需要指定一个krb5 encryption type number,它与字符串标识符不同:

Using asetkey(8) to add rxkad-k5 keys to the KeyFileExt also requires specifying a krb5 encryption type number.
       Since the encryption type must be specified by its number (not a symbolic or string name), care must be taken to determine the correct encryption
       type to add.

我被很多相关的问题困扰着:

  1. 为什么kadmin似乎忽略我指定的加密类型?

  2. 如何确定我的 openafs 是否正在使用该rxkad-k5扩展?我通过apt-cache search rxkad-k5和搜索了 debian 软件包,rxkad但什么也没找到。

  3. 由于aes256-cts-hmac-sha1-96看起来像一个字符串标识符,我如何确定此加密的“krb5 加密类型编号”以便通过 asetkey 导入它?

  4. 我注意到openafs-krb5是来自的一个单独的包openafs-{fileserver,dbserver,client}。有没有推荐的方法来管理 debian 上的 openafs 身份验证而无需设置 kerberos?

  5. 我发现akeyconvert声称可以帮助导入密钥from the krb5 keytab format to the KeyFileExt format。我应该使用akeyconvert它来将密钥转换afs.keytab为 openafs 吗?

kerberos
  • 2 个回答
  • 14 Views
Martin Hope
user84207
Asked: 2024-01-27 23:00:58 +0800 CST

全新安装 Debian 12 时没有声音

  • 5

我在迷你电脑上安装新的 Debian 12 时没有声音。PC 通过 HDMI 连接到电视。我尝试过使用pipewire、仅使用alsa、使用pipewire-pulse 进行测试。我还尝试测试通过 AUX 端口插入耳机。从来没有任何声音

硬件信息

█[coolby][~][0]$ inxi
CPU: dual core Intel Celeron N3350 (-MCP-) speed/min/max: 2391/800/2400 MHz
Kernel: 6.1.0-17-amd64 x86_64 Up: 1d 21h 29m Mem: 1786.0/5773.7 MiB (30.9%)
Storage: 58.23 GiB (22.5% used) Procs: 191 Shell: Bash inxi: 3.3.26
█[coolby][~][0]$ inxi -SAG
System:
  Host: coolby Kernel: 6.1.0-17-amd64 arch: x86_64 bits: 64 Desktop: N/A
    Distro: Debian GNU/Linux 12 (bookworm)
Graphics:
  Device-1: Intel HD Graphics 500 driver: i915 v: kernel
  Display: x11 server: X.Org v: 1.21.1.7 driver: X: loaded: modesetting
    unloaded: fbdev,vesa dri: iris gpu: i915 resolution: 1920x1080~60Hz
  API: OpenGL v: 4.6 Mesa 22.3.6 renderer: Mesa Intel HD Graphics 500 (APL
    2)
Audio:
  Device-1: Intel Celeron N3350/Pentium N4200/Atom E3900 Series Audio Cluster
    driver: sof-audio-pci-intel-apl
  API: ALSA v: k6.1.0-17-amd64 status: kernel-api
  Server-1: PipeWire v: 0.3.65 status: active
█[coolby][~][0]$

操作系统

Distributor ID: Debian
Description:    Debian GNU/Linux 12 (bookworm)
Release:    12
Codename:   bookworm

固件

[coolby][~][1]$ sudo journalctl -k | grep -Ei "ALSA|HDA|sof[-]|HDMI|snd[_-]|sound|hda.codec|hda.intel"
Jan 27 03:43:17 coolby kernel: snd_hda_intel 0000:00:0e.0: DSP detected with PCI class/subclass/prog-if info 0x040100
Jan 27 03:43:17 coolby kernel: snd_soc_skl 0000:00:0e.0: DSP detected with PCI class/subclass/prog-if info 0x040100
Jan 27 03:43:17 coolby kernel: sof-audio-pci-intel-apl 0000:00:0e.0: DSP detected with PCI class/subclass/prog-if info 0x040100
Jan 27 03:43:17 coolby kernel: sof-audio-pci-intel-apl 0000:00:0e.0: DSP detected with PCI class/subclass/prog-if 0x040100
Jan 27 03:43:17 coolby kernel: sof-audio-pci-intel-apl 0000:00:0e.0: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
Jan 27 03:43:17 coolby kernel: sof-audio-pci-intel-apl 0000:00:0e.0: use msi interrupt mode
Jan 27 03:43:17 coolby kernel: sof-audio-pci-intel-apl 0000:00:0e.0: NHLT_DEVICE_I2S detected, ssp_mask 0x1
Jan 27 03:43:17 coolby kernel: sof-audio-pci-intel-apl 0000:00:0e.0: Overriding topology with MCLK mask 0x2 from NHLT
Jan 27 03:43:17 coolby kernel: sof-audio-pci-intel-apl 0000:00:0e.0: hda codecs found, mask 4
Jan 27 03:43:17 coolby kernel: sof-audio-pci-intel-apl 0000:00:0e.0: firmware: direct-loading firmware intel/sof/sof-apl.ri
Jan 27 03:43:17 coolby kernel: sof-audio-pci-intel-apl 0000:00:0e.0: Firmware info: version 2:2:0-57864
Jan 27 03:43:17 coolby kernel: sof-audio-pci-intel-apl 0000:00:0e.0: Firmware: ABI 3:22:1 Kernel ABI 3:23:0
Jan 27 03:43:17 coolby kernel: sof-audio-pci-intel-apl 0000:00:0e.0: unknown sof_ext_man header type 3 size 0x30
Jan 27 03:43:17 coolby kernel: sof-audio-pci-intel-apl 0000:00:0e.0: Firmware info: version 2:2:0-57864
Jan 27 03:43:17 coolby kernel: sof-audio-pci-intel-apl 0000:00:0e.0: Firmware: ABI 3:22:1 Kernel ABI 3:23:0
Jan 27 03:43:17 coolby kernel: sof-essx8336 sof-essx8336: quirk mask 0x0
Jan 27 03:43:17 coolby kernel: sof-essx8336 sof-essx8336: quirk SSP0
Jan 27 03:43:17 coolby kernel: sof-audio-pci-intel-apl 0000:00:0e.0: firmware: direct-loading firmware intel/sof-tplg/sof-apl-es8336-ssp0.tplg
Jan 27 03:43:17 coolby kernel: sof-audio-pci-intel-apl 0000:00:0e.0: Topology: ABI 3:22:1 Kernel ABI 3:23:0
Jan 27 03:43:17 coolby kernel: sof-essx8336 sof-essx8336: ASoC: Parent card not yet available, widget card binding deferred
Jan 27 03:43:17 coolby kernel: input: sof-essx8336 Headset as /devices/pci0000:00/0000:00:0e.0/sof-essx8336/sound/card0/input21
Jan 27 03:43:17 coolby kernel: input: sof-essx8336 HDMI/DP,pcm=5 as /devices/pci0000:00/0000:00:0e.0/sof-essx8336/sound/card0/input22
Jan 27 03:43:17 coolby kernel: input: sof-essx8336 HDMI/DP,pcm=6 as /devices/pci0000:00/0000:00:0e.0/sof-essx8336/sound/card0/input23
Jan 27 03:43:17 coolby kernel: input: sof-essx8336 HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:0e.0/sof-essx8336/sound/card0/input24

帕武控制

通过 pipeline-pulse 进行的 Pavucontrol 似乎显示条形音箱正在移动,但即使在切换到各种输出和配置后也没有声音。

通过管线脉冲进行 Pavu 控制

没有“HDMI”配置或配置文件,只有“扬声器”和“专业音频”,两者似乎都没有发出任何声音: Pavu控制配置

声卡

█[coolby][~][0]$ sudo cat /proc/asound/cards
 0 [sofessx8336    ]: sof-essx8336 - sof-essx8336
                      intel-AB2L-Defaultstring
█[coolby][~][130]$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: sofessx8336 [sof-essx8336], device 0: ES8336 (*) []
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 0: sofessx8336 [sof-essx8336], device 5: HDMI 1 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofessx8336 [sof-essx8336], device 6: HDMI 2 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofessx8336 [sof-essx8336], device 7: HDMI 3 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
█[coolby][~][0]$

aplay -LHDMI列出几张卡,其名称中均不包含以下内容:

█[coolby][~][1]$ aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
lavrate
    Rate Converter Plugin Using Libav/FFmpeg Library
samplerate
    Rate Converter Plugin Using Samplerate Library
speexrate
    Rate Converter Plugin Using Speex Resampler
jack
    JACK Audio Connection Kit
oss
    Open Sound System
pipewire
    PipeWire Sound Server
pulse
    PulseAudio Sound Server
speex
    Plugin using Speex DSP (resample, agc, denoise, echo, dereverb)
upmix
    Plugin for channel upmix (4,6,8)
vdownmix
    Plugin for channel downmix (stereo) with a simple spacialization
default
    Default ALSA Output (currently PipeWire Media Server)
hw:CARD=sofessx8336,DEV=0
    sof-essx8336,
    Direct hardware device without any conversions
hw:CARD=sofessx8336,DEV=5
    sof-essx8336,
    Direct hardware device without any conversions
hw:CARD=sofessx8336,DEV=6
    sof-essx8336,
    Direct hardware device without any conversions
hw:CARD=sofessx8336,DEV=7
    sof-essx8336,
    Direct hardware device without any conversions
plughw:CARD=sofessx8336,DEV=0
    sof-essx8336,
    Hardware device with all software conversions
plughw:CARD=sofessx8336,DEV=5
    sof-essx8336,
    Hardware device with all software conversions
plughw:CARD=sofessx8336,DEV=6
    sof-essx8336,
    Hardware device with all software conversions
plughw:CARD=sofessx8336,DEV=7
    sof-essx8336,
    Hardware device with all software conversions
sysdefault:CARD=sofessx8336
    sof-essx8336,
    Default Audio Device
dmix:CARD=sofessx8336,DEV=0
    sof-essx8336,
    Direct sample mixing device
dmix:CARD=sofessx8336,DEV=5
    sof-essx8336,
    Direct sample mixing device
dmix:CARD=sofessx8336,DEV=6
    sof-essx8336,
    Direct sample mixing device
dmix:CARD=sofessx8336,DEV=7
    sof-essx8336,
    Direct sample mixing device
usbstream:CARD=sofessx8336
    sof-essx8336
    USB Stream Output
█[coolby][~][0]$

我尝试通过扬声器测试将这些声卡中的每一个都连接起来,但从来没有声音。我还通过 AUX 线插入扬声器/耳机,但没有声音。

另外,pactl list-sinks仅列出一张卡:

█[coolby][~][0]$ pactl list sinks
Sink #41
        State: IDLE
        Name: alsa_output.pci-0000_00_0e.0-platform-sof-essx8336.stereo-fallback
        Description: Celeron N3350/Pentium N4200/Atom E3900 Series Audio Cluster Stereo
        Driver: PipeWire
        Sample Specification: s32le 2ch 48000Hz
        Channel Map: front-left,front-right
        Owner Module: 4294967295
        Mute: no
        Volume: front-left: 47038 /  72% / -8.64 dB,   front-right: 47038 /  72% / -8.64 dB
                balance 0.00
        Base Volume: 65536 / 100% / 0.00 dB
        Monitor Source: alsa_output.pci-0000_00_0e.0-platform-sof-essx8336.stereo-fallback.monitor
        Latency: 0 usec, configured 0 usec
        Flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY
        Properties:
                alsa.card = "0"
                alsa.card_name = "sof-essx8336"
                alsa.class = "generic"
                alsa.device = "0"
                alsa.driver_name = "snd_soc_sof_es8336"
                alsa.id = "ES8336 (*)"
                alsa.long_card_name = "intel-AB2L-Defaultstring"
                alsa.name = ""
                alsa.resolution_bits = "16"
                alsa.subclass = "generic-mix"
                alsa.subdevice = "0"
                alsa.subdevice_name = "subdevice #0"
                api.alsa.card.longname = "intel-AB2L-Defaultstring"
                api.alsa.card.name = "sof-essx8336"
                api.alsa.path = "hw:0"
                api.alsa.pcm.card = "0"
                api.alsa.pcm.stream = "playback"
                audio.channels = "2"
                audio.position = "FL,FR"
                card.profile.device = "6"
                device.api = "alsa"
                device.class = "sound"
                device.id = "40"
                device.profile.description = "Stereo"
                device.profile.name = "stereo-fallback"
                device.routes = "2"
                factory.name = "api.alsa.pcm.sink"
                media.class = "Audio/Sink"
                device.description = "Celeron N3350/Pentium N4200/Atom E3900 Series Audio Cluster"
                node.name = "alsa_output.pci-0000_00_0e.0-platform-sof-essx8336.stereo-fallback"
                node.nick = "Stereo"
                node.pause-on-idle = "false"
                object.path = "alsa:pcm:0:hw:0:playback"
                priority.driver = "1000"
                priority.session = "1000"
                factory.id = "18"
                clock.quantum-limit = "8192"
                client.id = "33"
                node.driver = "true"
                factory.mode = "merge"
                audio.adapt.follower = ""
                library.name = "audioconvert/libspa-audioconvert"
                object.id = "41"
                object.serial = "41"
                node.max-latency = "4096/48000"
                api.alsa.period-size = "1024"
                api.alsa.period-num = "8"
                api.alsa.headroom = "0"
                api.acp.auto-port = "false"
                api.acp.auto-profile = "false"
                api.alsa.card = "0"
                api.alsa.use-acp = "true"
                api.dbus.ReserveDevice1 = "Audio0"
                device.bus = "pci"
                device.bus_path = "pci-0000:00:0e.0-platform-sof-essx8336"
                device.enum.api = "udev"
                device.icon_name = "audio-card-analog-pci"
                device.name = "alsa_card.pci-0000_00_0e.0-platform-sof-essx8336"
                device.nick = "sof-essx8336"
                device.plugged.usec = "30160517"
                device.product.id = "0x5a98"
                device.product.name = "Celeron N3350/Pentium N4200/Atom E3900 Series Audio Cluster"
                device.subsystem = "sound"
                sysfs.path = "/devices/pci0000:00/0000:00:0e.0/sof-essx8336/sound/card0"
                device.vendor.id = "0x8086"
                device.vendor.name = "Intel Corporation"
                device.string = "0"
        Ports:
                analog-output-speaker: Speakers (type: Speaker, priority: 10000, not available)
                analog-output-headphones: Headphones (type: Headphones, priority: 9900, availability group: Legacy 1, availability unknown)
        Active Port: analog-output-headphones
        Formats:
                pcm

展示

系统通过 HDMI 连接到带扬声器的电视,该电视上的声音与其他设备配合良好:

█[coolby][~][0]$ xrandr -q
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 16384 x 16384
DP-1 disconnected primary (normal left inverted right x axis y axis)
HDMI-1 disconnected (normal left inverted right x axis y axis)
HDMI-2 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 853mm x 480mm
   1920x1080     60.00*+  59.94    30.00    24.00    29.97    23.98
   1920x1080i    60.00    59.94
   1680x1050     59.88
   1280x1024     75.02    60.02
   1440x900      59.90
   1280x960      60.00
   1360x768      60.02
   1280x800      59.91
   1152x864      75.00
   1280x720      60.00    60.00    59.94
   1024x768      75.03    70.07    60.00
   800x600       72.19    75.00    60.32
   720x480       60.00    59.94
   720x480i      60.00    59.94
   640x480       75.00    72.81    60.00    59.94
   720x400       70.08
█[coolby][~][0]$

扬声器测试

这些看似成功,但没有声音。

█[coolby][~][1]$ speaker-test -l5 -D plughw:0,5

speaker-test 1.2.8

Playback device is plughw:0,5
Stream parameters are 48000Hz, S16_LE, 1 channels
Using 16 octaves of pink noise
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 96 to 16384
Period size range from 48 to 4096
Using max buffer size 16384
Periods = 4
was set period_size = 4096
was set buffer_size = 16384
 0 - Front Left
Time per period = 2.646839
 0 - Front Left
Time per period = 2.985025
 0 - Front Left
Time per period = 2.986957
 0 - Front Left
Time per period = 2.986913
 0 - Front Left
Time per period = 2.985883
█[coolby][~][0]$ speaker-test -l5 -D plughw:0,6

speaker-test 1.2.8

Playback device is plughw:0,6
Stream parameters are 48000Hz, S16_LE, 1 channels
Using 16 octaves of pink noise
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 96 to 16384
Period size range from 48 to 4096
Using max buffer size 16384
Periods = 4
was set period_size = 4096
was set buffer_size = 16384
 0 - Unknown
Time per period = 2.645836
 0 - Unknown
Time per period = 2.985933
 0 - Unknown
Time per period = 2.986965
 0 - Unknown
Time per period = 2.986956
 0 - Unknown
Time per period = 2.981944
█[coolby][~][0]$ speaker-test -l5 -D plughw:0,7

speaker-test 1.2.8

Playback device is plughw:0,7
Stream parameters are 48000Hz, S16_LE, 1 channels
Using 16 octaves of pink noise
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 96 to 16384
Period size range from 48 to 4096
Using max buffer size 16384
Periods = 4
was set period_size = 4096
was set buffer_size = 16384
 0 - Unknown
Time per period = 2.646129
 0 - Unknown
Time per period = 2.986089
 0 - Unknown
Time per period = 2.986616
 0 - Unknown
Time per period = 2.986962
 0 - Unknown
Time per period = 2.984837
█[coolby][~][0]$

产品详情

Coolby Yealbox MINI PC Intel Celeron N3350 Processor Windows 10 system 6GB RAM 64GB ROM M.2 Slot 4K HD Office Desktop MINI Computer

Details
Save
Report this item
Power Mode: Power Supply
Operating Voltage: 110V/220V
Plug Specification: US Plug
Connectivity Technology: USB
CPU Manufacturer: Intel
Wireless Communication Standard: 2.4 ghz radio frequency
Processor Type: Intel Celeron*
Graphics Processor Manufacturer: Intel
Graphics Type: Integrated
Usage: Multimedia
Wireless Connection Type: Wifi
Hard Drive Type: Ssd
Graphics Processor: Inteluhdgraphics600
Memory Technology: Ddr3
Operating System: Windows10pro
Graphics Card Interface: Integrated
Total Video Out Ports: 1
Battery Properties: Without Battery
Brand: Coolby
Connectivity Type: None
Wireless Property: With Wi-Fi function

产品信息 如何进一步排除这台迷你电脑上的音频故障?

debian
  • 2 个回答
  • 45 Views
Martin Hope
user84207
Asked: 2023-07-22 04:55:38 +0800 CST

调试奇怪的 EACCES (Permission returned) 权限错误

  • 7

我有一个指向世界可读文件的符号链接,而 ac 程序无法读取该文件。redshift应该自动获取配置$HOME/.config/redshift/redsihft.conf,但事实并非如此。我尝试跟踪系统调用以了解正在尝试哪些文件:

debian-x1-7th][redshift-1.12][130]$ strace -fe trace=file redshift          
execve("/usr/bin/redshift", ["redshift"], 0x7ffd2d3c2680 /* 78 vars */) = 0
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libdrm.so.2", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libwayland-client.so.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libxcb.so.1", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libxcb-randr.so.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libX11.so.6", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libXxf86vm.so.1", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libgio-2.0.so.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libgobject-2.0.so.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libglib-2.0.so.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libm.so.6", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libffi.so.7", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libXau.so.6", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libXdmcp.so.6", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libXext.so.6", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libgmodule-2.0.so.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libz.so.1", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libmount.so.1", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libselinux.so.1", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libresolv.so.2", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libpcre.so.3", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libbsd.so.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libblkid.so.1", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libpcre2-8.so.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libmd.so.0", O_RDONLY|O_CLOEXEC) = 3
statfs("/sys/fs/selinux", 0x7ffc678ee320) = -1 ENOENT (No such file or directory)
statfs("/selinux", 0x7ffc678ee320)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/proc/filesystems", O_RDONLY|O_CLOEXEC) = 3
access("/etc/selinux/config", F_OK)     = 0
openat(AT_FDCWD, "/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/home/ealfonso/.config/redshift/redshift.conf", O_RDONLY) = -1 EACCES (Permission denied)
openat(AT_FDCWD, "/home/ealfonso/.config/redshift.conf", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/nsswitch.conf", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libnss_files.so.2", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/etc/passwd", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/home/ealfonso/.config/redshift/redshift.conf", O_RDONLY) = -1 EACCES (Permission denied)
openat(AT_FDCWD, "/home/ealfonso/.config/redshift.conf", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/redshift.conf", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/share/locale/en_US.UTF-8/LC_MESSAGES/redshift.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/en_US.utf8/LC_MESSAGES/redshift.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/en_US/LC_MESSAGES/redshift.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/en.UTF-8/LC_MESSAGES/redshift.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/en.utf8/LC_MESSAGES/redshift.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/en/LC_MESSAGES/redshift.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
Trying location provider `geoclue2'...
Using provider `geoclue2'.
strace: Process 78213 attached
Could not connect to wayland display, exiting.
Failed to start adjustment method wayland.
Trying next method...
[pid 78212] access("/home/ealfonso/.Xauthority", R_OK) = 0
[pid 78212] openat(AT_FDCWD, "/home/ealfonso/.Xauthority", O_RDONLY) = 6
strace: Process 78214 attached
[pid 78213] openat(AT_FDCWD, "/usr/share/locale/en_US.UTF-8/LC_MESSAGES/glib20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid 78213] openat(AT_FDCWD, "/usr/share/locale/en_US.utf8/LC_MESSAGES/glib20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid 78213] openat(AT_FDCWD, "/usr/share/locale/en_US/LC_MESSAGES/glib20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid 78213] openat(AT_FDCWD, "/usr/share/locale/en.UTF-8/LC_MESSAGES/glib20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid 78213] openat(AT_FDCWD, "/usr/share/locale/en.utf8/LC_MESSAGES/glib20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid 78213] openat(AT_FDCWD, "/usr/share/locale/en/LC_MESSAGES/glib20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
Using method `randr'.
Waiting for initial location to become available...
strace: Process 78215 attached
strace: Process 78216 attached
[pid 78215] +++ exited with 0 +++    

`

让我惊讶的是这个权限被拒绝了:

openat(AT_FDCWD, "/home/ealfonso/.config/redshift/redshift.conf", O_RDONLY) = -1 EACCES (Permission denied)

提示进程被拒绝打开/home/ealfonso/.config/redshift/redshift.conf。这很奇怪,因为该文件应该是世界可读的。所有父目录都是所有者可执行文件,包括符号链接目标:

[debian-x1-7th][redshift-1.12][1]$ ls -l /home/ealfonso/.config/redshift/redshift.conf
lrwxrwxrwx 1 ealfonso ealfonso 47 Jul 21 15:47 /home/ealfonso/.config/redshift/redshift.conf -> /home/ealfonso/git/dotfiles/inits/redshift.conf
█[debian-x1-7th][redshift-1.12][0]$ ls -l /home/ealfonso/git/dotfiles/inits/redshift.conf
-rw-r--r-- 1 ealfonso ealfonso 138 Jul 21 15:32 /home/ealfonso/git/dotfiles/inits/redshift.conf
█[debian-x1-7th][redshift-1.12][0]$ ls -ld ~/.config/
drwx------ 29 ealfonso ealfonso 4096 Jul 21 15:47 /home/ealfonso/.config/
█[debian-x1-7th][redshift-1.12][0]$ ls -ld ~/
drwxr-xr-x 56 ealfonso ealfonso 4096 Jul 21 16:10 /home/ealfonso/
█[debian-x1-7th][redshift-1.12][0]$ ls -ld /home/
drwxr-xr-x 3 root root 4096 Apr 27 17:10 /home/
█[debian-x1-7th][redshift-1.12][0]$ 
█[debian-x1-7th][redshift-1.12][0]$ ls -ld /home/ealfonso/git/dotfiles/inits/
drwxr-xr-x 8 ealfonso ealfonso 4096 Jul 21 15:32 /home/ealfonso/git/dotfiles/inits/

我尝试从源代码编译 redshift 并添加一些调试日志,令人惊讶的是我无法重现该错误:

█[debian-x1-7th][redshift-1.12][130]$ strace -f -e trace=file ./src/redshift
execve("./src/redshift", ["./src/redshift"], 0x7ffc655cd728 /* 78 vars */) = 0
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libwayland-client.so.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libxcb.so.1", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libxcb-randr.so.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libgio-2.0.so.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libgobject-2.0.so.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libglib-2.0.so.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libm.so.6", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libffi.so.7", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libXau.so.6", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libXdmcp.so.6", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libgmodule-2.0.so.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libz.so.1", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libmount.so.1", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libselinux.so.1", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libresolv.so.2", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libpcre.so.3", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libbsd.so.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libblkid.so.1", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libpcre2-8.so.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libmd.so.0", O_RDONLY|O_CLOEXEC) = 3
statfs("/sys/fs/selinux", 0x7fff8353fa80) = -1 ENOENT (No such file or directory)
statfs("/selinux", 0x7fff8353fa80)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/proc/filesystems", O_RDONLY|O_CLOEXEC) = 3
access("/etc/selinux/config", F_OK)     = 0
openat(AT_FDCWD, "/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
DDEBUG 7w6d: cp /home/ealfonso/.config/redshift/redshift.conf
openat(AT_FDCWD, "/home/ealfonso/.config/redshift/redshift.conf", O_RDONLY) = 3
DDEBUG TRACE (config-ini.c) nlbc ()
DDEBUG wo2r: value randr
DDEBUG iwyt: m->name wayland
DDEBUG iwyt: m->name randr
access("/home/ealfonso/.Xauthority", R_OK) = 0
openat(AT_FDCWD, "/home/ealfonso/.Xauthority", O_RDONLY) = 4
openat(AT_FDCWD, "/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 4
openat(AT_FDCWD, "/usr/local/share/locale/en_US.UTF-8/LC_MESSAGES/redshift.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/local/share/locale/en_US.utf8/LC_MESSAGES/redshift.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/local/share/locale/en_US/LC_MESSAGES/redshift.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/local/share/locale/en.UTF-8/LC_MESSAGES/redshift.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/local/share/locale/en.utf8/LC_MESSAGES/redshift.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/local/share/locale/en/LC_MESSAGES/redshift.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
Waiting for initial location to become available...
Location: 28.56 N, 81.21 E
openat(AT_FDCWD, "/home/ealfonso/.config/redshift/hooks", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = -1 ENOENT (No such file or directory)
^Cstrace: Process 78851 detached

█[debian-x1-7th][redshift-1.12][130]$ 
    

尤其:

DDEBUG 7w6d: cp /home/ealfonso/.config/redshift/redshift.conf
openat(AT_FDCWD, "/home/ealfonso/.config/redshift/redshift.conf", O_RDONLY) = 3

文件已成功打开并加载了正确的配置。

如何进一步调试这个奇怪的错误?

对于上下文,我在 debian 11 上使用 redshift 1.12,但这只是一个如何调试这些系统调用的一般问题。

...

发布问题后不久,我查看了打包为 redshift 一部分的文件,并注意到一个 apparmor 文件,其内容包括:

#include <tunables/global>
/usr/bin/redshift {
  #include <abstractions/base>
  #include <abstractions/nameservice>
  #include <abstractions/dbus-strict>
  #include <abstractions/wayland>
  #include <abstractions/X>

  dbus send
       bus=system
       path=/org/freedesktop/GeoClue2/Client/[0-9]*,

  dbus receive
       bus=system
       path=/org/freedesktop/GeoClue2/Manager,

  # Allow but log any other dbus activity
  audit dbus bus=system,

  owner @{HOME}/.config/redshift.conf r,
  owner /run/user/*/redshift-shared-* rw,

  # Site-specific additions and overrides. See local/README for details.
  #include <local/usr.bin.redshift>
}

从来源来看,这~/.config/redshift.conf被称为“以前使用的”后备路径:

if (f == NULL && (env = getenv("XDG_CONFIG_HOME")) != NULL &&
            env[0] != '\0') {
            snprintf(cp, sizeof(cp),
                     "%s/redshift/redshift.conf", env);
            f = fopen(cp, "r");
            if (f == NULL) {
                /* Fall back to formerly used path. */
                snprintf(cp, sizeof(cp),
                         "%s/redshift.conf", env);
                f = fopen(cp, "r");
            }
        }

但将该行添加owner @{HOME}/.config/redshift/redshift.conf r到此配置后,该文件仍然被拒绝。

debian
  • 1 个回答
  • 25 Views
Martin Hope
user84207
Asked: 2019-01-16 21:34:51 +0800 CST

将非修饰符配置为修饰键

  • 0

这个问题类似于:

https://askubuntu.com/questions/33751/making-any-key-into-a-modifier-key

我有一台具有非标准键盘布局(联想 x1 carbon)的机器,其中 CapsLock 键已被 Home、End 取代。我习惯将 CapsLock 映射为控件,所以我使用 xmodmap 来映射 Home,End 到 Control:

xmodmap -e 'keycode 110 = Control_L' # Home
xmodmap -e 'keycode 115 = Control_L' # End

当我单独按 Home(或 End)时,会检测到正确的键符:

state 0x0, keycode 110 (keysym 0xffe3, Control_L), same_screen YES,

但我不能使用重新映射的 Home 或 End 键作为任何其他键的修饰符:当我按 Control+a 时,a 键不会被修改:

KeyPress event, serial 36, synthetic NO, window 0x1000001,
    root 0xe0, subw 0x0, time 15157752, (829,406), root:(830,407),
    state 0x0, keycode 110 (keysym 0xffe3, Control_L), same_screen YES,
    XKeysymToKeycode returns keycode: 37
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 36, synthetic NO, window 0x1000001,
    root 0xe0, subw 0x0, time 15157761, (829,406), root:(830,407),
    state 0x0, keycode 38 (keysym 0x61, a), same_screen YES,
    XLookupString gives 1 bytes: (61) "a"
    XmbLookupString gives 1 bytes: (61) "a"
    XFilterEvent returns: False

KeyRelease event, serial 36, synthetic NO, window 0x1000001,
    root 0xe0, subw 0x0, time 15157912, (829,406), root:(830,407),
    state 0x0, keycode 38 (keysym 0x61, a), same_screen YES,
    XLookupString gives 1 bytes: (61) "a"
    XFilterEvent returns: False

KeyRelease event, serial 36, synthetic NO, window 0x1000001,
    root 0xe0, subw 0x0, time 15157949, (829,406), root:(830,407),
    state 0x0, keycode 110 (keysym 0xffe3, Control_L), same_screen YES,
    XKeysymToKeycode returns keycode: 37
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

而如果我使用“真实”控制键,则“a”键按下具有控制修饰符状态:

KeyPress event, serial 36, synthetic NO, window 0x1000001,
    root 0xe0, subw 0x0, time 15160488, (829,406), root:(830,407),
    state 0x0, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 36, synthetic NO, window 0x1000001,
    root 0xe0, subw 0x0, time 15161477, (829,406), root:(830,407),
    state 0x4, keycode 38 (keysym 0x61, a), same_screen YES,
    XLookupString gives 1 bytes: (01) ""
    XmbLookupString gives 1 bytes: (01) ""
    XFilterEvent returns: False

KeyRelease event, serial 36, synthetic NO, window 0x1000001,
    root 0xe0, subw 0x0, time 15161588, (829,406), root:(830,407),
    state 0x4, keycode 38 (keysym 0x61, a), same_screen YES,
    XLookupString gives 1 bytes: (01) ""
    XFilterEvent returns: False

KeyRelease event, serial 36, synthetic NO, window 0x1000001,
    root 0xe0, subw 0x0, time 15161842, (829,406), root:(830,407),
    state 0x4, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

在我的情况下,是否可以将 Home 键配置为 Control 修饰键?还是有一些硬件限制阻止了这一点?

keyboard-layout xmodmap
  • 1 个回答
  • 85 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve