Ubuntu 通过umask设置默认文件权限644,目录权限755

来自:选择信息来源
时间:2019-07-29
阅读:

最近一直在折腾新服务器,虽然之前也玩过一阵Ubuntu,但仅仅只是玩过,深入了解的东西不多,很多学过的东西都忘得差不多了,导致现在使用起来很吃力,只能靠搜索引擎现学现用了。今天就记录一下umask的简单用法,方便以后用时查阅。

umask设置

现在服务器用的是sFTP来给服务器传输文件,使用过程中发现一个问题,就是从本地上传文件到服务器后,服务器端的文件夹权限是775,文件权限是664,但是出于安全考虑,想让上传到服务器的文件夹自动设置权限为755,文件权限为644。搜索了相关资料,在Linux系统下修改默认文件夹和文件的默认权限需要用到umask,使用这个命令可以查看当前的默认权限设置:

umask

输出结果一般是4位数字,如 0002、0022等,这个数字对应的权限可以到百度百科关于 umask 的说明中查看。常用的umask值代表的默认文件和目录的权限如下(0022跟022含义是一样的):

umask 值 文件 目录
0022 644 755
0027 640 750
0002 664 775
0006 660 771
0007 660 770

对照上表,为了实现默认文件权限644,目录权限755的需求,我们运行这个命令:

umask 0022

但是设置完成后,发现新上传的文件权限还是664,说明还没修改成功,接着还需要再编辑一下当前用户目录下的 .bashrc 文件

cd ~
vim .bashrc

在该文件中另起一行,输入:umask 022

保存后,重启sshd即可:

sudo service sshd restart

批量设置目录和文件权限

另外,如果文件已经上传,想批量修改目录和文件的权限该怎么做呢?我们可以使用以下命令:

# 对当前目录下所有的子目录及以下目录都设置成为 755权限
find . -type d -exec chmod 755 {} ;

# 对当前目录下的所有文件设置 644的权限。
find . -type f -exec chmod 644 {} ;

参考文章

返回顶部
顶部