我刚刚创建了一个新用户,我想授予其访问某个文件夹的权限。
我已经做好了:
chmod -R 777 ./p
这就是结果
lisa@linux:/media$ ls -halt
drwxr-xr-x 27 root root 4,0K dic 11 11:57 ..
drwxrwxrwx+ 3 pierpaolo utenti 4,0K dic 8 23:48 p
drwxr-xr-x 3 root root 4,0K set 10 12:20 .
lrwxrwxrwx 1 root root 45 ago 5 01:22 .directory -> /etc/kubuntu-default-settings/directory-media
但我仍然无法进入文件夹(权限被拒绝)。有没有什么办法可以解决这个问题或调试它?
编辑:
getacl 给出:
# file: p
# owner: pierpaolo
# group: utenti
user::rwx
user:pierpaolo:r-x
group::---
mask::rwx
other::rwx
编辑:我希望新用户访问的文件夹是第二个硬盘,该硬盘已使用以下命令安装在 /etc/fstab 中:
UUID=FEB222A8B222657D /media/p/Seagate ntfs-3g defaults,windows_names,locale=it_IT.UTF-8 0 0
答案1
发生这种情况的原因是,在目录树中有一个目录您没有执行权限。如果某个用户的父目录没有执行权限,那么该用户就无法访问任何子目录,无论这些子目录的权限如何。
例子:
$ ls -l cake
drwxr-xr-x 2 zanna zanna 4096 Jul 12 11:43 brownies
$ chmod 666 cake
$ ls -l cake/brownies
ls: cannot access 'cake/brownies': Permission Denied
尽管我是目录“brownies”的所有者,并且所有用户都有权读取和进入该目录,但如果其父目录没有执行权限,我就无法访问它。
最好使用组来管理权限,而不是给予目录 777 权限。
答案2
acl 并非完全是 unix/linux 标准。我知道 RH 一直在努力推广它们,但它们带来的困惑比帮助多。我会删除 ACL 数据,只使用 chmod/chown/chgrp。
setfacl --remove-all p # see if that works.