风彦疯语-杜风彦 风彦疯语-杜风彦
  • 首页
  • 技术交流
    • 网络技术
    • 微博微信
  • 经验分享
    • 文化交流
    • 语言学习
    • 音乐旅途
    • 生活杂谈
  • 旅游旅行
    • 单车旅行
    • 旅行故事
    • 旅途随笔
  • 摄影交流
    • 摄影练习
  • 专题汇总
    • 纪录短片创作
    • 环球骑行
    • 四国遍路
    • 看非洲
  • 媒体报道
    • 杜风彦简介
  • 杂谈
  • 投稿
  • 注册
  • 登录
首页 › 技术交流 › 网络技术 › vsftpd中umask=022什么意思

vsftpd中umask=022什么意思

杜风彦
5月 6, 2014网络技术阅读 1,037
先是最基本的配置,请看我的/etc/vsftpd/vsftpd.conf

#接受匿名用户
anonymous_enable=YES
#匿名用户login时不询问口令
no_anon_password=YES
#接受本地用户
local_enable=YES

#可以上传(全局控制).若想要匿名用户也可上传则需要设置anon_upload_enable=YES,若想要匿名用户可以建立目录则需要设置anon_mkdir_write_enable=YES.这里禁止匿名用户上传,所以不设置这两项.
write_enable=YES
#本地用户上传文件的umask
local_umask=022

#使用上传/下载日志,日志文件默认为/var/log/vsftpd.log,可以通过xferlog_file选项修改
xferlog_enable=YES
#日志使用标准xferlog格式
xferlog_std_format=YES

#login时的欢迎信息
ftpd_banner=Welcome to KingArthur's FTP service.
#设置的话将覆盖上面的ftpd_banner设置,用户login时将显示/etc/vsftpd/banner中的内容
banner_file=/etc/vsftpd/banner
#为YES则进入目录时显示此目录下由message_file选项指定的文本文件(,默认为.message)的内容
dirmessage_enable=YES
#本地用户login后所在目录,若没有设置此项,则本地用户login后将在他的home目录(/etc/passwd的第六个字段)中.匿名用户的对应选项是anon_root
local_root=/var/ftp

#设置为YES则下面的控制有效
chroot_list_enable=YES
#若为NO,则记录在chroot_list_file选项所指定的文件(默认是/etc/vsftpd.chroot_list)中的用户将被chroot在登录后所在目录中,无法离开.如果为YES,则所记录的用户将不被chroot.这里选择YES.
chroot_local_user=YES

#若设置为YES则记录在userlist_file选项指定文件(默认是/etc/vsftpd.user_list)中的用户将无法login,并且将检察下面的userlist_deny选项
userlist_enable=YES
#若为NO,则仅接受记录在userlist_file选项指定文件(默认是/etc/vsftpd.user_list)中的用户的login请求.若为YES则不接受这些用户的请求.
userlist_deny=NO
#注意!!!vsftpd还要检察/etc/vsftpd.ftpusers文件,记录在这个文件中的用户将无法login!!

#服务器以standalong模式运行,这样可以进行下面的控制
listen=YES
#匿名用户的传输比率(b/s)
anon_max_rate=51200
#本地用户的传输比率(b/s)
local_max_rate=512000
#可接受的最大client数目
max_clients=100
#每个ip的最大client数目
max_per_ip=5

connect_from_port_20=YES
tcp_wrappers=YES
pam_service_name=vsftpd

##############################################################################

下面是我的/etc/vsftpd.user_list
##############################################################################

ftpuser
anonymous

##############################################################################
/etc/vsftpd.ftpusers可以使用系统自带的文件
/etc/vsftpd.chroot_list内容为空
接着建立系统用户ftpuser,将他加入ftp组并将/etc/passwd中他的记录的最后一个字段改成/sbin/nologin(禁止本地登录).
设置/var/ftp的所有者和所有组为root,权限为755
设置/var/ftp/pub的所有者为root,所有组为ftp,权限为775

至此vsftpd的基本配置就完成了.这里我们接受匿名用户anonymous和本地用户ftpuser的请求.anonymous只能下载,ftpuser可以下载和上传.他们登录后均在/var/ftp目录下且无法离开这个目录(被chroot了).ftpuser可以在/var/ftp/pub目录中建立目录和上传文件,上传文件的权限为755(设置了local_umask=022).匿名用户的传输比率为50kb/s,ftpuser的传输比率为500kb/s.可联接的最多客户数为100,每ip可联接的最多客户数为5.
如果需要使本地用户ftpput可以login,只需要将他加入/etc/vsftpd.user_list,要使他可以上传,只需将他加入ftp组.
接着我们可以在/var/ftp下的各个目录(包括/var/ftp)下建立.message文件,这样用户进入这个目录时vsftpd将显示.message的内容,你可以在这里面写上欢迎信息或者注意事项等等.另外可以编辑/etc/vsftpd/banner,建立login时的欢迎信息,让你的ftp更加个性化.

