我有Samba 文件服务器(openSUSE Leap 15),一个带有子目录的目录,其中包含一些不应再有主人。用户名解析由 winbind 执行。我想删除所有没有所有者的目录。
问题是,这ls -la
表明一些子目录仍然有一个不再存在的用户作为所有者在 AD 中。wbinfo -u
不显示已删除的用户,而且在 AD 中该用户肯定也不再存在。此外,getent passwd 不显示 ls -la 显示为所有者的用户。
我已经做的事情:
- 重启
- 网络缓存刷新
- 手动删除
winbindd_cache.tdb
并winbindd_idmap.tdb
很奇怪,还有其他缓存不会被 net cache flush 清除吗?
PS:nscd 守护进程也在 Samba 文件服务器上运行
这是 winbind 配置的 smb.conf
[global]
workgroup = domain
realm = domain.DOMAIN
netbios name = name
security = ADS
interfaces = 1.2.3.4 127.0.0.1/8
bind interfaces only = yes
log level = 1
template shell = /bin/false
vfs objects = acl_xattr
map acl inherit = yes
store dos attributes = yes
registry shares = yes
hide unreadable = yes
#hide dot files = yes
hide files = /$*/desktop.ini/RECYCLER/Thumbs.db/
load printers = no
printing = bsd
printcap name = /dev/null
disable spoolss = yes
winbind enum users = yes
winbind enum groups = yes
winbind expand groups = 4
username map = /etc/samba/samba_usermapping
idmap config * : range = 2000 - 999999
idmap config domain:backend = rid
idmap config domain:range = 1000000 - 1999999
答案1
文件所有权存储在文件系统中。简单地从 /etc/passwd 或其他远程用户管理中删除用户并不能删除文件系统中的所有权。您只是再也看不到 UID 和 GID 的名称。
如果用户或组名称仍然显示盖特恩你正在跑步神经胶质细胞缓存密码和团体地图(选中/etc/nscd.conf
),那么您应该刷新这些地图的缓存:
nscd --invalidate=passwd
nscd --invalidate=group
需要注意的是:
我建议不是如果您的远程用户管理有可能无法访问,即使只有很小的可能性,也可以自动删除使用find -nouser
或找到的文件。find -nogroup