samba分配权限————附带详细操作步骤
文章目录
- 0 背景
- 1 修改配置文件
- 2 添加samba用户
- 3 创建用户分组
- 4 创建专用共享目录
- 5 配置生效
- 6 widows下更换共享资源的登录账户
- 参考
0 背景
搭建完samba文件共享服务器后,出现需要访问
1 修改配置文件
修改smb.conf文件:vi /etc/samba/smb.conf
,为如下内容:
[global]workgroup = WORKGROUPsecurity = userpassdb backend = tdbsamprinting = cupsprintcap name = cupsload printers = yescups options = raw# map to guest = Bad User# guest account = nobody[homes]comment = Home Directoriesvalid users = %S, %D%w%Sbrowseable = Noread only = Noinherit acls = Yes[printers]comment = All Printerspath = /var/tmpprintable = Yescreate mask = 0600browseable = No[print$]comment = Printer Driverspath = /var/lib/samba/driverswrite list = @printadmin rootforce group = @printadmincreate mask = 0664directory mask = 0775[hsshare]comment = my server share dirpath = /home/samba/share/resource# public = yeswritable = yesbrowseable = yesread only = novalid users = test,rootdirectory mask = 0751create mask = 0644[intern_share]path = /home/samba/share/resource2valid users = internread only = nobrowsable = yescreate mask = 0644directory mask = 0755[guest_share]path = /home/samba/share/resourcebrowsable = yesread only = yesvalid users = guestuserguest ok = nocreate mask = 0644
以上内容不能有中文注释,否则会产生如下报错:
上述配置解释如下:
map to guest = Bad User # 无效用户自动映射为guest账户guest account = nobody # 指定guest映射的系统账户(默认nobody)
正式:
[hsshare]comment = my server share dirpath = /home/samba/share/resource# public = yeswritable = yesbrowseable = yesread only = novalid users = test,rootdirectory mask = 0751 # 拥有者可以修改,组内用户只可以查看,其他用户无法查看create mask = 0644
实习:
[username_share] # 共享名称(客户端显示)path = /path/to/user_foldervalid users = username # 允许访问的用户read only = no # 可读写browsable = yes # 允许浏览create mask = 0644 # 新建文件权限directory mask = 0755 # 新建目录权限: # 拥有者可以修改,组内用户只可以查看,其他用户可以查看
访客:
[visitor_share]path = /path/to/share # 共享目录路径browsable = yes # 允许浏览read only = yes # 仅读权限valid users = guestuser # 指定合法用户guest ok = no # 禁止匿名访问(需用户名密码)create mask = 0644 # 新文件默认权限
2 添加samba用户
1,创建linux用户
sudo adduser username *# Ubuntu/Debian*
2,设置用户密码
sudo passwd username
3,创建Samba用户
sudo smbpasswd -a username
注意:如果使用useradd
命令创建本地用户(例如guestuser
),并禁止其登录系统(仅用于Samba访问):
sudo useradd -r -s /usr/sbin/nologin guestuser
3 创建用户分组
1,创建组;
sudo addgroup <groupname> # Debian推荐命令
2, 将用户添加到组
sudo usermod -aG <groupname> <username> # -aG表示追加到组,保留原有组# 示例:将用户 john 添加到 sudo 组以赋予管理员权限:sudo usermod -aG sudo john # 验证
groups john # 查看用户当前组列表。
3, 查看用户组信息
# 查看所有组:cat /etc/group # 直接查看组列表
getent group # 更高效的查询方式# 查看用户所属组
id <username> # 显示用户的所有组
groups <username> # 仅显示组名列表。
4, 从组中移除用户
sudo deluser <username> <groupname> # Debian推荐命令
sudo gpasswd -d <username> <groupname> # 替代方法。
5,修改用户主组
sudo usermod -g <new_primary_group> <username> # 修改用户的主组(如默认文件所属组)。# 设置文件/目录组权限(修改所属组)
sudo chgrp <groupname> <file_or_dir> # 修改文件/目录的所属组仅修改所属组:
chown :developers file.txt # 仅修改组,保持所有者不变同时修改所有者和组:
chown user:developers file.txt # 所有者改为user,组改为developers
4 创建专用共享目录
1,创建文件夹
sudo mkdir -p /path/to/user_folder # 如 /home/share/user1# 使用 ls -ld /path/to/directory 来验证目录的所有者和组是否已更改。
2,设置目录归属
sudo chown :project_team /shared/project # 设置目录所属组sudo chown -R userName:groupName /path/to/user_folder # 设置目录归属例如:sudo chown -R test:regular_employee /home/samba/share/resourcesudo chown -R intern:intern_employee /home/samba/share/resource2
3, 仅用户及所属组可读写
sudo chmod 751 /path/to/user_folder # 仅用户及所属组可读写
-
771:文件所有者拥有读、写和执行权限;文件所属组拥有读、写和执行权限;其他用户有执行权。
-
750:文件所有者:拥有读、写和执行权限;文件所属组:拥有读和执行权限;其他用户:没有任何权限
-
755(设置两种权限适用:一个用户):文件所有者(User):拥有读、写和执行权限(rwx)123;文件所属组(Group):拥有读和执行权限(r-x)123;其他用户(Others):拥有读和执行权限(r-x)
-
文件和目录的权限可以通过
chmod
命令来设置。权限用三个八进制数字表示,分别对应用户(user)、组(group)和其他人(others)的读、写、执行权限。- 7 表示读、写、执行权限(rwx)
- 6 表示读、写权限(rw-)
- 5 表示读、执行权限(r-x)
- 4 表示读权限(r–)
- 1 表示执行权
- 0 表示没有任何执行权
5 配置生效
重启Samba服务
sudo systemctl restart smbd
6 widows下更换共享资源的登录账户
在命令端(command + R ,输入cmd),输入如下命令:
net use * /del /y
参考
debian设置用户分组
samba创建访客用户(只可游览)
samba为新用户设置专门的文件夹
debian设置目录归属组