CentOS 的用户、组权限、添加删除用户等操作的详细操作命令

centos的用户、组权限、添加删除用户等操作的详细操作命令

1.Linux操作系统是多用户多任务操作系统,包括用户账户和组账户两种细分用户账户(普通用户账户,超级用户账户)除了用户账户以为还有组账户所谓组账户就是用户账户的集合,centos 组中有两种类型,私有组和标准组,当创建一个新用户时,若没有指定他所属的组,centos就建立以个和该用户相同的私有组,此私有组中只包括用户自己。标准组可以容纳多个用户,如果要使用标准组,那创建一个新的用户时就应该指定他所属于的组,从另外一方面讲,同一个用户可以属于多个组,例如某个单位的领导组和技术组,lik是该单位的技术主管,所以他就是属于领导组和技术组。当一个用户属于多个组时,其登录后所属的组是主组,其它组为附加组。

2.Linux环境下的账户系统文件主要在/etc/passwd, /etc/shadow,/etc/group,和/etc/gshadow四个文件。基本含义就不多说了重点说一下,root的uid是 0,从1-499是系统的标准账户,普通用户从uid 500开始。

3.使用命令管理账户
useradd 选项 用户名//添加新用户
usermod 选项 用户名//修改已经存在的用户
userdel -r 用户名//删除用户表示自家目录一起删除。
groupadd 选项 组名// 添加新组
groupmod 选项 组名//修改已经存在的组
groupdel 组名  //删除已经存在的特定组。

例子
useradd zhh888 //添加一个用户zh888
groupadd blog //新建一个blog组
useradd -G blog zh //表示创建一个新用户zh,同时加入blog附加组中。
useradd -d /var/ftp/pub -M ftpadmin //创建一个新用户ftpadmin,指定目录是/var/ftp/pub,不创建自家目录(-M)
usermod -G blog zh888 //表示将zh888 添加到附加组blog中去。
userdel ftpadmin //表示删除ftpadmin用户
userdel -r zhh888 //表示删除zh888和/home中的目录一起删除。
groupdel blog //表示删除blog组。

4.口令管理及时效
创建用户之后就要给用户添加密码,设置的口令的命令式passwd
passwd 选项 用户名 passwd -l 用户名账号名//禁止用户账户口令
passwd -S 用户名//表示查看用户账户口令状态
passwd -u 用户名//表示恢复用户账号
passwd -d 用户名//表示删除用户账户口令

5.chage 命令是保护密码的时效这样可以防止其他人猜测密码的时间。
chage 选项 用户名
参数有  -m days, -M days ,-d days, -I days ,-E date, -W days,-l
例子:#chage -m 2 -M 30 -W zhh//表示的意思是要求用户zhh两天内不能更改密码,并且口令最长存活期是30天,并且口令过期5天通知zhh

6.用户和组的状态查询命令
whoami //用于显示当前的用户名称。
groups 用户名//表示显示指定的用户所属的组,如果没指定用户则是当前用户所属的组。
id //表示显示当前用户的uid gid和用户所属的组列表。
su – 用户//表示转换到其他用户,如果su 表示切换到自己的当前用户。
newgrp 组名//表示转换用户的当前组到指定的附加组,用户必须属于该组才能进行。

7.更改属主和同组人
有时候还需要更改文件的属主和所属的组。只有文件的属主有权更改其他属主和所属的组,用户可以把属于自己的文件转让给大家。改变文件属主用chown命令
chown [-R] <用户名或组><文件或目录>
chown zh888 files//把文件files属主改成zh888用户。
chown zh888.zh888 files//将文件files的属主和组都改成zh888。
chown -R zh888.zh888 files//将files所有目录和子目录下的所有文件或目录的主和组都改成zh888.

8.设置文件的目录和目录生成掩码
用户可以使用umask命令设置文件默认的生成掩码。 默认的生成掩码告诉系统创建一个文件或目录不应该赋予哪些权限。如果用户将umask命令放在环境文件.bash_profile中,就可以控制所有新建的文件和目录的访问权限。
umask [a1a2a3]
a1表示的是不允许属主的权限,a2表示的是不允许同组人的权限,a3代表不允许其他人的权限。
umask 022//表示设置不允许同组用户和其他用户有写的权限。
umask //显示当前的默认生成掩码。

