在系统中我们可以用chmod来设定文件权限 设定方式由三种1 字符方式设定文件权限 2数字方式设定文件权限 3依照模板复制文件权限

1字符方式来设定权限 chmod <u|g|o|a><+-=><r|w|x>目标   u代表用户 g代表用户组 o代表其他人 a代表所有 后面跟+-= 分别是添加 撤销 设定 后面跟相应的权限

liunx 文件夹给docker权限_文件权限


对于file1来说所有人的权限是rwx 现在我们把w权限剪掉掉

liunx 文件夹给docker权限_文件系统_02


给所有人和所有组去掉一个r权限

liunx 文件夹给docker权限_liunx 文件夹给docker权限_03


给其他人加上一个执行权限

liunx 文件夹给docker权限_文件权限_04


给所有人加上r权限给所有组加上w权限 其他人去掉一个r权限

liunx 文件夹给docker权限_liunx 文件夹给docker权限_05


在权限设定时 相同位可以合并 不同位以逗号隔开   

给所有位都减去r权限 给所有加上r权限

liunx 文件夹给docker权限_文件权限_06


再给所有位都加上r权限

liunx 文件夹给docker权限_配置文件_07


其他位权限的统一操作 直接采用+/-即可

我们给所有位都加上rwx权限  这里不表明用户会出问题 其他位的权限不是rwx

liunx 文件夹给docker权限_配置文件_08


正确的添加方法

liunx 文件夹给docker权限_文件权限_09


现在在-w权限   只对我们的所有人位权限作出了更改

liunx 文件夹给docker权限_配置文件_10


r/x 表示的是去掉所有 但是w只去掉所有人的权力 如果想要给所有位都减去或者加上w

liunx 文件夹给docker权限_配置文件_11


liunx 文件夹给docker权限_配置文件_12


a+/-/+ 权限 代表所有位 如果前面什么都不加 在某些权限可能会出问题


我们的rwx一共是三位 如果三位权限都没有就是000   如果三位的权限都有那就是111   111代表二进制的7  权限可以用一个八进制数字来表示就是0-7   权限的管理方法 chmod 数字  TAG

对于file2文件我想让他的权限和file1相同

liunx 文件夹给docker权限_文件权限_13


file1的权限就是555 操作如下

liunx 文件夹给docker权限_liunx 文件夹给docker权限_14


再让他的所有人和所有组的权限都加一个w    也就是rwxrwxr-x 等同于775

liunx 文件夹给docker权限_liunx 文件夹给docker权限_15


所以在更改权限的时候只需要把权限对应的八进制数计算出来赋值就可以了


3 权限复制 chmod --reference=/mnt/westos  westos1   源文件  目标文件

比如当前file1文件的权限和file3的权限是不一样的

liunx 文件夹给docker权限_配置文件_16


我们复制其权限 把file3文件的权限赋予给file1

liunx 文件夹给docker权限_liunx 文件夹给docker权限_17




权限预留阀值的理解

  资源存在的意义在于共享 权限开放越大 共享效果越明显 但是安全性越差 对于系统安全而言 开放权力越小 系统越安全在系统中开放应应开放的权力以确保系统的功能性及安全性

在系统当中可以通过命令来查看系统的预留阀值  前面的0表示特殊权限的值  系统的最高权限777-阀值022=755 也就是说我们建立目录的权力是755

liunx 文件夹给docker权限_文件权限_18


文件的权力 与umask有一定关系 但是如果我们的umask上没有设定预留阀值 那么文件权限的预留阀值要看文件系统是什么类型的 我们所用到的日志文件系统 比如:xfs或者ext文件系统他的预留阀值会减去个111  因为在linux中执行权力是很不安全的权力也就是777-022=755-111=644 他在文件系统上就会被去掉 因为我们所说的病毒 木马 以及一些后台等等 都是我们所说到的程序 而程序如果有执行权力 他就可以运行起来 这样会给系统带来不必要的损害 所以在文件系统把111去掉拉  而不是umask去掉了

创建文件和目录 权限分别是644和755

liunx 文件夹给docker权限_文件系统_19



这个预留阀值越大 代表系统越安全  但是开放的功能就越少

liunx 文件夹给docker权限_liunx 文件夹给docker权限_20


现在再新建文件权限应该是777-077-111=600  新建目录的权限应该是777-077=700

liunx 文件夹给docker权限_配置文件_21


但是这个设定是临时的设定 也就是说为退出这个shell 重新打开一个shell这个设定就不再生效了

liunx 文件夹给docker权限_liunx 文件夹给docker权限_22


重新链接 新建文件可以看到权限是644 目录的权限仍然是755

liunx 文件夹给docker权限_liunx 文件夹给docker权限_23


这是因为我们再shell当中设定的umask077 只是当前的shell生效了 当我退出这个程序 程序的设定就跟随程序的退出而关闭了我们把这样的设定称为临时设定 如果想永久的设定umask值 需要编辑两个文件 第一个是shell的配置文件

liunx 文件夹给docker权限_文件权限_24


这里面有个if语句 如果我们的UID是大于199并且用户的名称和组名称是一致的那么他用的是上面这个 如果UID小于199或者用户和组的名字不一样用下面哪个  上面哪个是普通用户的umak 下面那个是超级用户的umask

liunx 文件夹给docker权限_配置文件_25


现在我们修改超级用户的umask   用户的安全性就提高了

liunx 文件夹给docker权限_文件权限_26

|

还要修改用户环境的配置文件  这两个文件的值必须是一直的

liunx 文件夹给docker权限_文件权限_27


liunx 文件夹给docker权限_liunx 文件夹给docker权限_28


这两个文件更改完以后不会立即生效 因为这个文件在shell开启的时候已经读过了 在我们更改完以后shell根本就没有识别我们当前的更改

liunx 文件夹给docker权限_配置文件_29


我们需要刷新一下

liunx 文件夹给docker权限_文件系统_30


我们再创建文件  先把mnt下的文件删掉 可以看到权限是777-077-111=600 而不是之前的644

liunx 文件夹给docker权限_liunx 文件夹给docker权限_31


新建目录权限777-077=700

liunx 文件夹给docker权限_文件系统_32


权限的预留阀值可以直接用umask直接指定 但是这个指定是临时的 umask 加预留阀值 就可以设定了 永久的更改umask需要更改两个文件 shell的配置文件和系统用户的配置文件 值两个文件的配置必须是一致的