FTP服务器 vsftp samba服务器 共享 smb

时间:2023-03-09 18:30:20
FTP服务器 vsftp samba服务器 共享 smb

FTP服务器 vsftp samba服务器 共享 smb

马哥视频

参考1

参考3

参考2

参考4

vsftp服务器实现匿名用户上传、修改权限和一些设置

win7访问 地址栏输入   ftp://账号:密码@地址

linux访问: ftp IP     (然后输入用户名和密码)

[root@localhost var]# yum install -y *ftp*    (只安装vsftpd的话输入ftp提示命令错误  因为只安装了服务端没安装ftp客户端  要接着安装 yum install ftp)

2、关闭SELinux
#vi /etc/selinux/config
将文件中的SELINUX="" 为 disabled ,然后重启。
如果不想重启系统,使用命令setenforce 0注:setenforce 1 设置SELinux 成为enforcing模式

查看SELinux状态:

1、/usr/sbin/sestatus -v      ##如果SELinux status参数为enabled即为开启状态

匿名用户

系统用户

虚拟用户(不能登录的)

/var/ftp: ftp用户的家目录

/var/ftp/pub  默认存储位置

chroot功能 pwd的时候会显示 /   其实在/var/ftp

[root@bogon hadoop]# ls -ld /var/ftp/    (匿名用户的pwd就是/var/ftp/)
drwxr-xr-x. 4 root root 4096 May 10 23:17 /var/ftp/       属主属组都是root  只有root才能创建文件  匿名用户不能上传会提示can no create file

可以创建一个ftp有读写执行的目录 这样匿名用户就可以上传了( anon_upload_enable=YES ) ps aux|grep vsftp  可以看到ftp用户只需vsftpd进程

mkdir /var/ftp/upload

setfacl-m u:ftp:rwx /var/ftp/upload/      设置ftp的权限

getfacl uploads/         获取权限信息

/etc/vsftpd/vsftpd.conf配置文件

anonymous_enable=YES    #是否允许匿名用户

local_enable=YES             #是否启用系统用户

write_enable=YES           #运行上传

anon_upload_enable=YES   #是否允许匿名用户上传

anon_mkdir_write_enable=YES   匿名用户是否可以mkdir

anon_other_write_enable=YES  匿名用户可以删除文件   这句要自己加 配置文件中可能没有

dirmessage_enable=YES      当用户进入一个目录时是否显示欢迎信息  这个信息放在目录里面的 .message 注意是隐藏文件  自己创建然后  写一些提示文字,每次cd都会有文字提示
xferlog_enable=YES            操作是否记录到日志中,需要配合下面的日志文件位置使用
xferlog_file=/var/log/xferlog  日志文件位置    cat /var/log/xferlog就可以显示

xferlog_std_format=YES    日志文件是否使用标准格式

chroot_list_enable=YES    是否用一个文件定义用户在家目录中   禁锢用户在家目录/

chroot_list_file=/etc/vsftpd/chroot_list  配合上面一起,创建这个文件再添加用户   比如添加hadoop用户后  用hadoop登录后pwd就是/  之前是/home/hadoop   这时候put上传的文件其实还是/home/hadoop 不过pwd只能显示成/

chroot_local_user=YES   上面两条每个用户都要添加到文件中  如果不想这么麻烦就用这一条 将所有用户禁锢成/

listen=YES  是否让vsftpd工作成一个独立守护进程(守护进程有两类 1独立2瞬时 由xinetd代为管理  用户量小用瞬时守护进程    独立守护进程用在用户量大在线时间长的服务)

pam_service_name=vsftpd    /etc/pam.d/ 下叫什么名字

userlist_enable=YES 启用这个文件(userlist)    这是个禁止用户登入的文件  文件中的用户无法输入密码就被提示无法登入(root用户在userlist中删除(不删除的话不能输入密码就无法登录)还是无法登录 因为写在了了ftpusers文件中可以输入密码但不能登录)

