Foreword
We acknowledge that many of you might feel uncomfortable copying and pasting blocks of text from your terminals, especially if you do not fully understand what that block of text means. And let’s not even get started on screenshots…
We all know what it’s like when someone asks for some information that you believe they shouldn’t be asking for.
However, it is possible that some people might either divulge too much information, or refuse to divulge completely innocent information altogether. Both of these circumstances aren’t exactly ideal.
This guide is intended to address how to respond when someone asks you for information about your circumstances.
This guide will go through some of the most common things that will be asked of you if you are encountering technical difficulties, and need assistance.
It will explain:
- What each of those things are
- What they look like
- What bits of information are needed in order to successfully answer your question
- What bits of information could potentially leak information about you
- What bits are not going to leak information about you
- How to redact information successfully, while still being able to get a satisfactory answer to your questions
If anyone else has examples they have encountered, please add them to the list, so that we can better help those that need help.
What is this guide NOT about?
This is about helping users, particularly non-technical users, understand what it means when people ask them to provide information about their machine for diagnosis, and how to make a conscious decision to share, or not to share.
This guide is NOT about:
- How to be Hackerman or Mr. Robot
- How to hide from the government
- How to use a VPN/Tor/I2P
- How to hide illegal activities from law enforcement
- Anything related to the GDPR or similar data protection legislation
- Conspiracy theories
- Fear-mongering
- “Tinfoil hat” topics
- OpSec
- (i.e. adjusting your personal behaviour based to avoid divulging of secret information)
- Anything else of a similar nature.
Please DO NOT post anything about these topics here.
They are NOT relevant, they have NO place here, and they belong in a separate guide.
The output of lspci
What is this?
This is a command that can be run in a terminal that will list all PCI devices attached to your computer.
What does the output look like?
lspci
Output of Command
00:00.0 Host bridge: Intel Corporation 12th Gen Core Processor Host Bridge/DRAM Registers (rev 02)
00:01.0 PCI bridge: Intel Corporation 12th Gen Core Processor PCI Express x16 Controller #1 (rev 02)
00:02.0 VGA compatible controller: Intel Corporation AlderLake-S GT1 (rev 0c)
00:06.0 PCI bridge: Intel Corporation 12th Gen Core Processor PCI Express x4 Controller #0 (rev 02)
00:14.0 USB controller: Intel Corporation Raptor Lake USB 3.2 Gen 2x2 (20 Gb/s) XHCI Host Controller (rev 11)
00:14.2 RAM memory: Intel Corporation Raptor Lake-S PCH Shared SRAM (rev 11)
00:14.3 Network controller: Intel Corporation Raptor Lake-S PCH CNVi WiFi (rev 11)
00:15.0 Serial bus controller: Intel Corporation Raptor Lake Serial IO I2C Host Controller #0 (rev 11)
00:15.1 Serial bus controller: Intel Corporation Raptor Lake Serial IO I2C Host Controller #1 (rev 11)
00:15.2 Serial bus controller: Intel Corporation Raptor Lake Serial IO I2C Host Controller #2 (rev 11)
00:15.3 Serial bus controller: Intel Corporation Device 7a4f (rev 11)
00:16.0 Communication controller: Intel Corporation Raptor Lake CSME HECI #1 (rev 11)
00:17.0 SATA controller: Intel Corporation Raptor Lake SATA AHCI Controller (rev 11)
00:19.0 Serial bus controller: Intel Corporation Device 7a7c (rev 11)
00:19.1 Serial bus controller: Intel Corporation Device 7a7d (rev 11)
00:1a.0 PCI bridge: Intel Corporation Raptor Lake PCI Express Root Port #25 (rev 11)
00:1b.0 PCI bridge: Intel Corporation Raptor Lake PCI Express Root Port #17 (rev 11)
00:1b.4 PCI bridge: Intel Corporation Raptor Lake PCI Express Root Port #21 (rev 11)
00:1c.0 PCI bridge: Intel Corporation Raptor Lake PCI Express Root Port #1 (rev 11)
00:1c.2 PCI bridge: Intel Corporation Raptor Point-S PCH - PCI Express Root Port 3 (rev 11)
00:1d.0 PCI bridge: Intel Corporation Raptor Lake PCI Express Root Port #9 (rev 11)
00:1d.4 PCI bridge: Intel Corporation Device 7a34 (rev 11)
00:1f.0 ISA bridge: Intel Corporation Raptor Lake LPC/eSPI Controller (rev 11)
00:1f.3 Audio device: Intel Corporation Raptor Lake High Definition Audio Controller (rev 11)
00:1f.4 SMBus: Intel Corporation Raptor Lake-S PCH SMBus Controller (rev 11)
00:1f.5 Serial bus controller: Intel Corporation Raptor Lake SPI (flash) Controller (rev 11)
01:00.0 VGA compatible controller: NVIDIA Corporation GF114 [GeForce GTX 560] (rev a1)
01:00.1 Audio device: NVIDIA Corporation GF114 HDMI Audio Controller (rev a1)
02:00.0 Non-Volatile memory controller: Realtek Semiconductor Co., Ltd. RTS5772DL NVMe SSD Controller (DRAM-less) (rev 01)
03:00.0 Non-Volatile memory controller: Realtek Semiconductor Co., Ltd. RTS5772DL NVMe SSD Controller (DRAM-less) (rev 01)
05:00.0 Non-Volatile memory controller: Realtek Semiconductor Co., Ltd. RTS5772DL NVMe SSD Controller (DRAM-less) (rev 01)
07:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller (rev 05)
09:00.0 Non-Volatile memory controller: Realtek Semiconductor Co., Ltd. RTS5772DL NVMe SSD Controller (DRAM-less) (rev 01)
lspci -k
Output of Command
00:00.0 Host bridge: Intel Corporation 12th Gen Core Processor Host Bridge/DRAM Registers (rev 02)
DeviceName: Onboard - Other
Subsystem: Gigabyte Technology Co., Ltd Device 5000
00:01.0 PCI bridge: Intel Corporation 12th Gen Core Processor PCI Express x16 Controller #1 (rev 02)
Subsystem: Gigabyte Technology Co., Ltd Device 5000
Kernel driver in use: pcieport
00:02.0 VGA compatible controller: Intel Corporation AlderLake-S GT1 (rev 0c)
DeviceName: Onboard - Video
Subsystem: Gigabyte Technology Co., Ltd Device d000
Kernel driver in use: i915
Kernel modules: i915
00:06.0 PCI bridge: Intel Corporation 12th Gen Core Processor PCI Express x4 Controller #0 (rev 02)
Kernel driver in use: pcieport
00:14.0 USB controller: Intel Corporation Raptor Lake USB 3.2 Gen 2x2 (20 Gb/s) XHCI Host Controller (rev 11)
DeviceName: Onboard - Other
Subsystem: Gigabyte Technology Co., Ltd Device 5007
Kernel driver in use: xhci_hcd
Kernel modules: mei_me, xhci_pci
00:14.2 RAM memory: Intel Corporation Raptor Lake-S PCH Shared SRAM (rev 11)
DeviceName: Onboard - Other
00:14.3 Network controller: Intel Corporation Raptor Lake-S PCH CNVi WiFi (rev 11)
DeviceName: Onboard - Ethernet
Subsystem: Intel Corporation Device 0094
Kernel driver in use: iwlwifi
Kernel modules: iwlwifi
00:15.0 Serial bus controller: Intel Corporation Raptor Lake Serial IO I2C Host Controller #0 (rev 11)
DeviceName: Onboard - Other
Kernel driver in use: intel-lpss
Kernel modules: intel_lpss_pci
00:15.1 Serial bus controller: Intel Corporation Raptor Lake Serial IO I2C Host Controller #1 (rev 11)
DeviceName: Onboard - Other
Kernel driver in use: intel-lpss
Kernel modules: intel_lpss_pci
00:15.2 Serial bus controller: Intel Corporation Raptor Lake Serial IO I2C Host Controller #2 (rev 11)
DeviceName: Onboard - Other
Kernel driver in use: intel-lpss
Kernel modules: intel_lpss_pci
00:15.3 Serial bus controller: Intel Corporation Device 7a4f (rev 11)
DeviceName: Onboard - Other
Kernel driver in use: intel-lpss
Kernel modules: intel_lpss_pci
00:16.0 Communication controller: Intel Corporation Raptor Lake CSME HECI #1 (rev 11)
DeviceName: Onboard - Other
Subsystem: Gigabyte Technology Co., Ltd Device 1c3a
Kernel driver in use: mei_me
Kernel modules: mei_me
00:17.0 SATA controller: Intel Corporation Raptor Lake SATA AHCI Controller (rev 11)
DeviceName: Onboard - SATA
Subsystem: Gigabyte Technology Co., Ltd Device b005
Kernel driver in use: ahci
Kernel modules: ahci
00:19.0 Serial bus controller: Intel Corporation Device 7a7c (rev 11)
DeviceName: Onboard - Other
Kernel driver in use: intel-lpss
Kernel modules: intel_lpss_pci
00:19.1 Serial bus controller: Intel Corporation Device 7a7d (rev 11)
DeviceName: Onboard - Other
Kernel driver in use: intel-lpss
Kernel modules: intel_lpss_pci
00:1a.0 PCI bridge: Intel Corporation Raptor Lake PCI Express Root Port #25 (rev 11)
Kernel driver in use: pcieport
00:1b.0 PCI bridge: Intel Corporation Raptor Lake PCI Express Root Port #17 (rev 11)
Kernel driver in use: pcieport
00:1b.4 PCI bridge: Intel Corporation Raptor Lake PCI Express Root Port #21 (rev 11)
Kernel driver in use: pcieport
00:1c.0 PCI bridge: Intel Corporation Raptor Lake PCI Express Root Port #1 (rev 11)
Kernel driver in use: pcieport
00:1c.2 PCI bridge: Intel Corporation Raptor Point-S PCH - PCI Express Root Port 3 (rev 11)
Subsystem: Gigabyte Technology Co., Ltd Device 5001
Kernel driver in use: pcieport
00:1d.0 PCI bridge: Intel Corporation Raptor Lake PCI Express Root Port #9 (rev 11)
Kernel driver in use: pcieport
00:1d.4 PCI bridge: Intel Corporation Device 7a34 (rev 11)
Subsystem: Gigabyte Technology Co., Ltd Device 5001
Kernel driver in use: pcieport
00:1f.0 ISA bridge: Intel Corporation Raptor Lake LPC/eSPI Controller (rev 11)
DeviceName: Onboard - Other
Subsystem: Gigabyte Technology Co., Ltd Device 5001
00:1f.3 Audio device: Intel Corporation Raptor Lake High Definition Audio Controller (rev 11)
DeviceName: Onboard - Sound
Subsystem: Gigabyte Technology Co., Ltd Device a194
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel, snd_sof_pci_intel_tgl
00:1f.4 SMBus: Intel Corporation Raptor Lake-S PCH SMBus Controller (rev 11)
DeviceName: Onboard - Other
Subsystem: Gigabyte Technology Co., Ltd Device 5001
Kernel driver in use: i801_smbus
Kernel modules: i2c_i801
00:1f.5 Serial bus controller: Intel Corporation Raptor Lake SPI (flash) Controller (rev 11)
DeviceName: Onboard - Other
01:00.0 VGA compatible controller: NVIDIA Corporation GF114 [GeForce GTX 560] (rev a1)
Subsystem: Gigabyte Technology Co., Ltd Device 3527
Kernel driver in use: nouveau
Kernel modules: nouveau
01:00.1 Audio device: NVIDIA Corporation GF114 HDMI Audio Controller (rev a1)
Subsystem: Gigabyte Technology Co., Ltd Device 3527
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel
02:00.0 Non-Volatile memory controller: Realtek Semiconductor Co., Ltd. RTS5772DL NVMe SSD Controller (DRAM-less) (rev 01)
Subsystem: Realtek Semiconductor Co., Ltd. RTS5772DL NVMe SSD Controller (DRAM-less)
Kernel driver in use: nvme
Kernel modules: nvme
03:00.0 Non-Volatile memory controller: Realtek Semiconductor Co., Ltd. RTS5772DL NVMe SSD Controller (DRAM-less) (rev 01)
Subsystem: Realtek Semiconductor Co., Ltd. RTS5772DL NVMe SSD Controller (DRAM-less)
Kernel driver in use: nvme
Kernel modules: nvme
05:00.0 Non-Volatile memory controller: Realtek Semiconductor Co., Ltd. RTS5772DL NVMe SSD Controller (DRAM-less) (rev 01)
Subsystem: Realtek Semiconductor Co., Ltd. RTS5772DL NVMe SSD Controller (DRAM-less)
Kernel driver in use: nvme
Kernel modules: nvme
07:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller (rev 05)
Subsystem: Gigabyte Technology Co., Ltd Device e000
Kernel driver in use: r8169
Kernel modules: r8169
09:00.0 Non-Volatile memory controller: Realtek Semiconductor Co., Ltd. RTS5772DL NVMe SSD Controller (DRAM-less) (rev 01)
Subsystem: Realtek Semiconductor Co., Ltd. RTS5772DL NVMe SSD Controller (DRAM-less)
Kernel driver in use: nvme
Kernel modules: nvme
Why would someone ask for this?
This information shows how your machine is hooked up, what devices you have inside performing what functions, and where each device is in the internal hierarchy of your machine.
What can I redact?
If your question is about a specific PCI device misbehaving, then in most cases, you should be able to redact all lines that are not about the PCI device in question.
What do I need to leave in the post?
In almost all cases someone asks for this, you will likely need to leave the lines pertaining to the PCI device in question untouched in order to get an answer to your question. If you redact any of this, you will likely be met with a request to see that information.
Anything else I should know?
This command will not show any usernames, passwords, IP addresses, file names, or anything else other than what hardware you have connected to your PCI interfaces, and sometimes what drivers/firmware they are using.
The output of lsusb
What is this?
This command lists all USB devices that the machine can detect.
What does the output look like?
lsusb
Output of Command
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 003: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 005: ID 048d:5702 Integrated Technology Express, Inc. RGB LED Controller
Bus 001 Device 007: ID 8087:0033 Intel Corp. AX211 Bluetooth
Bus 001 Device 060: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 002: ID 0781:5581 SanDisk Corp. Ultra
lsusb -t
Output of Command
/: Bus 001.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/16p, 480M
|__ Port 011: Dev 002, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 002: Dev 060, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 012: Dev 003, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 013: Dev 005, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 014: Dev 007, If 0, Class=Wireless, Driver=btusb, 12M
|__ Port 014: Dev 007, If 1, Class=Wireless, Driver=btusb, 12M
/: Bus 002.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/9p, 20000M/x2
|__ Port 007: Dev 002, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
Why would someone ask for this?
This is useful when trying to determine which USB controller a USB port belongs to. It is also helpful when trying to figure out why a USB device is not “playing nice” with sys-usb
.
What can I redact?
Generally, when the question is about a particular USB device, it should be ok to redact anything that isn’t specifically about the USB device in question, or isn’t about the USB controller/port that it is connected to.
What do I need to leave in the post?
In most cases, it would be necessary to leave any lines about the USB device in question untouched. If you redact any information on these lines, you will likely have redacted key information needed to solve your issue.
Anything else I should know?
This command will not show any usernames, passwords, IP addresses, file names, or anything else other than what USB devices are plugged in, and what USB controller they are plugged into.
The output of lsscsi
What is this?
This command will list information about all SCSI devices attached to your machine. This command was generally useful before the days of PCIe and USB, but it is less useful now. However, on some legacy machines, it can provide useful information, when, for example, RAID hard drives are misbehaving.
What does the output look like?
lsscsi
Output of Command
[0:0:0:0] disk ATA CT1000MX500SSD1 033 /dev/sda
lsscsi -l
/ lsscsi --long
Output of Command
[0:0:0:0] disk ATA CT1000MX500SSD1 033 /dev/sda
state=running queue_depth=32 scsi_level=6 type=0 device_blocked=0 timeout=30
Why would someone ask for this?
It is useful when you are encountering red/write errors in hard drives connected via SATA and SAS, particularly if they are set up in a RAID array.
For a Qubes OS-specific example, it could provide useful information if, for example, you had multiple vm-pools on separate drives, and you were encountering errors when reading or writing to files in certain qubes, but no issues in other qubes.
What can I redact?
If your question/issue is about a particular drive or RAID array, then it is usually ok to omit/redact any lines that aren’t directly related to that drive or RAID array.
What do I need to leave in the post?
If your drive is part of a RAID array, it will generally be helpful for diagnosis if the lines pertaining to all drives in that RAID array are left untouched.
Anything else I should know?
This command will not show any usernames, passwords, IP addresses, file names, or anything else other than what hardware you have connected to your SCSI interfaces (SATA, SAS, etc.), and sometimes what drivers/firmware they are using.
This command will, however, show the names of the devices in the /dev
directory (i.e. how the Linux kernel has decided to enumerate those devices).
As can be seen from the example output above, if the drive was enumerated as /dev/sde
, that would imply that the Linux kernel has detected and enumerated 4 other block devices before this one (i.e. /dev/sda
, /dev/sdb
, /dev/sdc
, and /dev/sdd
).
Whilst this information reveals nothing more about your machine than the fact that you likely have multiple hard drives connected to it, it won’t go into any further detail than that.
If you believe that is not something you wish to divulge, that’s entirely your choice, but remember that it may severely hinder everyone’s ability to assist you with your issue.
The output of dmidecode
What is this?
dmidecode is a tool for dumping a computer’s DMI (some say SMBIOS ) table contents in a human-readable format. This table contains a description of the system’s hardware components, as well as other useful pieces of information such as serial numbers and BIOS revision. Thanks to this table, you can retrieve this information without having to probe for the actual hardware. While this is a good point in terms of report speed and safeness, this also makes the presented information possibly unreliable.
The DMI table doesn’t only describe what the system is currently made of, it also can report the possible evolutions (such as the fastest supported CPU or the maximal amount of memory supported).
SMBIOS stands for System Management BIOS , while DMI stands for Desktop Management Interface. Both standards are tightly related and developed by the DMTF (Desktop Management Task Force).
As you run it, dmidecode will try to locate the DMI table. If it succeeds, it will then parse this table and display a list of records like this one:
Handle 0x0002, DMI type 2, 8 bytes. Base Board Information Manufacturer: Intel
Product Name: C440GX+
Version: 727281-001
Serial Number: INCY92700942
Each record has:
- A handle. This is a unique identifier, which allows records to reference each other. For example, processor records usually reference cache memory records using their handles.
- A type. The SMBIOS specification defines different types of elements a computer can be made of. In this example, the type is 2, which means that the record contains “Base Board Information”.
- A size. Each record has a 4-byte header (2 for the handle, 1 for the type, 1 for the size), the rest is used by the record data. This value doesn’t take text strings into account (these are placed at the end of the record), so the actual length of the record may be (and is often) greater than the displayed value.
- Decoded values. The information presented of course depends on the type of record. Here, we learn about the board’s manufacturer, model, version and serial number.
What does the output look like?
dmidecode
Output of Command
# dmidecode 3.5
Getting SMBIOS data from sysfs.
SMBIOS 2.7 present.
66 structures occupying 3198 bytes.
Table at 0x9CBFD000.
Handle 0x0000, DMI type 222, 14 bytes
OEM-specific Type
Header and Data:
DE 0E 00 00 01 99 00 03 10 01 20 02 30 03
Strings:
Memory Init Complete
End of DXE Phase
BIOS Boot Complete
Handle 0x0001, DMI type 14, 8 bytes
Group Associations
Name: Intel(R) Silicon View Technology
Items: 1
0x0000 (OEM-specific)
Handle 0x0002, DMI type 134, 13 bytes
OEM-specific Type
Header and Data:
86 0D 02 00 03 09 15 20 00 00 00 00 00
Handle 0x0003, DMI type 7, 19 bytes
Cache Information
Socket Designation: L1 Cache
Configuration: Enabled, Not Socketed, Level 1
Operational Mode: Write Back
Location: Internal
Installed Size: 32 kB
Maximum Size: 32 kB
Supported SRAM Types:
Synchronous
Installed SRAM Type: Synchronous
Speed: Unknown
Error Correction Type: Parity
System Type: Data
Associativity: 8-way Set-associative
Handle 0x0004, DMI type 4, 42 bytes
Processor Information
Socket Designation: U3E1
Type: Central Processor
Family: Core i5
Manufacturer: Intel(R) Corporation
ID: D4 06 03 00 FF FB EB BF
Signature: Type 0, Family 6, Model 61, Stepping 4
Flags:
FPU (Floating-point unit on-chip)
VME (Virtual mode extension)
DE (Debugging extension)
PSE (Page size extension)
TSC (Time stamp counter)
MSR (Model specific registers)
PAE (Physical address extension)
MCE (Machine check exception)
CX8 (CMPXCHG8 instruction supported)
APIC (On-chip APIC hardware supported)
SEP (Fast system call)
MTRR (Memory type range registers)
PGE (Page global enable)
MCA (Machine check architecture)
CMOV (Conditional move instruction supported)
PAT (Page attribute table)
PSE-36 (36-bit page size extension)
CLFSH (CLFLUSH instruction supported)
DS (Debug store)
ACPI (ACPI supported)
MMX (MMX technology supported)
FXSR (FXSAVE and FXSTOR instructions supported)
SSE (Streaming SIMD extensions)
SSE2 (Streaming SIMD extensions 2)
SS (Self-snoop)
HTT (Multi-threading)
TM (Thermal monitor supported)
PBE (Pending break enabled)
Version: Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz
Voltage: 1.0 V
External Clock: 100 MHz
Max Speed: 2700 MHz
Current Speed: 2200 MHz
Status: Populated, Enabled
Upgrade: Socket BGA1168
L1 Cache Handle: 0x0005
L2 Cache Handle: 0x0006
L3 Cache Handle: 0x0007
Serial Number: None
Asset Tag: None
Part Number: None
Core Count: 2
Core Enabled: 2
Thread Count: 4
Characteristics:
64-bit capable
Multi-Core
Hardware Thread
Execute Protection
Enhanced Virtualization
Power/Performance Control
Handle 0x0005, DMI type 7, 19 bytes
Cache Information
Socket Designation: L1 Cache
Configuration: Enabled, Not Socketed, Level 1
Operational Mode: Write Back
Location: Internal
Installed Size: 32 kB
Maximum Size: 32 kB
Supported SRAM Types:
Synchronous
Installed SRAM Type: Synchronous
Speed: Unknown
Error Correction Type: Parity
System Type: Instruction
Associativity: 8-way Set-associative
Handle 0x0006, DMI type 7, 19 bytes
Cache Information
Socket Designation: L2 Cache
Configuration: Enabled, Not Socketed, Level 2
Operational Mode: Write Back
Location: Internal
Installed Size: 256 kB
Maximum Size: 256 kB
Supported SRAM Types:
Synchronous
Installed SRAM Type: Synchronous
Speed: Unknown
Error Correction Type: Single-bit ECC
System Type: Unified
Associativity: 8-way Set-associative
Handle 0x0007, DMI type 7, 19 bytes
Cache Information
Socket Designation: L3 Cache
Configuration: Enabled, Not Socketed, Level 3
Operational Mode: Write Back
Location: Internal
Installed Size: 3 MB
Maximum Size: 3 MB
Supported SRAM Types:
Synchronous
Installed SRAM Type: Synchronous
Speed: Unknown
Error Correction Type: Multi-bit ECC
System Type: Unified
Associativity: 12-way Set-associative
Handle 0x0008, DMI type 16, 23 bytes
Physical Memory Array
Location: System Board Or Motherboard
Use: System Memory
Error Correction Type: None
Maximum Capacity: 16 GB
Error Information Handle: Not Provided
Number Of Devices: 2
Handle 0x0009, DMI type 17, 34 bytes
Memory Device
Array Handle: 0x0008
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 8 GB
Form Factor: SODIMM
Set: None
Locator: ChannelA-DIMM0
Bank Locator: BANK 0
Type: DDR3
Type Detail: Synchronous
Speed: 1600 MT/s
Manufacturer: Micron
Serial Number: 65002216
Asset Tag: None
Part Number: 16KTF1G64HZ-1G6E2
Rank: Unknown
Configured Memory Speed: 1600 MT/s
Handle 0x000A, DMI type 17, 34 bytes
Memory Device
Array Handle: 0x0008
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 8 GB
Form Factor: SODIMM
Set: None
Locator: ChannelB-DIMM0
Bank Locator: BANK 2
Type: DDR3
Type Detail: Synchronous
Speed: 1600 MT/s
Manufacturer: Micron
Serial Number: 65002216
Asset Tag: None
Part Number: 16KTF1G64HZ-1G6E2
Rank: Unknown
Configured Memory Speed: 1600 MT/s
Handle 0x000B, DMI type 19, 31 bytes
Memory Array Mapped Address
Starting Address: 0x00000000000
Ending Address: 0x003FFFFFFFF
Range Size: 16 GB
Physical Array Handle: 0x0008
Partition Width: 2
Handle 0x000C, DMI type 129, 8 bytes
OEM-specific Type
Header and Data:
81 08 0C 00 01 01 02 01
Strings:
Intel_ASF
Intel_ASF_001
Handle 0x000D, DMI type 130, 20 bytes
OEM-specific Type
Header and Data:
82 14 0D 00 24 41 4D 54 00 00 00 00 01 A5 FF 03
01 00 00 00
Handle 0x000E, DMI type 131, 64 bytes
OEM-specific Type
Header and Data:
83 40 0E 00 31 00 00 00 0A 00 00 00 00 00 07 00
F8 00 C3 9C 00 00 00 00 21 00 00 00 00 00 0A 00
E8 03 26 00 00 00 00 00 C8 00 A3 15 00 00 00 00
00 00 00 00 22 00 00 00 76 50 72 6F 00 00 00 00
Handle 0x0010, DMI type 1, 27 bytes
System Information
Manufacturer: LENOVO
Product Name: 20BV0005US
Version: ThinkPad T450
Serial Number: 5ER14LNUMB3R
UUID: deadbeef-7ac0-b0a7-f01d-c0ffeeb1ade5
Wake-up Type: Power Switch
SKU Number: LENOVO_MT_20BV_BU_Think_FM_ThinkPad T450
Family: ThinkPad T450
Handle 0x0011, DMI type 2, 15 bytes
Base Board Information
Manufacturer: LENOVO
Product Name: 20BV0005US
Version: SDK0E50510 WIN
Serial Number: 5ER14LNUMB3R
Asset Tag: Not Available
Features:
Board is a hosting board
Board is replaceable
Location In Chassis: Not Available
Chassis Handle: 0x0000
Type: Motherboard
Contained Object Handles: 0
Handle 0x0012, DMI type 3, 22 bytes
Chassis Information
Manufacturer: LENOVO
Type: Notebook
Lock: Not Present
Version: None
Serial Number: 5ER14LNUMB3R
Asset Tag: No Asset Information
Boot-up State: Unknown
Power Supply State: Unknown
Thermal State: Unknown
Security Status: Unknown
OEM Information: 0x00000000
Height: Unspecified
Number Of Power Cords: Unspecified
Contained Elements: 0
SKU Number: Not Specified
Handle 0x0013, DMI type 8, 9 bytes
Port Connector Information
Internal Reference Designator: Not Available
Internal Connector Type: None
External Reference Designator: USB 1
External Connector Type: Access Bus (USB)
Port Type: USB
Handle 0x0014, DMI type 8, 9 bytes
Port Connector Information
Internal Reference Designator: Not Available
Internal Connector Type: None
External Reference Designator: USB 2
External Connector Type: Access Bus (USB)
Port Type: USB
Handle 0x0015, DMI type 126, 9 bytes
Inactive
Handle 0x0016, DMI type 126, 9 bytes
Inactive
Handle 0x0017, DMI type 126, 9 bytes
Inactive
Handle 0x0018, DMI type 126, 9 bytes
Inactive
Handle 0x0019, DMI type 126, 9 bytes
Inactive
Handle 0x001A, DMI type 126, 9 bytes
Inactive
Handle 0x001B, DMI type 8, 9 bytes
Port Connector Information
Internal Reference Designator: Not Available
Internal Connector Type: None
External Reference Designator: Ethernet
External Connector Type: RJ-45
Port Type: Network Port
Handle 0x001C, DMI type 8, 9 bytes
Port Connector Information
Internal Reference Designator: Not Available
Internal Connector Type: None
External Reference Designator: External Monitor
External Connector Type: DB-15 female
Port Type: Video Port
Handle 0x001D, DMI type 8, 9 bytes
Port Connector Information
Internal Reference Designator: Not Available
Internal Connector Type: None
External Reference Designator: Mini DisplayPort
External Connector Type: Other
Port Type: Video Port
Handle 0x001E, DMI type 126, 9 bytes
Inactive
Handle 0x001F, DMI type 126, 9 bytes
Inactive
Handle 0x0020, DMI type 8, 9 bytes
Port Connector Information
Internal Reference Designator: Not Available
Internal Connector Type: None
External Reference Designator: Headphone/Microphone Combo Jack1
External Connector Type: Mini Jack (headphones)
Port Type: Audio Port
Handle 0x0021, DMI type 126, 9 bytes
Inactive
Handle 0x0022, DMI type 9, 17 bytes
System Slot Information
Designation: Media Card Slot
Type: Other
Current Usage: Available
Length: Other
Characteristics:
Hot-plug devices are supported
Bus Address: 0000:00:00.0
Handle 0x0023, DMI type 126, 17 bytes
Inactive
Handle 0x0024, DMI type 9, 17 bytes
System Slot Information
Designation: SimCard Slot
Type: Other
Current Usage: Available
Length: Other
Characteristics: None
Bus Address: 0000:00:00.0
Handle 0x0025, DMI type 12, 5 bytes
System Configuration Options
Handle 0x0026, DMI type 13, 22 bytes
BIOS Language Information
Language Description Format: Abbreviated
Installable Languages: 10
en-US
en-IN
en-NG
de-AT
ru-RU
zh-CN
zh-HK
zh-TW
es-ES
pt-BR
Currently Installed Language: en-US
Handle 0x0027, DMI type 22, 26 bytes
Portable Battery
Location: Front
Manufacturer: M4NUF4KTUR3R
Name: N4M3
Design Capacity: 23480 mWh
Design Voltage: 11400 mV
SBDS Version: 03.01
Maximum Error: Unknown
SBDS Serial Number: 5ER14LNUMB3R
SBDS Manufacture Date: 1970-01-01
SBDS Chemistry: LION
OEM-specific Information: 0x00000000
Handle 0x0028, DMI type 22, 26 bytes
Portable Battery
Location: Rear
Manufacturer: M4NUF4KTUR3R
Name: N4M3
Design Capacity: 57720 mWh
Design Voltage: 11100 mV
SBDS Version: 03.01
Maximum Error: Unknown
SBDS Serial Number: 5ER14LNUMB3R
SBDS Manufacture Date: 1970-01-01
SBDS Chemistry: LION
OEM-specific Information: 0x00000000
Handle 0x0029, DMI type 18, 23 bytes
32-bit Memory Error Information
Type: OK
Granularity: Unknown
Operation: Unknown
Vendor Syndrome: Unknown
Memory Array Address: Unknown
Device Address: Unknown
Resolution: Unknown
Handle 0x002A, DMI type 21, 7 bytes
Built-in Pointing Device
Type: Track Point
Interface: PS/2
Buttons: 3
Handle 0x002B, DMI type 21, 7 bytes
Built-in Pointing Device
Type: Touch Pad
Interface: PS/2
Buttons: 2
Handle 0x002C, DMI type 131, 22 bytes
ThinkVantage Technologies
Version: 1
Diagnostics: No
Handle 0x002D, DMI type 136, 6 bytes
OEM-specific Type
Header and Data:
13 37 13 37 13 37
Handle 0x002E, DMI type 134, 16 bytes
OEM-specific Type
Header and Data:
13 37 13 37 13 37 13 37 13 37 13 37 13 37 13 37 13 37
Strings:
TPM INFO
System Reserved
Handle 0x002F, DMI type 133, 5 bytes
OEM-specific Type
Header and Data:
13 37 13 37 00
Strings:
ARBITRARYSTRING
Handle 0x0030, DMI type 135, 83 bytes
OEM-specific Type
Header and Data:
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00
Handle 0x0031, DMI type 0, 24 bytes
BIOS Information
Vendor: LENOVO
Version: VERSION_NUMBER (<REDACTED_VERSION_NUMBER>)
Release Date: 01/01/1970
Address: 0xE0000
Runtime Size: 128 kB
ROM Size: 16 MB
Characteristics:
PCI is supported
PNP is supported
BIOS is upgradeable
BIOS shadowing is allowed
Boot from CD is supported
Selectable boot is supported
ACPI is supported
USB legacy is supported
BIOS boot specification is supported
Targeted content distribution is supported
UEFI is supported
BIOS Revision: VERSION
Firmware Revision: VERSION
Handle 0x0032, DMI type 15, 31 bytes
System Event Log
Area Length: 66 bytes
Header Start Offset: 0x0000
Header Length: 16 bytes
Data Start Offset: 0x0000
Access Method: General-purpose non-volatile data functions
Access Address: 0x0000
Status: Valid, Not Full
Change Token: 0x00000000
Header Format: Type 1
Supported Log Type Descriptors: 4
Descriptor 1: POST error
Data Format 1: POST results bitmap
Descriptor 2: PCI system error
Data Format 2: None
Descriptor 3: System reconfigured
Data Format 3: None
Descriptor 4: Log area reset/cleared
Data Format 4: None
Handle 0x0033, DMI type 140, 67 bytes
OEM-specific Type
Header and Data:
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00
Handle 0x0034, DMI type 140, 19 bytes
OEM-specific Type
Header and Data:
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00
Handle 0x0035, DMI type 135, 18 bytes
OEM-specific Type
Header and Data:
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00
Handle 0x0036, DMI type 140, 19 bytes
OEM-specific Type
Header and Data:
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00
Handle 0x0037, DMI type 140, 23 bytes
OEM-specific Type
Header and Data:
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00
Handle 0x0038, DMI type 24, 5 bytes
Hardware Security
Power-On Password Status: REDACTED
Keyboard Password Status: REDACTED
Administrator Password Status: REDACTED
Front Panel Reset Status: REDACTED
Handle 0x0039, DMI type 132, 7 bytes
OEM-specific Type
Header and Data:
00 00 00 00 00 00 00
Handle 0x003A, DMI type 140, 15 bytes
ThinkPad Embedded Controller Program
Version ID: VERSION
Release Date: 01/01/1970
Handle 0x003B, DMI type 140, 43 bytes
OEM-specific Type
Header and Data:
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00
Handle 0x003C, DMI type 221, 68 bytes
OEM-specific Type
Header and Data:
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 0 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00
Strings:
Reference Code - PCH - Lynxpoint
PCH-CRID Status
Enabled
PCH-CRID Original Value
PCH-CRID New Value
OPROM - RST - RAID
LPTLp Bx Hsio Version
LPTH Cx Hsio Version
PCH9S A0 Hsio Version
WPTLp B0 Hsio Version
Handle 0x003D, DMI type 221, 26 bytes
OEM-specific Type
Header and Data:
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
Strings:
Reference Code - ME 10.0
MEBx version
ME Firmware Version
VERSION
Handle 0x003E, DMI type 221, 26 bytes
OEM-specific Type
Header and Data:
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
Strings:
Reference Code - CPU
uCode Version
TXT ACM version
Handle 0x003F, DMI type 221, 54 bytes
OEM-specific Type
Header and Data:
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00
Strings:
Reference Code - SA - System Agent
Reference Code - MRC
SA - PCIe Version
SA-CRID Status
REDACTED
SA-CRID Original Value
SA-CRID New Value
OPROM - VBIOS
Handle 0x0040, DMI type 221, 12 bytes
OEM-specific Type
Header and Data:
00 00 00 00 00 00 00 00 00 00 00 00
Strings:
Reference Code - Intel Rapid Start
Handle 0x0041, DMI type 14, 20 bytes
Group Associations
Name: Firmware Version Info
Items: 5
0x0000 (OEM-specific)
0x0000 (OEM-specific)
0x0000 (OEM-specific)
0x0000 (OEM-specific)
0x0000 (OEM-specific)
Handle 0xFEFF, DMI type 127, 4 bytes
End Of Table
Why would someone ask for this?
This information is useful when troubleshooting issues related to your BIOS, your ACPI tables, or anything requiring deeper knowledge of the circumstances of your hardware configuration, such as what system is managing what subsystem.
What can I redact?
Serial numbers are personally identifiable information, and are NEVER needed to assist in troubleshooting, so they should ALWAYS be redacted.
It is extremely rare (and almost unheard of) that anyone would ever require the full output of this command to solve your issue, so you would usually only be asked for a small subset of this output (e.g. only the sections related to the USB controllers, the CPU, the BIOS, the SATA controllers, etc.).
If your threat model deems it necessary, in some cases, it may also be acceptable to redact the hexadecimal dumps of certain sections, as this may inadvertently divulge the revision version or fingerprint of a particular system component present in your machine. Depending on which component it is, this could reveal to someone that your machine may be vulnerable to a particular type of exploit.
This may include:
- Any section starting with
Header and Data:
- Any line starting with
ID:
- Any section starting with
OEM-Specific Type
- Any line starting with
UUID:
- Anything else that you believe may reveal an attack vector to anyone
What do I need to leave in the post?
Generally it is important to know whether certain functions are enabled or disabled.
Anything else I should know?
As you can see from the sample output, this command lists almost everything about your hardware.
If you are going to post the output of this command:
- Make sure you proofread it VERY THOROUGHLY
- Remove any serial numbers, and they are never helpful in troubleshooting issues.
- Make sure you clarify if this information is absolutely necessary, because there are almost always other methods to diagnose your issue.
The output of qvm-ls
What is this?
This command, when run in dom0
(or any admin qube) will list all the qubes that exist on your machine, as well as their names, what template they are based on, whether they are disposable or not, what state they are in (running, halted, paused).
What does the output look like?
qvm-ls
Output of Command
NAME STATE CLASS LABEL TEMPLATE NETVM
anaconda-devel Halted AppVM orange fedora-41-xfce sys-firewall
anaconda-installer-devel Halted AppVM orange fedora-41-xfce sys-firewall
anaconda-tester Halted StandaloneVM purple - sys-firewall
anon-whonix Halted AppVM red whonix-workstation-17 sys-whonix
archlinux Halted TemplateVM black - sys-firewall
blackarch Halted TemplateVM black - sys-firewall
centos-stream-8-minimal Halted TemplateVM black - sys-firewall
centos-stream-8-xfce Halted TemplateVM black - sys-firewall
centos-stream-9-minimal Halted TemplateVM black - sys-firewall
centos-stream-9-xfce Halted TemplateVM black - sys-firewall
debian-12 Halted TemplateVM black - -
debian-12-minimal Halted TemplateVM black - -
debian-12-xfce Halted TemplateVM black - -
default-mgmt-dvm Halted AppVM black fedora-41-xfce -
REDACTED Halted AppVM red fedora-41-xfce sys-firewall
dom0 Running AdminVM black - -
duo-buildroot-sdk Halted AppVM orange debian-12 sys-firewall
dvm-fedora Halted AppVM red fedora-40 sys-firewall
dvm-fedora-minimal Halted AppVM red fedora-40-minimal sys-firewall
dvm-qubes-builder Halted AppVM red tpl-qubes-builder sys-firewall
fedora-37-qubes-builder Halted TemplateVM black - -
fedora-39-dvm Halted AppVM red fedora-40 sys-firewall
fedora-39-qubes-builder Halted TemplateVM black - -
fedora-40 Halted TemplateVM black - -
fedora-40-minimal Halted TemplateVM black - -
fedora-40-xfce Halted TemplateVM black - -
fedora-41 Halted TemplateVM black - -
fedora-41-xfce Halted TemplateVM black - -
gentoo-dispvm Halted AppVM red gentoo-minimal sys-firewall
gentoo-minimal Halted TemplateVM black - sys-firewall
kali-core Halted TemplateVM black - -
kali-core-trixie Halted TemplateVM black - -
pentesting Halted AppVM blue kali-core sys-firewall
personal Running AppVM yellow fedora-41-xfce sys-firewall
qubes-builder Halted AppVM gray tpl-qubes-builder sys-firewall
qubes-builder-dvm Halted AppVM red fedora-40 sys-firewall
qubes-installer-tester Halted StandaloneVM purple - sys-firewall
qubes-remote-support-helper Halted AppVM red whonix-workstation-17 sys-whonix
samsun Halted AppVM red debian-12 sys-firewall
sys-audio Running AppVM black fedora-40-xfce sys-firewall
sys-firewall Running DispVM green fedora-39-dvm sys-net
sys-net Running DispVM red fedora-39-dvm -
sys-usb Halted DispVM red fedora-39-dvm -
sys-whonix Running AppVM black whonix-gateway-17 sys-firewall
REDACTED Halted AppVM red kali-core sys-firewall
tpl-qubes-builder Halted TemplateVM black - -
university Running AppVM purple fedora-40 sys-firewall
untrusted Halted AppVM red fedora-41-xfce sys-firewall
vault Halted AppVM black fedora-41-xfce -
whonix-gateway-17 Halted TemplateVM black - -
whonix-workstation-17 Halted TemplateVM black - -
whonix-ws-16-dvm Halted AppVM red whonix-workstation-17 sys-whonix
whonix-ws-17-dvm Halted AppVM red whonix-workstation-17 sys-whonix
windows-sacrificial Halted StandaloneVM gray - sys-whonix
work Halted AppVM blue fedora-40 sys-firewall
work-qubesos Halted DispVM red qubes-builder-dvm sys-firewall
Why would someone ask for this?
Requiring this to troubleshoot anything is extremely rare, but in certain niche cases, it can be useful to deduce whether there is a misconfiguration in your qubes, causing them to not start properly, or crash.
What do I need to redact?
In almost all cases, the names of your qubes are never helpful in troubleshooting, so they should almost always be redacted.
Similarly, the state the qubes are in is almost always irrelevant to the issue you are facing, and should be redacted as well.
What do I need to leave in the post?
There are times when the template the qube is based on is helpful, and should be left in. However, if you have created a custom template (and thus, likely given the template a custom name), then it is recommended that the name of the template be replaced with a descriptor of the makeup of that template.
For example, “debian-12-xfce with extra packages installed”, or “template based off gentoo-minimal”.
Anything else I should know?
If the qube names are generic names, like sys-net
, sys-firewall
, sys-whonix
, sys-usb
, or anything else that might be common among almost all Qubes OS machines, there is not really any danger to that being left in.
However, if you have chosen to give your qubes custom names, then they should almost always be redacted.
The output of dmesg
What is this?
This command will show the events logged by the Linux kernel since you first powered on your machine.
What does the output look like?
Entries are generally presented like this:
[Time since power-on] <kernel-module>: MESSAGE
Why would someone ask for this?
When there are hardware issues, the output of dmesg
can be incredibly valueable in determining what specifically is causing the hardware not to function as expected.
The events logged in dmesg
will clarify:
- Which kernel module is being used when the error is thrown
- What reason the kernel module is being given that the error is thrown
- If there is a core dump, it will show quite a lot of information that is helpful for developers to fix bugs in their code
- A core dump is essentially the Linux kernel saying “I can’t figure out what went wrong, and I don’t know what to do, so I’m just going to kill it all. Here’s the instruction I tried to execute that failed, and here’s everything in the memory at the time I tried to run it. Developers, you figure out what happened…”
It can contain very detailed information that it often exactly what people need to be able to help you with your issues.
What do I need to redact?
Well, for starters, nobody will ever need the entire log.
Most times, they will be interested in seeing what a particular module is doing. An example of this is when a wifi card does not load correctly, they will likely be interested in what excuse the corresponding kernel module gave in dmesg
for the failure, such as not being able to load appropriate drivers/firmware, etc.
Any serial numbers are almost always perfectly fine to redact.
There are also times when identifiers such as memory addresses and version numbers are also able to be redacted, without hindering the ability to help you solve your issue.
What do I need to leave in the post?
Generally, everything apart from what is mentioned above should be left in your post, unless you are compelled to redact it for whatever reason.
If you redact too much, you will likely be politely asked for the redacted information, along with an explanation as to why it is needed to solve your issue.
Anything else I should know?
If something doesn’t feel right, feel free to politely ask why that information is needed. If they are legitimately trying to assist you, then you will likely get a response that does not contain a sense of urgency, systematically explains what they need, why they need it, what you could also supply in lieu of that information (if you are genuinely uncomfortable divulging it), and in most cases, an educated guess as to what your issue may be, and how giving them this information will help them diagnose your issue more accurately.
If you do not get all of that, then by all means, feel free to refuse.
WAN IP Addresses
What is this?
This is similar to an address on an envelope that people who run networks (ISPs, your workplace, your home wifi, etc.) use to get data packets to the intended recipient, and back to you when necessary.
Similarly to how a postal address of your house does not contain any information about how many rooms your house has, what colour paint you have on the outside, whether you have a second storey, etc., an IP address is NOT a fingerprint of your device.
It is merely a way for others to be able to tell whoever is running the network you’re on how to get messages to you.
Also, this address is almost always allocated to you by the network operator (eg. ISP).
What does it look like?
IPv4 address:
Four numberical value between 0 and 255, separated by a dot (.).
XXX.XXX.XXX.XXX
IPv6 address:
Eight numerical values between 0 and 65,535 (2 to the power of 16), separated by a colon (:).
xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
Why would someone ask for this?
There is no legitimate reason anyone troubleshooting a Qubes OS issue would ever need to know this.
What do I need to redact?
Any and all IP addresses, without the only exceptions being:
127.0.0.0/8
(this means any IPv4 address with127
in the first octet, followed by any combination of numbers in the remaining octets, with the most commonly-seen being127.0.0.1
) or::1
(IPv6), which essentially means “myself”, every single networked device will have this as their loopback address.- Network interfaces will use this to check that they are working by sending messages to themselves.
Of course, if you would feel safer if you redacted loopback addresses, then feel free to do so.
Often times the type of IP address (WAN, LAN, loopback, TailScale, Link-local, broadcast, etc.) can be deduced when redacted from the context of the rest of the post, which is usually harmless.
What do I need to leave in the post?
It’s fine to replace IP addresses with markers that denote an IP address has been redacted, such as xxx.xxx.xxx.xxx
, as long as the numbers have been removed.
Anything else I should know?
If you accidentally do publish your IP address, it is recommended that you check your WAN IP for any open ports you might have, and implement appropriate firewall protections. You may also want to request a new IPv4 WAN address and/or IPv6 prefix delegation from your ISP.
If you do not understand what any of this means, you should contact your ISP immediately and tell them what happened (assuming you trust them). They will arrange for you to get allocated a different IP address.
The output of filepaths
What is this?
This is a bunch of words, separated by forward slashes (/
) that show where a file or directory is located.
Forgive the odd explanation, but it’s something I’ve never actually had to explain before…
What does this look like?
Absolute paths are the entire list of directories to go through to get the file, all the way from the root directory (/
).
/path/to/file/
/home/user/Pictures/secret_rendevouz_with_hot_supermodel/saucy_pics/naked.jpg
/var/log/journal.log
/usr/bin/ls
/I/think/you/get/the/idea.now
Relative paths are the list of directories to go through from the current directory.
./this/is/a/relative/path
../this_folder/this_file
../../../../../../proc/self/environ #If your web application allows this, you are a BAD coder and should be ashamed!
Why would someone ask for this?
Sometimes, when programs/scripts are run, they expect certain files to be in certain places, so they can do things to them.
Programs will throw errors when they are told that certain things are to be found in specific places, and they aren’t there when they go looking for them.
They’re like the most difficult employees ever…
“You told me the file was in this folder, but it wasn’t, so I took the whole day off…”
So if a file cannot be found, possible solutions to the issue are:
- Move the file to the location the program expects to find it
- Change the program to tell it to look elsewhere for the file
This occurs a lot when programs have configuration files that don’t make sense, and are often easily fixed, as long as the location of required files are known.
What can I safely redact?
Any usernames should be redacted and replaced with something that shows that it’s your home directory, like <my-home-directory>
.
Any other file or directory names that you believe might reveal information about you can also be redacted and replaced in a similar fashion. Just remember to replace it with a definition of the function of the file or directory.
For example:
/home/lapcheong/monero_sh*t/live_malware/xmrig/crypto_stealer.c
can be redacted to:
/home/<my-home-directory>/<hobbies>/<misc>/<program-folder>/<code-not-working>.c
OR
./<program-folder>/<file-A>.c
Essentially you’re doing the equivalent of algebraic substitution for filenames and directory names. This redaction works as long as you refer to the files and directories in the same way the entire time.
Don’t confuse people with your redactions…
What do I need to leave in?
You absolutely need to leave in the number of forward slashes (/
), as this shows how many directories in the file is actually located.
Anything else I should know?
When troubleshooting a particular program, full paths are almost always not needed.
As long as you specify what program is throwing the error, filepaths can usually be worked out by examining the codebase of the particular program, and deducing relative filepaths from there.
It is often not necessary to know the names of the directories, but rather which specific directory it is in, and how many levels in it is. A similar concept exists in algebra. It isn’t necessary to know what x
is, as long as you know how it relates to the rest of the equation.
TITLE
What is this?
What does this look like?
Why would someone ask for this?
What can I safely redact?
What do I need to leave in?
Anything else I should know?
TITLE
What is this?
What does this look like?
Why would someone ask for this?
What can I safely redact?
What do I need to leave in?
Anything else I should know?
Template copy-paste (for anyone wishing to add to this guide)
What is this?
Lorem ipsum
What does this look like?
Labor omina vincit
Why would someone ask for this?
Acta non verba
What can I safely redact?
Errare humanum est
What do I need to leave in?
In vino veritas
Anything else I should know?
Cogito ergo sum