列出所有文件权限:
sudo ls -al /home/ftpuser
total 40
drwxr-x--- 6 ftpuser ftpuser 4096 Jul 24 11:32 .
drwxr-xr-x 5 root root 4096 Jul 22 13:26 ..
-rwxr-x--- 1 ftpuser ftpuser 169 Jul 24 11:54 .bash_history
-rwxr-x--- 1 ftpuser ftpuser 220 Jul 22 13:26 .bash_logout
-rwxr-x--- 1 ftpuser ftpuser 3526 Jul 22 13:26 .bashrc
drwxr-x--- 4 ftpuser ftpuser 4096 Jul 22 13:36 .config
drwxr-x--- 3 ftpuser ftpuser 4096 Jul 22 13:27 ftp_dir
drwxr-x--- 3 ftpuser ftpuser 4096 Jul 22 13:43 home
-rwxr-x--- 1 ftpuser ftpuser 807 Jul 22 13:26 .profile
drwxr-x--- 2 ftpuser ftpuser 4096 Jul 24 11:29 .ssh
所有目录和文件都是750,我已经添加debian
到组中ftpuser
:
grep 'ftpuser' /etc/group
ftpuser:x:1001:debian
groups ftpuser
ftpuser : ftpuser
登录账户debian
:
debian@debian:~$ ls /home/ftpuser
ls: cannot open directory '/home/ftpuser': Permission denied
为什么用户debian
没有权限?
sudo chmod -R 770 /home/ftpuser
ls /home/ftpuser
ls: cannot open directory '/home/ftpuser': Permission denied
才777
可以工作。
sudo chmod -R 777 /home/ftpuser
ls /home/ftpuser
ftp_dir home
Debian 已加入多少个群组?
groups debian
debian : debian cdrom floppy audio dip video plugdev netdev bluetooth lpadmin scanner ftpuser
在目录中添加额外信息:
df /home/ftpuser
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 767863552 26621992 702162752 4% /
sudo blkid | grep sda1 |cut -d ' ' -f 4
TYPE="ext4"
groups
debian cdrom floppy audio dip video plugdev netdev bluetooth lpadmin scanner ftpuser
namei -l /home/ftpuser
f: /home/ftpuser
drwxr-xr-x root root /
drwxr-xr-x root root home
drwxr-x--- ftpuser ftpuser ftpuser
getfacl /home/ftpuser
getfacl: Removing leading '/' from absolute path names
# file: home/ftpuser
# owner: ftpuser
# group: ftpuser
user::rwx
group::r-x
other::---
更多额外信息:
debian@debian:~$ id debian
uid=1000(debian) gid=1000(debian) groups=1000(debian),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),108(netdev),114(bluetooth),120(lpadmin),123(scanner),1001(ftpuser)
debian@debian:~$ ls -aln /home/ftpuser
total 44
drwxr-x--- 6 1001 1001 4096 Jul 27 10:12 .
drwxr-xr-x 5 0 0 4096 Jul 27 21:09 ..
-rwxr-x--- 1 1001 1001 576 Jul 27 10:15 .bash_history
-rwxr-x--- 1 1001 1001 220 Jul 22 13:26 .bash_logout
-rwxr-x--- 1 1001 1001 3526 Jul 22 13:26 .bashrc
drwxr-x--- 4 1001 1001 4096 Jul 22 13:36 .config
drwxr-x--- 3 1001 1001 4096 Jul 22 13:27 ftp_dir
drwxr-x--- 3 1001 1001 4096 Jul 22 13:43 home
-rwxr-x--- 1 1001 1001 807 Jul 22 13:26 .profile
drwxr-x--- 2 1001 1001 4096 Jul 24 11:29 .ssh
debian@debian:~$ sudo grpck /etc/group
debian@debian:~$
cat /etc/group |grep ftpuser
ftpuser:x:1001:debian
答案1
确实是个奇怪的问题。一切看起来都很好,访问应该可以正常工作。
我找到了一种重现此行为的方法,但这不太可能是 OP 的问题。
您提供的所有输出均显示用户和组名称但 Linux 内部使用数字 ID。虽然可能性很小,但映射可能会失败。
采用以下设置:
$ cat /etc/group
ftpuser:x:1000:
ftpuser:x:1001:debian
$ mkdir test
$ sudo chown ftpuser:ftpuser test
$ ls -l
drwxr-x--- 1 ftpuser ftpuser 0 Jul 26 23:00 test
$ groups debian
debian : ... ftpuser
$ sudo -u debian ls test
ls: cannot open directory 'test': Permission denied
发生这种情况的原因是,所有命令始终显示组名而不是 ID,并且没有一个命令会打印重复组的错误。(唯一抱怨的命令是usermod
“/etc/group 中有多个名为‘ftpuser’的条目。请使用 pwck 或 grpck 修复此问题。”)
您可以采取以下措施来确保这不是您的问题:
id
以用户身份运行debian
以查看其分配的 gid- 运行
ls -aln /home/ftpuser
以查看目录正在使用的 gid - 运行
grpck
检查你的 /etc/group 是否正常
答案2
如果我们只考虑所获得的信息,那么整篇文章就毫无意义。问题肯定与用户帐户配置不当有关,这种情况只有在手动编辑/etc
文件时才会发生。
虽然该useradd
程序不允许您创建重复的用户名,但管理员可以手动编辑该
/etc/passwd
文件并更改用户名。
我猜想 中有两个ftpuser
条目/etc/passwd
。我无法知道事件的进程,但 的输出显然ls
具有误导性。
发帖者可以通过运行来验证grep ftpuser /etc/passwd
。
登录并使用该id
命令存在仅拾取文件中第一个条目的风险。
我的猜测是错误的(或者只是现在错了),但我怀疑有人手动编辑了其中一个或两个文件
/etc/group
和/etc/passwd
。
如果您这样做了或者怀疑发生了这种情况,我建议删除ftpuser
用户帐户和组(包括主文件夹)并从头开始。