更新:问题似乎是由另一个与 smb 无关的服务引起的。很抱歉没有找到适当的解决方案,我只是关闭该问题。
我已将 SMB 共享安装到 Ubuntu 17.10 VM,并尝试从安装位置 ( /mnt/smb_mnt
) 删除文件。
我首先以访客身份进行了安装:
sudo mount -t cifs //ipaddress/share /mnt/smb_mnt/ -oguest,vers=2.0
并且也以访客身份进行了安装root
,但都不起作用。另外,我尝试mount -o remount,rw /mnt/smb_mnt
使用读写权限重新挂载,但文件仍然无法删除。
我授予文件 777 权限,并执行命令,rm
因为root
它也是文件的所有者。我检查过ls -l
,权限是我分配给文件和父文件的权限 ( smb_mnt
)
我尝试chattr -i
根据我发现的其他相关问题使用命令,但我得到:chattr: Permission denied while setting flags on /mnt/smb_mnt/file
。
我还可以尝试什么才能实现删除?
我知道可以在计算机上轻松本地删除文件,但我需要从安装位置删除文件,因为我要测试的模块只能在 smb 上工作,所以我不能只ssh
到机器上手动删除文件。
这是 SMB 配置文件:
[global]
# Include the base global configuration options. These don't usually change.
include = /etc/samba/base_global.conf
# These are configurable via the module
max protocol = SMB2
hide files = //:2eDS_Store/:2eFBCLockFolder/.FBCLockFolder/:2eFBCIndex/.FBCIndex/TheVolumeSettingsFolder/TheFindByContentFolder/Temporary Items/Network Trash Folder/.AppleDB/:2eVolumeIcon.icns/.VolumeIcon.icns/Icon/.AppleDouble/.AppleDesktop/desktop.ini/RECYCLER//
# (Options from the currently enabled Global Profile. Will overwrite any previous options)
# Enabled Global profile: Default Global
# Authentication is handled by the UserDirectory module.
# The "security" option is put in this file as well.
include = /etc/samba/auth.conf
[Space]
# Profile: Guest Read/Write
path = /share/Space
guest ok = True
read only = False
browseable = True
preexec = /opt/space/modules/SMB/bin/scripts/event.py --event connect --profile 105 --service %S --user %u --client-ip %I --server-ip %i --path %P --pid %d
root preexec = /opt/space/modules/SMB/bin/scripts/event.py --root --event connect --profile 105 --service %S --user %u --client-ip %I --server-ip %i --path %P --pid %d
postexec = /opt/space/modules/SMB/bin/scripts/event.py --event disconnect --profile 105 --service %S --user %u --client-ip %I --server-ip %i --path %P --pid %d
# Optional extra definitions created by other programs.
# Will scan /etc/samba/includes.d/ for extra configuation files as well
# A SMB.createConf() will need to be run for it to detect new SMB config files
# The first line (includes.conf) is included for backwards compatibility. Modules should use the includes.d folder and make their own files.
include = /etc/samba/includes.conf
答案1
Samba 不代表客户端计算机上 Samba 共享的正确文件权限。
通过 Samba 连接访问 Samba 服务器上的文件,即使您以用户身份登录root
到客户端计算机,也可以以 Samba 用户身份访问它们。
您通过 Samba 连接对文件所做的更改不会以这种方式反映在 Samber 服务器上。
尝试登录ssh
Samba 服务器并查看真实的文件权限。
这些文件可能属于 Samba 服务器上的不同用户和/或不同组。
在您的 Samba 共享配置中,[Space]
您没有定义任何用户或组指定,因此连接到同一 Samba 共享的其他用户可以使用自己的系统用户帐户和用户文件权限创建这些文件。