为什么用户没有权限?

为什么用户没有权限?

列出所有文件权限:

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用户帐户和组(包括主文件夹)并从头开始。

相关内容