下面我们使用quota为ftpuser加入磁盘限额,避免恶意用户用垃圾数据塞满你的硬盘.
假设/var/ftp在根分区/(/dev/hda5)中,则将/etc/fstab中根分区的记录的第4个字段改成defaults,usrquota,这样这条记录看起来类似这样:
LABEL=/ / ext3 defaults,usrquota 1 1
接着重启系统后输入下列命令:
quotacheck -acu #检查启用了配额的文件系统,并为每个文件系统建立一个当前磁盘用来的表
quotacheck -avu #生成每个启用了配额的文件系统的当前磁盘用量表
edquota ftpuser #为用户ftpuser设置磁盘配额
这时系统会在默认文本编辑器(vi)中打开配额文件,显示类似这样:
Disk quotas for user ftpuser (uid 501):
Filesystem blocks soft hard inodes soft hard
/dev/hda5 0 0 0 0 0 0
第一列是启用了配额的文件系统的名称。第二列显示了用户当前使用的块数。随后的两列用来设置用户在该文件系统上的软硬块限度。inodes 列显示了用户当前使用的i节点数量。最后两列用来设置用户在该文件系统上的软硬i节点限度.硬限是用户或组群可以使用的磁盘空间的绝对最大值。达到了该限度后,磁盘空间就不能再被用户或组群使用了。软限定义可被使用的最大磁盘空间量。和硬限不同的是,软限可以在一段时期内被超过。这段时期被称为 过渡期(grace period)。过渡期可以用秒钟、分钟、小时、天数、周数、或月数表示。如果以上值中的任何一个被设置为 0,那个限度就不会被设置.按你的需要修改后存盘推出.
要校验用户的配额是否被设置,使用以下命令:
quota testuser
接着使用edquota -t来设置过渡期(grace period)
和另一个 edquota 命令相似,这个命令也会在文本编辑器中打开当前的文件系统配额:
Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
Filesystem Block grace period Inode grace period
/dev/hda5 7days 7days
按你的需要修改后存盘退出

在Linux系统中,当我们创建文件的默认权限是怎么来的?如何改变这个默认权限呢?
在vsftpd配置中有local_umask项:
local_umask=022
首先,我们要搞清楚umask是个啥子玩意儿?
当我们创建一个文件后,总是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情。
umask设置了用户创建文件的默认权限,它与chmod的效果刚好相反,umask设置的是权限“补码”,而chmod设置的是文件权限码。一般在/etc/profile、$ [HOME]/.bash_profile或$[HOME]/.profile中设置umask值。
如何计算umask值?
umask命令允许你设定文件创建时的缺省模式,对应每一类用户(文件属主、同组用户、其他用户)存在一个相应的umask值中的数字。对于文件来说,这一数字的最大值分别是6。系统不允许你在创建一个文本文件时就赋予它执行权限,必须在创建后用chmod命令增加这一权限。目录则允许设置执行权限,这样针对目录来说,umask中各个数字最大可以到7。
该命令的一般形式为:umask nnn
其中nnn为umask置000 – 777。
我们只要记住umask是从权限中“拿走”相应的位即可。下表是umask值与权限的对照表:
umask 文件 目录
————————————
0 6 7
1 6 6
2 4 5
3 4 4
4 2 3
5 2 2
6 0 1
7 0 0
————————————
Linux文件系统中:
r:4(读)
w:2(写)
x:1(执行)
如:umask值为022,则默认目录权限为755,默认文件权限为644。
多点例子:
如果配置的umask值为000,则默认目录权限为777,默认文件权限为666
如果配置的umask值为047,则默认目录权限为730,默认文件权限为620

 

 

umask决定目录和文件被创建时得到的初始权限
umask = 022时
新建的目录 权限是755 
文件的权限是 644

用umask命令查看或设置当前的umask

$ umask
000

$ umask 022

你可以改变一下umask,建立目录和文件,观察一下

还有,umask是unix操作系统的概念,vsftpd的local_umask借鉴了它

umask=022中"022"是八进制的写法,如果换成二进制是000010010

在unix中文件权限是三类用户,三种权限。三类用户分别是文件所有者user(u),文件所有者所在主群组group(g)、其它用户others(o),三种权限分别是起读read(r)、写write(w)、执行execute(x)。

