在系统中我们可以用chmod来设定文件权限 设定方式由三种1 字符方式设定文件权限 2数字方式设定文件权限 3依照模板复制文件权限
1字符方式来设定权限 chmod <u|g|o|a><+-=><r|w|x>目标 u代表用户 g代表用户组 o代表其他人 a代表所有 后面跟+-= 分别是添加 撤销 设定 后面跟相应的权限
对于file1来说所有人的权限是rwx 现在我们把w权限剪掉掉
给所有人和所有组去掉一个r权限
给其他人加上一个执行权限
给所有人加上r权限给所有组加上w权限 其他人去掉一个r权限
在权限设定时 相同位可以合并 不同位以逗号隔开
给所有位都减去r权限 给所有加上r权限
再给所有位都加上r权限
其他位权限的统一操作 直接采用+/-即可
我们给所有位都加上rwx权限 这里不表明用户会出问题 其他位的权限不是rwx
正确的添加方法
现在在-w权限 只对我们的所有人位权限作出了更改
r/x 表示的是去掉所有 但是w只去掉所有人的权力 如果想要给所有位都减去或者加上w
a+/-/+ 权限 代表所有位 如果前面什么都不加 在某些权限可能会出问题
我们的rwx一共是三位 如果三位权限都没有就是000 如果三位的权限都有那就是111 111代表二进制的7 权限可以用一个八进制数字来表示就是0-7 权限的管理方法 chmod 数字 TAG
对于file2文件我想让他的权限和file1相同
file1的权限就是555 操作如下
再让他的所有人和所有组的权限都加一个w 也就是rwxrwxr-x 等同于775
所以在更改权限的时候只需要把权限对应的八进制数计算出来赋值就可以了
3 权限复制 chmod --reference=/mnt/westos westos1 源文件 目标文件
比如当前file1文件的权限和file3的权限是不一样的
我们复制其权限 把file3文件的权限赋予给file1
权限预留阀值的理解
资源存在的意义在于共享 权限开放越大 共享效果越明显 但是安全性越差 对于系统安全而言 开放权力越小 系统越安全在系统中开放应应开放的权力以确保系统的功能性及安全性
在系统当中可以通过命令来查看系统的预留阀值 前面的0表示特殊权限的值 系统的最高权限777-阀值022=755 也就是说我们建立目录的权力是755
文件的权力 与umask有一定关系 但是如果我们的umask上没有设定预留阀值 那么文件权限的预留阀值要看文件系统是什么类型的 我们所用到的日志文件系统 比如:xfs或者ext文件系统他的预留阀值会减去个111 因为在linux中执行权力是很不安全的权力也就是777-022=755-111=644 他在文件系统上就会被去掉 因为我们所说的病毒 木马 以及一些后台等等 都是我们所说到的程序 而程序如果有执行权力 他就可以运行起来 这样会给系统带来不必要的损害 所以在文件系统把111去掉拉 而不是umask去掉了
创建文件和目录 权限分别是644和755
这个预留阀值越大 代表系统越安全 但是开放的功能就越少
现在再新建文件权限应该是777-077-111=600 新建目录的权限应该是777-077=700
但是这个设定是临时的设定 也就是说为退出这个shell 重新打开一个shell这个设定就不再生效了
重新链接 新建文件可以看到权限是644 目录的权限仍然是755
这是因为我们再shell当中设定的umask077 只是当前的shell生效了 当我退出这个程序 程序的设定就跟随程序的退出而关闭了我们把这样的设定称为临时设定 如果想永久的设定umask值 需要编辑两个文件 第一个是shell的配置文件
这里面有个if语句 如果我们的UID是大于199并且用户的名称和组名称是一致的那么他用的是上面这个 如果UID小于199或者用户和组的名字不一样用下面哪个 上面哪个是普通用户的umak 下面那个是超级用户的umask
现在我们修改超级用户的umask 用户的安全性就提高了
|
还要修改用户环境的配置文件 这两个文件的值必须是一直的
这两个文件更改完以后不会立即生效 因为这个文件在shell开启的时候已经读过了 在我们更改完以后shell根本就没有识别我们当前的更改
我们需要刷新一下
我们再创建文件 先把mnt下的文件删掉 可以看到权限是777-077-111=600 而不是之前的644
新建目录权限777-077=700
权限的预留阀值可以直接用umask直接指定 但是这个指定是临时的 umask 加预留阀值 就可以设定了 永久的更改umask需要更改两个文件 shell的配置文件和系统用户的配置文件 值两个文件的配置必须是一致的