userlist_deny=NO 仅允许列表中(userlist)的用户登入 列表以外的用户都无法登入 相当于白名单        =YES 不允许列表中用户登入 黑名单   yes和no都得先启用这个文件  就是上面那条命令

/etc/vsftpd/ftpusers   禁止访问的用户列表 例如root用户(ftp是明文的 为了防止抓包获取root用户的账号密码)

#chown_uploads=YES        用户上传文件后是否把属主改成其他用户(下面设置要改的用户) 
#chown_username=whoever    上面一条如果要改改成谁

#idle_session_timeout=600  会话连接超时时间

#data_connection_timeout=120  数据连接相关的超时时间

#ascii_upload_enable=YES   定义传输模式: 是否启用文本模式上传   不应该打开这两个
#ascii_download_enable=YES  是否启用文本模式下载

比如创建一个用户hadoop 然后用这个用户登录pwd时显示的就是vsftpd服务器上的家目录 /home/hadoop/   这样不安全(可以登录到/etc  /var等 ftp是明文的 所以传输的时候不安全)所以要加chroot

centos6.5 安装成功

[root@localhost ~]# yum install -y *ftp*

[root@localhost ~]# vi /etc/selinux/config     改disabled

重启后关闭iptables  [root@localhost ~]# service iptables stop

[root@localhost ~]# service vsftpd start   (不启动的话连接ftp不会提示输入用户密码)

设置开机启动vsftpd ftp服务   chkconfig vsftpd on

[root@localhost ~]# ftp localhost     # 用户名 ftp  密码空  就进入ftp           匿名用户的用户名是 anonymous 密码为空   win下cmd输入ftp 192.168.1.115进行连接ftp

FTP服务器 vsftp samba服务器 共享 smb

500 OOPS: vsftpd: refusing to run with writable root inside chroot()
Login failed.
421 Service not available, remote server has closed connection

建一个用户登入

[root@localhost hadoop]# useradd hadoop

[root@localhost hadoop]# passwd hadoop    输入密码1

[root@localhost ~]# ftp localhost     # 用户名 hadoop  密码1  就进入ftp    pwd 显示  /home/hadoop  就是这个用户的家目录(/etc/passwd下显示的目录)  没有开启#chroot_list_enable=YES pwd后就会显示在家目录  开启后pwd会显示在/目录下 这样比较安全 (这里指的是linux下  win7没区别)      ls出目录下的文件和文件夹

以下两行去掉注释  让文件中的用户在根目录(pwd 结果是 / ) 而不是家目录

#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd/chroot_list        #chroot_list中添加用户名

如果不想一个个用户添加而是所有用户都在/目录登入就注释上面两个  把下面这行的注释

#chroot_local_user=YES

ftp 192.168.1.115  (本机112)

输入账号密码

pwd显示家目录 /home/hadoop

lcd /etc   ( 进入112de /etc)

put issue   (上传112的issue到115的/etc/hadoop)

get  xxx   (从115下载文件到lcd后的目录中

samba  参考   参考

centos7

[root@localhost samba]# yum -y install samba samba-client samba-common

[root@localhost samba]# vi /etc/samba/smb.conf  #先备份文件

65          [global]

89     workgroup = WORKGROUP
 90     server string = Samba Server Version %v
 91
 92     security = user
 93     netbios name = MYSERVER

16             [public]                                           #共享出来的文件夹就是public     在linux上的位置为  /home/samba 
317     comment = Public Stuff
318     path = /home/samba
319     public = yes

[root@localhost samba]# testparm     #检查文件正确性

[root@localhost samba]# service smb restart

[root@localhost samba]# smbpasswd -a root     #设置root用户名 的密码    或者再添加一个系统用户  然后用这个命令设置密码

解决:SMB.conf文件中注释掉 passdb backend = tdbsam 一行,

加上 smb passwd file = /etec/samba/smbpasswd

windows访问   \\10.0.0.101\public

zzx@zzx120:~$ smbclient //10.0.0.101/public