如果一个文件的权限如下:所有者有读写的权限,群组有读和执行权限、其它用户有读权限,可以写成:
rw-r-xr--
其中前三位指明了所有者的权限、中间三位指明了组权限、最后三位指明了其它用户的权限。我们用ls -l可以看到文件权限详情,列出来的是10位,最前一位如果是d表示是子目录。
说回来,如果把这上面9位字母换成二进制数则是:
110101100
如果换成八进制是多少?

因此文件权限可以用9位二进制数表示。umask在英文中是屏蔽的意思,那么
umask=022
指屏蔽文件的022权限,到底屏蔽了什么?将这个八进制数用二进制表示
000010010
换算成字母是
----w--w-
指取消组的写权限、取消其它用户的写权限。
屏蔽这些权限后,剩下什么权限呢?用字母表示是:
rwxr-xr-x
用二进制数表示是:
111101101
你可以对比一下
000010010
可以知道屏蔽前后的换算关系。

在vsftpd的配置文件中,umask=022表示了上权后的文件被屏蔽的权限,另一句话说,就是上传的文件所具有的权限。

umask
赞赏 赞(0) 收藏(0)
WordPress无法自动更新或在线安装主题插件
上一篇
WordPress上传附件提示“上级目录没有写权限”解决办法
下一篇
再想想
暂无评论
站内搜索
近期文章
  • google chrome -the site can't be reached- ERR_ADDRESS_UNREACHABL 解决方案
  • chrome 浏览器 关于和设置页显示 乱码的解决方案
  • 宝塔面板SSL无法生效及网站服务器拦截解决
  • 在肯尼亚,你不能缺少这16种体验
  • 云南自驾之旅
近期评论
目前暂无评论
—— 杜风彦6月前云南自驾之旅
很棒呢,希望也能走一趟。
—— 曲径通幽2年前烧山寺后神山町,宿营瓜果仓库中-四国遍路第三天(下)
对的,就是杨怀玉,您眼神真好。
—— 杜风彦2年前旅行路上,内急了怎么办?
最后一张图不是杨怀玉吗
—— 东风2年前旅行路上,内急了怎么办?
Howdy! This is my 1st comment here so I just wanted to give a quick shout out and tell you I genuinely enjoy reading your articles. Can you suggest any other blogs/websites/forums that cover the same subjects? Thank you so much!
—— Tasha2年前“Champion of Kibera“贫民窟拳王的最后一战
最新文章
google chrome -the site can't be reached- ERR_ADDRESS_UNREACHABL 解决方案
chrome 浏览器 关于和设置页显示 乱码的解决方案
宝塔面板SSL无法生效及网站服务器拦截解决
在肯尼亚,你不能缺少这16种体验
google chrome -the site can't be reached- ERR_ADDRESS_UNREACHABL 解决方案
12月 1, 2022
224 0 0
chrome 浏览器 关于和设置页显示 乱码的解决方案
12月 1, 2022
93 0 0
宝塔面板SSL无法生效及网站服务器拦截解决
11月 1, 2022
124 0 0
VPN 619,800等相关错误的解决办法
5月 5, 2015
2,583 0 0
  • 0
  • 0
关于老杜

杜风彦,摄影、武术、旅行、户外爱好者。曾历时2年2个月时间骑行亚非22国,总里程约3.5万公里。中国当代徐霞客,中国文化旅游摄影协会会士,中国探险协会顾问,八卦掌高级教练员,图库签约摄影师,杂志约稿作者,澎湃新闻特约记者,目前专注于非洲纪实影像项目。 Email:dufengyan@gmail.com

友情链接
王媛老师 环球骑行 部分摄影作品 齐林-自由摄影师
来这瞅瞅
媒体报道 摄影交流 音乐旅途 旅行故事 旅行装备 旅途随笔 语言学习 文化交流 看非洲
Copyright © 2014-2023 风彦疯语-杜风彦. Designed by nicetheme. 讲述不同人生的相同故事 暂无备案号
  • 首页
  • 技术交流
    • 网络技术
    • 微博微信
  • 经验分享
    • 文化交流
    • 语言学习
    • 音乐旅途
    • 生活杂谈
  • 旅游旅行
    • 单车旅行
    • 旅行故事
    • 旅途随笔
  • 摄影交流
    • 摄影练习
  • 专题汇总
    • 纪录短片创作
    • 环球骑行
    • 四国遍路
    • 看非洲
  • 媒体报道
    • 杜风彦简介
  • 杂谈
  • 投稿
# 杜风彦 # # 单车亚非 # # 非洲 # # 纪录片 # # 杜齐眼 #
杜风彦
老杜,专注于世界纪实影像。
375
文章
12
评论
11
喜欢