Ubuntu Server 18.04安装配置Samba

samba安装及配置

sudo apt-get install samba

无需验证共享文件夹

修改/etc/samba/smb.conf,在文件最底部加上共享目录信息

[share]
path = /home/用户名/share
read only = no
public = yes
create mask = 0777
directory mask = 0777
[web]
path = /var/www/html
read only = no
public = yes
create mask = 0777
directory mask = 0777

验证共享文件夹

sudo adduser usamba //为系统添加一个用户
//sudo usermod -g YYY XXX //将用户XXX添加到组YYY里面
//sudo groupadd  YYY //添加组
sudo smbpasswd -a usamba //将用户注册到samba(必须是系统用户)

修改/etc/samba/smb.conf,以下是一些实例:

需求1:

有一个共享目录为rule,里面放公司的规章制度,所有用户都可以查看,但是不能修改
解决方法:在smb.conf里配置read only = yes,具体示例如下:

[rule]
path = /var/samba/rule
read only = yes
public = no
vaild users = theworld

需求2:

一部分人只对file1这个目录有权限,一部分人只对file2这个目录有权限
解决方法:
1、首先建立两个samba用户user1和user2,这两个用户要保证是在linux系统中存在的用户,命令如下:

smbpasswd -a user1

2、然后对目录file1和file2设置访问权限,让用户user1访问file1,用户user2访问file2,命令如下:

chown user1:user1 /var/samba/file1
chmod 700 /var/samba/file1

3、在smb.conf中配置file1和file2的访问权限,示例如下:

[file1]
path = /var/samba/file1
read only = no
public = no
vaild users = user1

4、在客户端登录samba服务的时候分配给访问file1的用户user1的用户名,访问file2的用户user2的用户名。

需求3:

只有user1组里的人对file1这个目录有权限,并且user1组中用户a有读写权限,而用户b只有读权限
解决方法:
1、首先建立两个samba用户a和b,这两个用户要保证是在linux系统中存在的用户,并且在同一个用户组user1中,创建方法同上
2、然后对目录file1设置访问权限,让用户组user1可以访问file1,命令如下:

chown user1.user1 /var/samba/file1
chmod 770 /var/samba/file1

3、在smb.conf中配置file1的访问权限,示例如下:

[file1]
path = /var/samba/file1
public = no
vaild users = @user1
write list = a
read list = b

需求4:

只有user1组里的人对file1这个目录有权限,并且user1组中所有用户都有读写权限,这里值得注意的是当权限设置好后新建文件夹及文件的权限会与之前不同导致同组用户只有读权限没有写权限,所以要在配置文件中指定新建文件及文件夹的权限
解决方法:
1、首先建立所需的samba用户若干,这些用户要保证是在linux系统中存在的用户,并且在同一个用户组user1中,创建方法同上
2、然后对目录file1设置访问权限,让用户组user1可以访问file1,命令如下:

chown user1.user1 /var/samba/file1
chmod 770 /var/samba/file1

3、在smb.conf中配置file1的访问权限,示例如下:

[file1]
path = /var/samba/file1
read only = no
public = no
create mode = 0770
directory mode = 0770
vaild users = @user1
write list = @theworld

其他一些参考

62573-d8dtq9mz31.png

其他常用命令

/usr/sbin/samba -V //查看samba版本,ubuntu18.04返回版本信息:Version 4.7.6-Ubuntu
sudo service smbd start|stop|restart|status|reload //samba相关命令
sudo pdbedit -L //查看samba服务器中已拥有哪些用户
sudo smbpasswd -x 用户名 //删除samba服务中的某个用户
cat /etc/passwd //查看Linux中所有用户
cat /etc/passwd|grep -v nologin|grep -v halt|grep -v shutdown|awk -F":" '{ print $1"|"$3"|"$4 }'|more //查看Linux中添加了多少用户
cat /etc/group //查看Linux中所有组
sudo userdel 用户名 //删除linux某个用户
sudo userdel -r 用户名 //删除linux中某个用户所有信息

碰到的问题

用户名@J3455:~$ sudo smbpasswd -x share
Failed to find a Unix account for share
Failed to delete entry for user share.

问题原因:删除了系统用户share,但并未取消samba的注册信息,所以导致删除出错
解决办法:

sudo adduser share //先创建系统账户
sudo smbpasswd -x share //在删除samba的share账户,成功返回`Deleted user share.`
sudo userdel -r share //在删除系统账户

添加新评论

评论列表