FTP服务器 vsftp samba服务器 共享 smb
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
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后的目录中)
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.101public
zzx@zzx120:~$ smbclient //10.0.0.101/public