我有一个文件夹,我非常想允许这台机器上的其他用户访问。我用它mt-daapd
来向网络提供音乐,所以我想让用户mt-daapd
访问我的音乐目录/home/rfkrocktk/Music
。主用户rfkrocktk
显然是。我尝试在目录上正确设置我的所有权限,但用户mt-daapd
无法访问文件。
我创建了一个名为的组media-users
,并将rfkrocktk
和添加到mt-daapd
其中,以便授予mt-daapd
简单读取该目录和子目录中所有文件的权限。
如果我id
在每个用户上运行,将显示以下内容:
$ id rfkrocktk
> uid=1000(rfkrocktk) gid=1000(rfkrocktk) groups=1000(rfkrocktk),4(adm),20(dialout),24(cdrom),29(audio),46(plugdev),104(lpadmin),115(admin),120(sambashare),124(vboxusers),1001(jupiter),2002(media-users)
$ id mt-daapd
> uid=123(mt-daapd) gid=65534(nogroup) groups=65534(nogroup),2002(media-users)
看起来这两个用户确实都是该media-users
群组的一部分,那么可能出了什么问题呢?
如果我ls -l
在实际的音乐目录上运行以查看其权限,则输出如下:
drwxr-Sr-- 201 rfkrocktk media-users 12288 2011-01-13 12:26 Music
如果我ls -l
在音乐目录上运行来获取其子目录,则输出如下:
drwxr-Sr-- 3 rfkrocktk media-users 4096 2010-12-20 15:31 2DBoy
drwxr-Sr-- 3 rfkrocktk media-users 4096 2010-05-25 12:50 ABBA
drwxr-Sr-- 3 rfkrocktk media-users 4096 2009-12-28 15:19 Access Denied
drwxr-Sr-- 10 rfkrocktk media-users 4096 2009-12-28 15:19 AC-DC
drwxr-Sr-- 3 rfkrocktk media-users 4096 2009-12-28 15:19 Aerosmith
drwxr-Sr-- 3 rfkrocktk media-users 4096 2010-06-04 10:45 A Flock of Seagulls
drwxr-Sr-- 4 rfkrocktk media-users 4096 2010-05-28 18:13 Alestorm
drwxr-Sr-- 3 rfkrocktk media-users 4096 2010-06-22 23:29 Amon Amarth
drwxr-Sr-- 5 rfkrocktk media-users 4096 2009-12-28 15:19 Anberlin
...
从这一点来看,我似乎应该能够从 访问文件夹mt-daapd
,但我不能。运行sudo -i -u mt-daapd ls -l /home/rfkrocktk/Music
没有任何显示,这表明无论出于何种原因,mt-daapd
我都无权读取该文件夹。我做错了什么?
编辑
我遇到的一个问题与“S”标志有关。它必须是“s”,这样该组的执行权限也存在于文件和文件夹上。此外,调用是sudo -i -u mt-daapd ls -l /home/rfkrocktk/Music
错误的。应该是sudo -u mt-daapd ls -l /home/rfkrocktk/Music
。显然,该-i
参数会终止标准输出。
答案1
您缺少该目录的执行权限。chmod g+x dir。
其他用户也有读取权限,但不能执行。如果您 chmod o+g dir,则无需与组打交道,因为每个人都可以读取它。