无法创建、删除或重命名文件

无法创建、删除或重命名文件

密码文件 /etc/passwd

[..]
seagate:x:1000:1001:,,,:/mnt/seagate/:/bin/false
medion:x:1002:1003:,,,:/mnt/medion:/bin/false
seagate_ro:x:1001:1002:,,,:/mnt/seagate:/bin/false
wwwusr:x:1003:1005:,,,:/var/www:/bin/false

/etc/组

[..]
www-data:x:33:www-usr
seagate:x:1001:
medion:x:1003:
seagate_ro:x:1002:
wwwusr:x:1005:

pdbedit -L

[..]
wwwusr:1003:
medion:1002:
seagate:1000:
seagate_ro:1001:

/etc/samba/smb.conf

[global]
        netbios aliases = refly1 refly2 refly3 refly4 refly5
        workgroup = WORKGROUP
        server string = %h server (Samba %v)
        log file = /var/log/samba/log.%m
        max log size = 1000
        encrypt passwords = true
        invalid users = root
        socket options = TCP_NODELAY
        security = user
        unix extensions = yes

[homes]
        comment = Home Directories
        browseable = no
        valid users = %S
        writable = no
        write list = seagate medion wwwusr
        create mode = 0600
        directory mode = 0700

测试参数

Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[homes]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions

在 Windows 资源管理器中

M: \\refly2\medion
S: \\refly3\seagate
W: \\refly1\wwwusr

ls -ld /var/www

drwxr-xr-x 2 777 www-data 4096 Mai  9 13:29 /var/www

问题: 无法使用 创建、删除或重命名文件wwwusr。如果我使用seagateseagate_ro (ro = read only)medion访问它们的主目录,它们可以完美地完成工作。那么问题出在哪里?

为了设置我的 Samba,我使用了本指南

答案1

正如您所看到的:

ls -ld /var/www
drwxr-xr-x 2 777 www-data 4096 Mai  9 13:29 /var/www

/var/www文件夹的所有者是具有所有者权限的用户777(?) 。rwx

这样,www-data群组就有rx权限了。

最后,包括您的wwwusr用户在内的所有其他用户都拥有 rx 权限。

方案 1

如果您已经设置并运行网站,/var/www我会执行以下操作以免破坏您正在运行的网站:

  1. 将用户添加wwwusr到附加组www-data

    usermod -G www-data wwwusr
    
  2. 然后授予www-data文件夹的组写权限:

    chmod g+w /var/www
    

方案 2

如果这不会破坏您正在运行的网站(测试它),只需让用户成为wwwusr该文件夹的所有者:

chown wwwusr:wwwusr /var/www

关于许可的编辑:

在您的 Samba 配置中使用:

create mode = 0600

rw这告诉 Samba 每个新创建的文件仅对所有者具有权限:

-rw------- 1 wwwusr wwwusr 65 Mai 9 15:08 /var/www/index.html

您可以将其更改为:

create mode = 0605

这将向rx其他用户添加权限。

以上内容也适用于您使用的该指令:

directory mode = 0700

它将rwx只向每个新创建的文件夹的所有者授予权限。不向组或其他人授予权限。

用于向文件夹的其他人directory mode = 0705添加rx权限。

==> 警告:所有这些也会以同样的方式影响其他用户主目录内容的权限。正如所讨论的,这对您来说不是问题。


相关内容