我是 acl 的新手,所以这对我来说是黑魔法。但我拥有的是一台我想与之交谈的相机。
所以我得到了一台网络启动的 Debian 机器:
ulf@term13:~(0)$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 6.0.10 (squeeze)
Release: 6.0.10
Codename: squeeze
我在那台机器上安装了一个相机:
ulf@term13:~(0)$ lsusb | grep Nikon
Bus 001 Device 092: ID 04b0:0428 Nikon Corp.
ulf@term13:~(0)$ ls -alF /dev/bus/usb/001/092
crw-rw-r--+ 1 root root 189, 91 25 sep 10.05 /dev/bus/usb/001/092
请注意+
权限字符串末尾的crw-rw-r--+
。这表明有一个前交叉韧带在这里工作:
ulf@term13:~(1)$ getfacl /dev/bus/usb/001/092
getfacl: Removing leading '/' from absolute path names
# file: dev/bus/usb/001/092
# owner: root
# group: root
user::rw-
user:knut:rw-
group::rw-
mask::rw-
other::r--
显然用户 knutrw
在这里拥有额外的权限。但他是怎么得到它们的呢?
我可以使用 为我的用户设置相同的权限setfacl
。但重新连接相机后,任何类似的设置都不会出现。打开和关闭相机后,它实际上得到了已安装在另一台设备上:
ulf@term13:~(0)$ lsusb | grep Nikon
Bus 001 Device 093: ID 04b0:0428 Nikon Corp.
但新 093 设备的权限与旧 092 相同(没有我添加到 092 的任何额外权限)。
是否有一些配置文件?这是由不再存在的系统管理员设置的,因此我需要自己修复它。