为什么以及何时`lsblk` 需要`sudo`?

mur*_*uru 5 permissions util-linux

在我最新的 Arch Linux 上,lsblk如果没有sudo

$ lsblk -o NAME,FSTYPE
NAME   FSTYPE
sda    
??sda1 ext4
??sda2 ext4
??sda3 swap
??sda4 
??sda5 ext4
sr0    
$ lsblk --version     
lsblk from util-linux 2.26.2
Run Code Online (Sandbox Code Playgroud)

在我的 Ubuntu 14.04 上,获取文件系统类型需要sudo

$ lsblk -o NAME,FSTYPE
NAME                    FSTYPE
sda                     
??sda1                  
??sda2                  
??sda3                  
??sda4                  
??sda5                  
??sda6                  
? ??lvmg-homelvm (dm-0) 
??sda7                  
sdb                     
??sdb1                  
  ??lvmg-homelvm (dm-0) 
$ sudo lsblk -o NAME,FSTYPE
NAME                    FSTYPE
sda                     
??sda1                  ntfs
??sda2                  ntfs
??sda3                  ext4
??sda4                  
??sda5                  btrfs
??sda6                  LVM2_member
? ??lvmg-homelvm (dm-0) btrfs
??sda7                  swap
sdb                     
??sdb1                  LVM2_member
  ??lvmg-homelvm (dm-0) btrfs
$ apt-cache policy util-linux
util-linux:
  Installed: 2.20.1-5.1ubuntu20.4
  Candidate: 2.20.1-5.1ubuntu20.4
Run Code Online (Sandbox Code Playgroud)

为什么?哪些其他列需要sudo


附加信息:

在拱门上:

$ ls -l /dev/sd*
brw-rw---- 1 root disk 8, 0 Jun 19 16:19 /dev/sda
brw-rw---- 1 root disk 8, 1 Jun 19 16:19 /dev/sda1
brw-rw---- 1 root disk 8, 2 Jun 19 16:19 /dev/sda2
brw-rw---- 1 root disk 8, 3 Jun 19 16:19 /dev/sda3
brw-rw---- 1 root disk 8, 4 Jun 19 16:19 /dev/sda4
brw-rw---- 1 root disk 8, 5 Jun 19 16:19 /dev/sda5
$ groups
wheel locate systemd-journal networkmanager fuse muru
Run Code Online (Sandbox Code Playgroud)

(我的主要组是muru,不是wheel,尽管订单可能暗示了什么。)

在 Ubuntu 上:

$ ls -l /dev/sd*
brw-rw---- 1 root disk 8,  0 Jun 12 17:05 /dev/sda
brw-rw---- 1 root disk 8,  1 Jun 12 17:05 /dev/sda1
brw-rw---- 1 root disk 8,  2 Jun 12 17:05 /dev/sda2
brw-rw---- 1 root disk 8,  3 Jun 12 17:05 /dev/sda3
brw-rw---- 1 root disk 8,  4 Jun 12 17:05 /dev/sda4
brw-rw---- 1 root disk 8,  5 Jun 12 17:05 /dev/sda5
brw-rw---- 1 root disk 8,  6 Jun 12 17:05 /dev/sda6
brw-rw---- 1 root disk 8,  7 Jun 12 17:05 /dev/sda7
brw-rw---- 1 root disk 8, 16 Jun 12 17:05 /dev/sdb
brw-rw---- 1 root disk 8, 17 Jun 12 17:05 /dev/sdb1
$ groups
muru adm cdrom sudo dip plugdev lpadmin sambashare debian-tor libvirtd autopilot
Run Code Online (Sandbox Code Playgroud)

在拱门上:

$ stat -c "%A %U %G" `which lsblk`
-rwxr-xr-x root root
Run Code Online (Sandbox Code Playgroud)

在 Ubuntu 上:

$ stat -c "%A %U %G" `which lsblk`
-rwxr-xr-x root root
Run Code Online (Sandbox Code Playgroud)

Jef*_*ler 2

util-linux 在 2.25.2-4 版本中的行为发生了lsblk变化

util-linux (2.25.2-4ubuntu2) 生动;紧急程度=低

  • 添加缺少的 libudev-dev 构建依赖项。这使得 lsblk 的“LABEL”信息可供非 root 用户使用

(关闭:#776905)

——迈克尔·沃格特 2015 年 2 月 3 日星期二 09:06:46 +0100

@muru 做了额外的测试以确定FSTYPEUUID、 和LABEL是 util-linux 版本 2.20.1-5 中唯一需要 sudo 的字段。