Linux系统为什么目录和文件的默认权限是755,644而不是其它的值呢?

因为:网站目录安全权限:目录755,文件644是相对安全的权限(用户root以及用户组root)

Linux系统默认权限的方针:允许浏览,查看,但是禁止创建和修改,增加文件及内容。


默认权限分配的命令umask

[root@w test]# mkdir newdir
[root@w test]# touch newfile
[root@w test]# ls -lrt
total 4
drwxr-xr-x. 2 root root 4096 Apr 29 17:07 newdir
-rw-r--r--. 1 root root    0 Apr 29 17:08 newfile

创建目录,默认权限是755

创建文件,默认权限是644


普通用户创建文件和目录

目录775,文件664

[zjj@w ~]$ touch newfile
[zjj@w ~]$ mkdir newdir
[zjj@w ~]$ ls -lrt
total 8
-rw-r--r--. 1 zjj zjj    6 Apr 21 11:22 hi.txt
-rw-rw-r--. 1 zjj zjj    0 Apr 29 17:23 newfile
drwxrwxr-x. 2 zjj zjj 4096 Apr 29 17:23 newdir
[zjj@w ~]$ umask
0002


控制umask的地方在/etc/profile

wKiom1coEH2Qh_xvAALNboA-bZE671.jpg

如:

[zdw@w ~]$ id -gn
zdw
[zdw@w ~]$ id -un
zdw
[zdw@w ~]$ umask
0002

注意:普通用户的umask未必是002


文件仅限的一般计算方法:

root下默认文件权限计算方法

1.假设umask值为:022(所有位为偶数)

   666    ==>文件的起始权限值

   022-   ==>umask的值

   ------

   644

2.假设umask值为:045(其它用户组位为奇数)

   666    ==>文件的起始权限值

   045-   ==>umask的值

   ------

   621    ==>计算出来的权限。由于umask的最后一位数字是5,所以,在用户组奇数位加1

   001+

   ------

   622    ==>真实文件仅限

Note:如果某类的用户的权限减得的结果存在x权限,则将其权限+1


命令示例:

1.umask默认022时创建目录及文件

[root@w ~]# umask                                        #默认为022
0022
[root@w ~]# cd /home/zdw/
[root@w zdw]# mkdir 022dir                               #创建文件夹
[root@w zdw]# ls -ld 022dir/                             #777-022权限为755
drwxr-xr-x. 2 root root 4096 May  3 10:25 022dir/
[root@w zdw]# touch 022file                              #创建文件
[root@w zdw]# ls -l 022file                              #666-022权限为644
-rw-r--r--. 1 root root 0 May  3 10:26 022file


注:文件夹的权限最大为777,用777-022,就得出文件夹的权限,文件的权限最大为666,用666-022,就得出文件的权限

2.umask设置为333(此设置方法只对当前有效)

[root@w zdw]# umask 333                                  #更改umask为333
[root@w zdw]# umask
0333
[root@w zdw]# mkdir 333dir                               #创建文件夹
[root@w zdw]# ls -ld 333dir/                             #777-333权限为444
dr--r--r--. 2 root root 4096 May  3 10:31 333dir/        
[root@w zdw]# touch 333file                              #创建文件
[root@w zdw]# ls -l 333file                              #666-333在奇数位加1权限为444
-r--r--r--. 1 root root 0 May  3 10:32 333file


注:奇数权限位对目录没影响,文件位有奇数时,加上1即可


学习自:老男孩