9.特殊权限的设置
SUID SGID 和sticky-bit 除了一般权限还有特殊的权限存在,一些特殊权限存在特殊的权限,如果用户不需要特殊权限一般不要打
开特殊权限,避免安全方面的问题。



转载网址:http://blog.chinaunix.net/uid-10154874-id-2981349.html




  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编译 ./configure --prefix=/usr/local/php --exec-prefix=/usr/local/php --bindir=/usr/local/php/bin --sbindir=/usr/local/php/sbin --includedir=/usr/local/php/include --libdir=/usr/local/php/lib/php --mandir=/usr/local/php/php/man --with-config-file-path=/usr/local/php/etc --with-mysql-sock=/var/run/mysql/mysql.sock --with-mcrypt=/usr /i nclude --with-mhash --with-openssl --with-mysql=shared,mysqlnd --with-mysqli=shared,mysqlnd --with-pdo-mysql=shared,mysqlnd --with-gd --with-iconv --with-zlib --enable-zip --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-mbregex --enable-mbstring --enable-ftp --enable-gd-native-ttf --enable-pcntl --enable-sockets --with-xmlrpc --enable-soap --without-pear --with-gettext --enable-session --with-curl --with-jpeg-dir --with-freetype-dir --enable-opcache --enable-fpm --enable-fastcgi --with-fpm-user=www --with-fpm-group=www --without-gdbm --with-mcrypt=/usr/local/apps/libmcrypt --disable-fileinfo 报错:1, **configure: error: system libzip must be upgraded to version >=**0.11。 使用Yum最新版只到0.10,不足以达到要求。 一、先删除libzip yum remove libzip -y SSH执行以上命令,先删除libzip 和 libzip-devel 二、下载安装并手动编译 wget https://nih.at/libzip/libzip-1.2.0.tar.gz tar -zxvf libzip-1.2.0.tar.gz cd libzip-1.2.0 ./configure make && make install 三、(可忽略)另外最新版本请参考官网:https://nih.at/libzip/ 1.5.0的libzip需要cmake wget https://libzip.org/download/libzip-1.5.0.tar.gz tar -zxvf libzip-* cd libzip* mkdir build && cd build && cmake .. && make && make install 报错2: error: off_t undefined; check your library configuration 根据报错信息分析 configure: error: off_t undefined; check your library configuration 未定义的类型 off_t。 off_t 类型是在 头文件 unistd.h中定义的,在32位系统 编程成 long int ,64位系统则编译成 long long int ,这里题主的系统应该是 64位的吧,在进行编译的时候 是默认查找64位的动态链接库,但是默认情况下 centos 的动态链接库配置文件/etc/ld.so.conf里并没有加入搜索路径,这个时候需要将 /usr/local/lib64 /usr/lib64 这些针对64位的库文件路径加进去。 采用下面的方法。 添加搜索路径到配置文件 echo '/usr/local/lib64 /usr/local/lib /usr/lib /usr/lib64'>>/etc/ld.so.conf 然后 更新配置 ldconfig -v 再次执行 编译 成功 执行安装: make && make install 报错: /usr/local/include/zip.h:59:21: fatal error: zipconf.h: No such file or directory 解决: cp /usr/local/lib/libzip/include/zipconf.h /usr/local/include/zipconf.h 1 安装成功: 复制配置文件: cp php.ini-production /usr/local/php/lib/php.ini cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf ln -s /usr/local/php/sbin/php-fpm /usr/local/bin 修改配置: cd /usr/local/php/etc/php-fpm.d vim www.conf [www] //池子名 (pool) 设置 ;listen = /tmp/php-fcgi.sock // 监听的地址,可以监听socket ,也可以监听端口 listen = 127.0.0.1:8089 或者这样写,php-fpm 通常在本地使用,php和nginx 通常在一台机器,所以可写127.0.0.1,别的机器 连接,需用本机ip listen.mode = 666 //sock 文件的权限 listen.owner = nobody listen.group = nobody user = php-fpm group = php-fpm pm = dynamic pm.max_children = 50 pm.start_servers = 20 pm.min_spare_servers = 5 pm.max_spare_servers = 35 pm.max_requests = 500 rlimit_files = 1024 加入 systemtl 服务: cd /usr/local/src/php-7.3.0beta1/sapi/fpm cp php-fpm.service /usr/lib/systemd/system/ 启动: systemctl start php-fpm systemctl status php-fpm -l
