尝试了很多次,但从未在 Unix 上获得 SMB 共享的权限。一个最小的 Debian 文件服务器,没有 GUI,只有 SSH...
我一直以为你在SMB中设置了所有权限,结果发现你在Windows中设置了? https://www.youtube.com/watch?v=QhwOyLtArw0
也许给我(拉格纳)访问权限和磁盘根目录上的所有权限并从我的 Windows 工作站创建所有文件夹并设置权限就足够了?
我想要两个用户:Ragnar 和 Harald
我将我的磁盘称为“记录”和“媒体”:
记录 (sdb1 | /mnt/records)
- 电视记录 Harald
- 电视记录
- 下
Archive (sdc1 | /mnt/archiv)
- Harald
--- 摩托罗拉平板电脑
-备份
--- PC1
--- PC2
-媒体
--- 音乐
--- 音乐视频
--- 电子书
Harald 应该能够看到“记录/电视记录 Harald”并拥有读取、写入和删除权限。
Harald 应该能够看到“Archiv/Harald”并具有读取、写入和删除权限。
Harald 应该能够看到“档案/媒体”并且只有读取权限。
访问我的朋友应该能够看到“档案/媒体”并且只有读取权限。
拉格纳应该能够看到并做任何地方的一切。
到目前为止我做了什么:
~# sudo apt install samba
~# sudo useradd Ragnar -s /usr/sbin/nologin
~# sudo smbpasswd -a Ragnar
~# sudo useradd Harald -s /usr/sbin/nologin
~# sudo smbpasswd -a Harald
~# sudo nano /etc/samba/smb.conf
[global]
workgroup = WORKGROUP
log file = /var/log/samba/log.%m
max log size = 1000
logging = file
panic action = /usr/share/samba/panic-action %d
server role = standalone server
obey pam restrictions = yes
[Records]
comment = Disk 1
path = /mnt/records
browsable = yes
read only = no
create mask = 0666
directory mask = 0777
force user = Ragnar
force group = Ragnar
hide files = /lost+found/
~# sudo chown Ragnar /mnt/records
~# sudo service smbd restart
如果查看 Windows 中“记录”共享的安全性,我拥有:
每个人:特殊权限
root (Unix Group\root):特殊权限
Ragnar (HECTOR\Ragnar):特殊权限
我需要以某种方式更改组吗?
拉格纳和所有人的读、写的“特殊权限”是否正常,而不是显示“完全控制”?
如果我现在在记录中创建一个文件并查看 Windows 中的安全性,我有:
每个人:读、写
Ragnar (Unix Group\Ragnar):读、写
Ragnar (HECTOR\Ragnar):读、写
所以拉格纳也没有“完全控制”......
需要改变什么?
或者我现在只需在 Windows 上创建子文件夹并在那里设置权限?
那么有没有办法完全隐藏丢失+找到的内容呢?
如果资源管理器设置为“显示隐藏文件”,您仍然可以在 Windows 中看到它。
我也在我的 Android 设备上看到了它。
那么Android上有一个文件夹IPC$吗?
编辑
由于丢失+找到(访问被拒绝),我无法删除记录内文件夹/文件上的每个人。
编辑
我做了一个sudo chown -R Ragnar:Ragnar /mnt/records
,现在可以删除每个人的权限。
但哈拉尔德可以读写记录???
答案1
让我首先说阅读https://www.samba.org/samba/docs/
因为 Linux 中有一些需要了解的旋钮Samba Server
,并且可能有不止一种方法可以完成您所要求的任务。
但简而言之
- 在linux下安装
samba server
,这个最小的samba功能待描述应该在任何Linux上工作 - 编辑
/etc/samba/smb.conf
为至少下列
# smb.conf file sample
[global]
security = user
passdb backend = tdbsam
[scratch]
path = /scratch
read only = No
guest ok = No
- 请在 samba.org 上阅读有关
security
和 的解释passdb
,但这将设置基本功能,意味着当地的linux 帐户需要存在并且该帐户名有效 [拉格纳和哈拉尔德] 哪个还无论连接的计算机是什么,都需要是帐户名。如果连接的计算机和连接的计算机之间的帐户密码相同桑巴密码在托管 samba 服务器的 Linux 系统上,然后授予连接 - 你必须做
smbpasswd -a ragnar
smbpasswd -a harald
- 在您的 Linux 系统上托管 samba 服务器以满足
passdb backend
选择...因为我们使用的 samba 密码是不同的比 中的本地帐户密码更重要/etc/passwd
。阅读 samba 文档以获取详细说明,但这将根据给定帐户名的 linux 文件/文件夹权限设置基本的访问安全性,直到您允许guest ok = yes
任何人访问 中指定的给定共享。smb.conf
- 我只
scratch
在 smb.conf 示例中共享了一个名为 example 的文件夹
- 至于你所有其他具体问题 - 太难回答抱歉
- 这样做,例如,如果帐户名
harald
存在于 linux samba 服务器上和在客户端系统上,和linux 服务器smbpasswd
与连接客户端上harald
的帐户密码相匹配,那么适用于 linux 系统的所有内容都将通过 samba 连接受到影响,并且您可以根据在 samba 上定义的用户和组来使用基本文件/文件夹权限。 linux [samba] 服务器。harald
harald
一直以为你在 SMB 中设置了所有权限,结果发现你在 Windows 中设置了这些权限
不一定,你能从客户端(从您的 Windows 计算机)设置它们,但文件/文件夹权限来自 samba 服务器...所以它首先是 linux 文件系统权限,然后由 samba 服务器读取,然后传递出去无论客户端是谁,(服务器消息块)协议SMB
都必须能够理解SMB
。当存在不匹配时(即 guest ok== yes 并且 Windows 帐户在 linux [samba] 服务器上不存在,您会注意到nobody
在 Linux 系统上查看时权限被设置为。
- 阅读 Samba 文档
Map to Guest
- 还需要进行许多其他调整以满足不同级别的访问和限制
obey pam restrictions
- 我建议您删除它或说
no
因为这超出了您目前对 的理解水平samba
;是PAM
一种完全不同的动物。 - 我不确定
nologin
Linux 帐户是否仍允许 samba smb 访问这些帐户,因此我建议您首先创建harald
并ragnar
完全活跃的 Linux 帐户;一旦一切正常,然后将这些帐户更改为nologin
(以防止 ssh)。 这就是为什么我这么说,pam=no
因为你说遵守 pam 限制然后使帐户 nologin 可能会阻止 samba 访问。