第一部分:常用命令 常用命令/文件处理 0:基础功能 1:ls 显示文件目录 语法:ls 选项[-ald][文件或目录] 2:cat 显示文件内容(内容少适合) 语法:cat[文件名] 3:tac 显示文件内容 语法:tac[文件名] 4:more 分页显示文件内容(只能往下翻页,不能往上反) 语法:more[文件名] 5:less 分页显示文件内容(上下翻页) 语法:less[文件名] 6:head 显示文件前面几行 语法:head[文件名] 7:tail 显示文件后面几行 语法:tail[文件名] 8:touch 创建空文件 语法:touch[文件名字] 9:mkdir 创建新目录 语法:mkdir -p 目录 10:cd 切换目录 语法:cd 目录 11:pwd 显示当前目录的绝对路径 语法:pwd 12:rmdir 删除空目录 语法:rmdir 目录名字 13:rm 删除文件或目录 语法:rm -rf[文件或目录] 14:cp 复制文件或目录 语法:cp -rp[源文件或目录][目标目录] 15:scp 远程和本地互传文件 语法:scp [参数] [原路径] [目标路径] 16:mv 剪切文件或该名 语法:mv[源文件或目录][目标目录] 17:ln 生成连接文件 语法:ln -s[原件名][目标文件] 常用命令/文件搜索 1:find 文件搜索 语法:find [搜索范围][比配条件] 2:locate 在文件资料库中查找文件 语法:locate 文件名 3:which 搜索命令所在目录级别名信息 语法:which[命令名称] 4:whereis 搜索命令所在目录级帮助文档路径 语法:whereis[命令名称] 5:grep 在文件中搜索字串匹配的行并输出 语法:grep -iv[指定字串][文件] 6:uname 显示当前操作系统名称 常用命令/压缩解压 1:gzip 压缩文件 语法:gzip [文件] 2:gunzip 解压缩.gz文件 语法:gunzip [压缩文件] 3:tar 打包目录 语法:tar 选项[-zcf][压缩后文件名字][目录] 4:zip 压缩文件或目录 语法:zip 选项[-r][压缩后文件名字][文件或目录] 5:unzip 压缩文件或目录 语法:unzip [压缩文件] 6:bzip2 压缩文件 语法:bzip2 选项[-k][文件] 7:bunzip2 解压缩 语法:bunzip2 选项[-k][解压文件] 常用命令/网络 1:write 给在线用户发消息 语法:write 2:wall 发广播消息 语法:wall [发送的消息] 3:ping 测试网络连通性 语法:ping 选项IP地址 4:ifconfig 查看和设置网卡信息 语法:ifconfig [网卡名称] [IP地址] 5:mail 查看发送电子邮件 语法:mail [用户名] 6:last 列出目前与过去登陆系统的用户信息 语法:last 7:lastlog 检查某用户上次登陆的时间 语法:lastlog 8:traceroute 显示数据包到主机间的路径 语法:traceroute 网址 9:netstat 显示网络相关信息 语法:netstat [-tulrn] 10:setup 配置网络 语法:setup 11:mount 挂载 语法:mount [-t 文件系统] 设备文件名挂载点 12:nmap 端口扫描 13:ifup/ifdown 启动/禁止网卡 常用命令/关机重启 1:shutdown 关机或重启 语法:shutdown [选项] 时间 2:halt 关机 语法:halt 3:poweroff 关机 语法:poweroff 4:init 关机或重启 语法:init [0~6]数字 5:reboot 重启 语法:reboot 6:logout 退出终端 语法:logout 常用命令/帮助 1:man 获得帮助信息 语法:man [命令或配置文件] 2:whatis 获得帮助简短信息 语法:whatis 命令 3:apropos 查看配置文件信息 语法:apropos 配置文件 4:--help 查看命令主要选项 语法:命令 --help 5:info 获取帮助信息 语法:info 命令 6:help 获取Shell内置命令的帮助信息 语法:help 命令 7:apt-get 安装卸载程序 第二部分:文件系统 文件系统/文件系统 0:tree 以树形结构显示文件目录结构 1:分区和文件系统 2:文件系统常用命令 df [选项][挂载点] //统计文件系统占情况 du [选项][目录或文件] //统计目录或文件大小 df和du命令的区别 fsck [选项] 分区设备文件名 //文件系统修复命令 dumpe2fs 分区设备文件名 //显示磁盘状态命令 3:挂载命令 mount [选项] 设备文件名 挂载点 4:挂载光盘与U盘 文件系统/fdisk分区 1:fdisk命令分区过程 2:分区自动挂载与fstab文件修复 文件系统/swap分区 1:free 查看内存与swap分区使用状况 2:创建swap分区或开机自动挂载 第三部分:用户权限 用户权限/用户管理命令 1:useradd 添加用户 语法:useradd [选项] 用户名 2:passwd 设置用户密码 语法:passwd [选项] 用户名 3:usermod 修改用户信息 语法:usermod [选项] 用户名 4:chage 修改用户密码状态 语法:chage [选项] 用户名 5:userdel 删除用户 语法:userdel [-r] 用户名 6:id 查看用户id 语法:id 用户名 7:su 切换用户身份 语法:su [选项]用户名 8:env 查看用户环境变量 语法:env 9:who 查看登陆用户信息 语法:who 10:w 查看登陆用户详细信息 语法:w 用户权限/用户用户管理 1:用户配置文件 1.1:/etc/passwd 用户基本信息文件 1.2:/etc/shadow 影子文件(真正密码,root可以看) 1.3:/etc/group 信息文件 1.4:/etc/gshadow 密码文件 2:用户管理相关文件 2.1:用户的家目录 2.2:用户的邮箱 /var/spool/mail/用户名/ 2.3:用户模板目录 /etc/skel/ 3:用户管理命令 4:用户管理命令 第四部分:权限管理 权限管理/权限管理 0:创建用户/添加 1:chmod 改变文件或目录权限 语法:chmod [{ugoa}{+-=}{rwx}][文件或目录] 2:chown 改变文件或目录所有者 语法:chown [用户][文件或目录] 3:chgrp 改变文件或目录的所属 语法:chgrp [用户][文件或目录] 4:umask 显示或设置文件缺省权限 语法:umask[-S] 权限管理/文件特殊权限 1:SetUID 可执行的二进制文件(u:w=s 4) 2:SetGID 可执行的二进制文件或目录(g:r=s 2) 3:Sticky BIT 只对目录有效(o:x=t 1) 权限管理/文件系统属性chattr权限 1:chattr 文件系统属性权限 2:lsattr 查看文件系统属性 权限管理/系统命令sudo权限 1:sudo 权限 权限管理/ACL 权限 1:ACL权限开启 2:查看与设定ACL权限 3:最大有效权限删除ACL权限 4:默认ACL权限和递归ACL权限 5:删除ACL权限 第五部分:系统管理 系统管理/工作管理 1:把进程放入后台(&,ctrl+z) 2:查看后台的工作 语法:jobs [选项] 3:将后台暂停的工作恢复到前台执行 语法:fg %工作号 4:把后台暂停的工作恢复到后台执行 语法:bg %工作号 系统管理/进程管理 1:进程查看 2:进程管理 2.1:判断服务器健康状态 语法:top [选项] 2.2:查看系统中所有进程 语法:ps [选项] 2.3:查看进程数 语法:pstree [选项] 3:终止进程 3.1:kill [选项] //终止进程 3.1:killall [选项][信号] 进程名 //按照进程名杀死进程 3.1:pkill [选项][信号]进程名 //按照进程名终止进程 系统管理/系统定时任务 1:crond服务管理与访问控制 语法:crontab [选项] 系统管理/系统资源查看 1:vmstat命令监控系统资源 语法: vmstat 刷新延时 刷新次数 2:dmesg开机时内核检测信息 语法: dmesg 3:free查看内存使用状态 语法: free [选项] 4:查看CPU信息 /proc/cpuinfo 5:uptime启动时间和平均负载 语法: uptime 6:uname查看系统与内核相关信息 语法: uname [选项] 7:判断当前系统的位数(32位或64位..) 8:查看当前Linux系统的发行版本 语法: lsb_release -a 9:lsof列出进程打开或使用的文件信息 语法: lsof [选项] 10:date 第六部分:服务管理 1:服务简介与分类 2:RPM包安装服务的管理 2.1:独立服务的管理 2.2:基于xinetd服务的管理 3:源码包安装服务管理 3.1:源码包安装服务的启动 3.2:源码包服务的自启动 3.3:让源码包服务被服务管理器命令识别 第七部分:启动管理 启动管理/CentOS 6.x启动管理 1:系统运行级别 1:运行级别(0~6,7个级别) 2:查看运行级别(runlevel,init) 3:系统默认运行级别(/etc/inittab) 2:系统启动过程 1:initramfs内存文件系统 2:调用/etc/init/rcS.conf配置文件 1:先调用/etc/rc.d/rc.sysinit 2:再调用/etc/inittab确定系统默认运行级别 3:调用/etc/rc.d/rc文件 启动管理/启动引导程序grub 1:grub配置文件 2:grub加密与字符界面分辨率调整 启动管理/系统修复模式 1:单用户模式 2:光盘修复模式 3:Linux的安全性 第八部分:日志管理 日志管理简介 1:日志服务 2:rsyslogd的新特点 3:确定服务启动 4:常见日志的作用(lastb,lastlog,last) 5:其他日志 日志-轮替 1:日志文件的命名规则 2:logrotate配置文件 3:把apache日志加入轮替 4:logrotate日志轮替 语法 logrotate [选项] 配置文件名 rsyslogd-日子服务 1:日志文件格式 2:/etc/rsyslog.comf配置文件 第九部分:软件包管理 软件包管理\软件包管理 1:软件包管理简介 1:源码包(源代码安装包,手动安装) 2:二进制包(RPM包,系统默认包) 2:RPM包管理-rpm命令管理 1:RPM包命名规则 2:RPM包依赖性 3:RPM包管理-yum在线管理 1:IP地址配置和网络yum源 2:光盘yum源搭建 4:源码包管理 1:源码包和RPM包区别 2:源码包安装过程 5:脚本安装包与软件包选择 软件包管理/软件包管理命令 1:RPM包管理 rpm命令管理 命令 1:安装 rpm -ivh 包全名 2:升级 rpm -Uvh 包全名 3:卸载 rpm -e 包名 4:查询 rpm -q.. 5:校验 rpm -V 已安装的包名 6:文件提取 rpm2cpio 包全名 | cpio -idv .文件绝对路径 2:rpm包管理 yum在线管理 命令 1:查询 yum list 2:安装 yum -y install 包名 3:升级 yum -y update 包名 4:卸载 yum -y remove 包名 5:软件管理 yum grouplist 第十部分:备份与恢复 备份与恢复/备份的概述 1:Linux系统需要备份的数据 2:安装服务的数据 3:备份策略 1:完全备份 2:增量备份 3:差异备份 备份与恢复/dump和restore命令 1:dump备份数据 2:restore恢复命令 第十一部分:shell
FTP服务器配置 VSFTP主配置文件路径:/etc/vsftpd/vsftpd.conf,重要参数: anonymous_enable=yes/no 是否允许匿名用户访问 anon_upload_enable=yes/no 是否允许匿名用户上传文件 anon_mkdir_write_enable=yes/no 是否允许匿名用户创建目录 anon_other_write_enable=yes/no 匿名用户和虚拟用户是否拥有删除权限 local_enable=yes/no 是否允许本地用户登陆 write_enable=yes/no 设置全局是否可写 anon_root=/var 指定匿名用户目录 chroot_local_user=yes 锁定所有用户用户主目录 chroot_list_enable=yes/no 锁定列表中的用户到主目录,需要配合下一参数使用 chroot_list_file=/etc/vsftpd/chroot_list 指定存储被锁定用户的列表文件位置 chown_uploads=yes/no 匿名用户上传所有者指定功能,需要与下一参数配合使用 chown_username=用户名 指定匿名用户上传文件的所有者 max_clients=300 最大客户端连接数为300 anon_max_rate=30000 匿名用户和虚拟用户限速为30K/S local_max_rate=30000 本地用户限速为30K/S max_per_ip=10 每个IP最大连接数 listen_port=22 更改监听端口 实现如下要求:允许匿名用户登陆,匿名用户限速为60K/S,只允许下载。监听端口为22,最大连接数为10。新建用户ftp1,限速为200K/S,允许上传下载删除新建文件夹。进入目录/etc/vsftpd,用vi编辑器打开vsftpd.conf主配置文件: 直接添加以下选项: [root@LidadeFedora vsftpd]# service vsftpd restart 添加用户ftp1,设置登录脚本为 /sbin/nologin: vsftp默认目录为:/var/ftp,为方便测试,在/var/ftp下新建一个文件"testLocal",在"/var/ftp/pub"新建一个文件"testAnon"。 由于使用root用户新建文件,文件的所有者为root,所以需要把文件的权限设置为644其他用户才能读取该文件 设置/var/ftp/pub权限为777,表示所有用户均有读写权限. 由于端口22被ssh服务器占用,所以需要关闭ssh服务并重启vsftp服务。 客户端用Flashfxp测试:新建站点"VsftpTest",输入Vsftp服务器的IP地址,端口填22,用户名填ftp1,密码填你设置的密码,然后点击"连接"按钮: 由于没有使用选项:local_root,登陆本地用户时自动跳转到该用户的主目录.没有使用chroot_local_user=yes,所以本地用户可以浏览整个文件系统中他有权限读取的文件和文件夹: 切换到目录"/var/ftp/pub",该目录的权限为777,上传一个10M以上的文件,测试ftp1的上传速度: 新建文件夹和删除权限测试省略。下面测试匿名用户权限:勾选"匿名"选项并连接: 匿名用户登陆成功: 进入pub目录,尝试删除testAnon文件失败,说明这里是配置文件中的anon_other_write_enable=no生效了。最终权限等于配置文件中的权限和linux文件系统权限相或的结果。比如vsftp配置文件中允许匿名用户下载,但光这样是不够的,还需要被下载的文件或文件夹的能够被其他用户读取。 尝试上传文件失败,符合匿名用户只允许下载的要求: 最后测试匿名用户的下载速度: vsftp的配置
一 vsftpd搭建步骤 1、首先安装vsftpd,并设置开机启动 yum -y install vsftpd chkconfig vsftpd on 2、基于虚拟用户配置,(所谓虚拟用户就是没有使用真实的帐户,只是通过映射到真实帐户和设置权限的目的。虚拟用户不能登录CentOS系统)  2.1 配置参数 [root@ftp vuser_conf]# sed -n '/^[^#]/P' /etc/vsftpd/vsftpd.conf anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_file=/var/log/xferlog xferlog_std_format=YES idle_session_timeout=600 data_connection_timeout=120 ascii_upload_enable=YES ascii_download_enable=YES chroot_list_enable=YES listen=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES guest_enable=YEs guest_username=ftp user_config_dir=/etc/vsftpd/vuser_conf pasv_enable=YES pasv_min_port=40000 pasv_max_port=40080 pasv_promiscuous=YES accept_timeout=60 connect_timeout=60  2.2 参数解释 [root@ftp /]# sed -n '/^[^#]/P' /etc/vsftpd/vsftpd.conf #设定不允许匿名访问 anonymous_enable=NO #设定本地用户可以访问。注:如使用虚拟宿主用户,在该项目设定为NO的情况下所有虚拟用户将无法访问 local_enable=YES #允许用户上传数据(包括文档与目录) write_enable=YES #建立新目录(775)与档案(644)的权限 local_umask=022 #若目录下有.message则显示该文档内容 dirmessage_enable=YES #启动登录文件记录,记录于 /var/log/xferlog xferlog_enable=YES #支持主动式联机功能 connect_from_port_20=YES #如果上一个xferlog_enable=YES的话,这里可以设定了!这个是登录档案的档名。 xferlog_file=/var/log/xferlog #是否设定为 wu ftp 相同的登录档格式?预设为 NO ,因为登录档会比较容易读! 不过,如果你有使用 wu ftp 登录文件的分析软件,这里才需要设定为 YES xferlog_std_format=YES #若匿名者发呆超过 10 分钟就断线 idle_session_timeout=600 #如果服务器与客户端的数据联机已经成功建立 (不论主动还是被动联机),但是可能由于线路问题导致 120 秒内还是无法顺利的完成数据的传送,那客户端的联机就会被我们的 vsftpd 强制剔除! data_connection_timeout=120 #如果设定为 YES ,那么 client 就优先 (预设) 使用 ASCII 格式上传文件。 ascii_upload_enable=YES #如果设定为 YES ,那么 client 就优先 (预设) 使用 ASCII 格式下载文件。 ascii_download_enable=YES #是否启用 chroot 写入列表的功能?与底下的 chroot_list_flie 有关!这个项目得要开启,否则底下的列表档案会无效。 chroot_list_enable=YES #若设定为 YES 表示 vsftpd 是以 standalone 的方式来启动的!预设是 NO !所以我们的 CentOS 将它改为 YES !这样才能使用 stand alone 的方式来唤醒。 listen=YES #这个是 pam 模块的名称,我们放置在 /etc/pam.d/vsftpd 即是这个。 pam_service_name=vsftpd #支持 /etc/vsftpd/user_list 档案内的账号登入管控! userlist_enable=YES #支持 TCP Wrappers 的防火墙机制 tcp_wrappers=YES #若这个值设定为 YES 时,那么任何实体账号,均会被假设成为 guest (所以预设是不开放的)! 至于访客在 vsftpd 当中,预设会取得 ftp 这个使用者的相关权限。但可以透过 guest_username 来修改。 guest_enable=YES #指定虚拟用户的宿主用户CentOS中已经有内置的ftp用户了 guest_username=ftp # FTP服务文件(配置文件名=虚拟用户名) user_config_dir=/etc/vsftpd/vuser_conf #支持数据流的被动式联机模式(passive mode),一定要设定为 YES pasv_enable=YES #在防火墙配置内开启40000到40080端口(没有测试过) -A INPUT -m state --state NEW -m tcp -p -dport 40000:40080 -j ACCEPT pasv_min_port=40000 pasv_max_port=40080 #是否屏蔽对pasv进行安全检查,(当有安全隧道时可禁用) pasv_promiscuous=YES #当用户以被动式 PASV 来进行数据传输时,如果服务器启用 passive port 并等待 client 超过 60 秒而无回应, 那么就给他强制断线!这个设定值与 connect_timeout accept_timeout=60 #单位是秒,在数据连接的主动式联机模式下,我们发出的连接讯号在 60 秒内得不到客户端的响应,则不等待并强制断线 connect_timeout=60  2.3 FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。 一、PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。 当需要传送数据时,客户端在命令链路上用 PORT命令告诉服务器:“我打开了****端口,你过来连接我”。于是服务器从20端口向客户端的****端口发送连接请求,建立一条数据链路来传送数据。 二、PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。 当需要传送数据时,服务器在命令链路上用 PASV命令告诉客户端:“我打开了****端口,你过来连接我”。于是客户端向服务器的****端口发送连接请求,建立一条数据链路来传送数据。 从上面可以看出,两种方式的命令链路连接方法是一样的,而数据链路的建立方法就完全不同。而FTP的复杂性就在于此。 3 进行认证  安装Berkeley DB工具,很多人找不到db_load的问题就是没有安装这个包 yum install db4 db4-utils  创建用户密码文本,注意奇行是用户名,偶行是密码 [root@ftp /]# cat /etc/vsftpd/vuser_passwd.txt lixiang 8qu.com.cn shuaicong 8qu.com.cn gaojingyuan 8qu.com.cn  生成虚拟用户认证的db文件 db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db 注:(每添加用户和秘密就得生成一次)  编辑认证文件,全部注释掉原来语句,再增加以下两句 [root@ftp /]# cat /etc/pam.d/vsftpd #%PAM-1.0 #session optional pam_keyinit.so force revoke #auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed #auth required pam_shells.so #auth include password-auth #account include password-auth #session required pam_loginuid.so #session include password-auth auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd account required pam_userdb.so db=/etc/vsftpd/vuser_passwd  创建虚拟用户配置文件 mkdir /etc/vsftpd/vuser_conf/ -p [root@ftp /]# cd /etc/vsftpd/vuser_conf/  文件名等于vuser_passwd.txt里面的账户名,否则下面设置无效 [root@ftp /]# cat /etc/vsftpd/vuser_passwd.txt lixiang 8qu.com.cn shuaicong 8qu.com.cn gaojingyuan 8qu.com.cn [root@ftp /]# cd /etc/vsftpd/vuser_conf/ [root@ftp vuser_conf]# ll total 12 -rw-r--r-- 1 root root 159 Apr 1 17:57 gaojingyuan -rw-r--r-- 1 root root 161 Apr 1 16:27 lixiang -rw-r--r-- 1 root root 161 Apr 1 17:00 shuaicong  虚拟用户根目录,根据实际情况修改 #指定虚拟用户的具体主路径。 local_root=/data/ftp #设定可以进行写操作 write_enable=YES # umask = 022 时,新建的目录 权限是755,文件的权限是 644 umask = 077 时,新建的目录 权限是700,文件的权限时 600。这里应该是anonymous用户创建的文件权限。 anon_umask=022 #仅允许 anonymous 具有下载可读档案的权限 anon_world_readable_only=NO #是否让 anonymous 具有上传数据的功能,默认是 NO,如果要设定为 YES ,则 anon_other_write_enable=YES 必须设定 anon_upload_enable=YES #是否让 anonymous 具有建立目录的权限?默认值是 NO!如果要设定为 YES, 那么 anony_other_write_enable 必须设定为 YES ! anon_mkdir_write_enable=YES #是否允许 anonymous 具有除了写入之外的权限?包括删除与改写服务器上的档案及档名等权限。预设当然是 NO!如果要设定为 YES, anon_other_write_enable=YES 4 设置FTP根目录权限  最新的vsftpd要求对主目录不能有写的权限所以ftp为755,主目录下面的子目录再设置777权限 mkdir /data/ftp chmod -R 755 /data chmod -R 777 /data/ftp [root@ftp data]# ls -ld /data/ drwxr-xr-x 3 root root 4096 Apr 1 16:25 /data/ [root@ftp data]# ll total 4 drwxrwxrwx 2 root root 4096 Apr 1 17:21 ftp  建立限制用户访问目录的空文件(不需要也得创建) touch /etc/vsftpd/chroot_list  如果启用vsftpd日志需手动建立日志文件 touch /var/log/xferlog touch /var/log/vsftpd.log  重启iptabls和vsftpd service iptables restart service vsftpd restart 5 Selinux和防火墙  该关闭的关闭,该放行的放行 1 2 3 4 5 #关闭selinux/iptables sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config setenforce 0 chkconfig iptables off service iptables stop 常见问题 如果登录时出现 500 OOPS: priv_sock_get_result. Connection closed by remote host. 这样的错误,需要升级pam yum update pam 6日志分析 vsftpd的两个日志文件分析如下: /var/log/xferlog 记录内容举例 /var/log/vsftpd.log Sat Apr 1 16:34:14 2017 1 10.13.98.101 55 /vsftpd(1).txt b _ i g lixiang ftp 0 * c /var/log/xferlog日志文件中数据的分析和参数说明 记录数据 参数名称 参数说明 Thu Sep 6 09:07:48 2007 当前时间 当前服务器本地时间,格式为: DDD MMM dd hh:mm:ss YYY 7 传输时间 传送文件所用时间,单位为秒 192.168.57.1 远程主机名称/IP 远程主机名称/IP 4323279 文件大小 传送文件的大小,单位为byte /home/student/phpMyadmin- 2.11.0-all-languages.tar.gz 文件名 传输文件名,包括路径 b 传输类型 传输方式的类型,包括两种: a以ASCII传输 b以二进制文件传输 – 特殊处理标志 特殊处理的标志位,可能的值包括: _ 不做任何特殊处理 C 文件是压缩格式 U 文件是非压缩格式 T 文件是tar格式 i 传输方向 文件传输方向,包括两种: o 从FTP服务器向客户端传输 i 从客户端向FTP服务器传输 r 访问模式 用户访问模式,包括: a 匿名用户 g 来宾用户 r 真实用户,即系统中的用户 student 用户用户名称 ftp 服务名 所使用的服务名称,一般为FTP 0 认证方式 认证方式,包括: 0 无 1 RFC931认证 * 认证用户id 认证用户的id,如果使用*,则表示无法获得该id c 完成状态 传输的状态: c 表示传输已完成 i 表示传输示完成

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值