类UNIX系统的文件系统权限初级篇
类UNIX系统的文件系统权限初级篇
1. 文件系统与权限介绍
2. 权限设置 chmod
3. find与chmod的高级应用
4. 结束
今天看到一句话:
UNIX is very user-friendly. It's just picky who its friends are.
1. 文件系统与权限介绍
对于一个视窗用户, 接触linux的第一个门槛, 应该就是EXT文件系统的权限了
类UNIX操作系统都以其简洁又严谨的权限, 赢得了服务器操作系统的美称
如果设置一个user, 登陆系统, 任凭你怎么修改, 删除, 破坏文件
重新建立一个用户, 登陆, 丝毫没有任何影响, 系统也没有任何损坏
这也是类UNIX下, 没有病毒( 或者说, 感染病毒也根本不碍事 )的根本
视窗用户因为他们的文件系统和操作系统权限设计比较shit, 每天生活在苦闷中
如果系统盘是microsot宣称的最高级最先进最安全的NTFS分区格式,
那么非常抱歉, 这个系统, 除了超级管理员administrator或者有此权限的用户,
其他任何人都无法正常使用, 这不, 一个power user登陆了,
一会儿出现天网无法写日志错误, 天网防火墙就自动关闭了,
一会儿又什么写错误, 一连10个错误, 虽然跑起来了的桌面系统,
但防火墙什么都没有, 没有任何安全保障,
这就是microsoft所谓的高级技术的安全分区;
如果用administrator用户登陆, 那桌面系统不是正常了吗?!
对啊, 是正常了, 但是如果用户不小心运行了下载下来的带恶意代码的文件,
或者浏览了某张带有恶意代码的网页,
对不起, 恶意代码也是按照administrator的上下文权限,
可以把你的window系统破坏得淋漓尽致
(别忘记, internet explorer浏览器就是以漏洞著称的)
如果使用FAT32之类的分区, 挖卡卡, 病毒们更喜欢了,
因为那种分区根本没有权限设置, 一个普通用户就可以往系统里面写东西
修改或者删除系统文件, 直接等于找死!!
病毒这关过不去, 那就更别提服务器系统所需要的磁盘配额了
别无他求, 视窗用户必须牺牲把 10%或者更多的CPU资源,
浪费在病毒的实时防护和注册表的实时监视上,
或者磁盘使用检测来实现磁盘配额上
并且, 优秀的防病毒软件及附带的升级病毒库服务一般价格不菲, 可怜的人呐...
类UNIX系统的权限很简洁
对于初学者来说, 一个文件, 有3种权限, 读,写,运行
非常正确, 就3种权限, 所以我说很简洁
文件它有三种权限所属, 1拥有者, 2组群, 3其它用户
所有者的读写运行, 所属组群读写运行, 和其它用户读写运行
可以实现 9种权限的模式了!
看一个文件
第一组的 rwx 表示所有者具有 读写,运行权限
第二组的 rw- 表示所属组群具有 读写权限
第三组的 r-- 表示所有者具有 读权限
读一个文件, 就是查看文件里面的东西, 把文件从硬盘中加载到内存中的权限
写一个文件, 就是修改文件的内容
运行一个文件, 因为类UNIX系统没有注册表,
而视窗系统就是用注册表来维护扩展名的文件打开方式的
所以, 类UNIX下没有扩展名的概念, 如果某个普通文件是程序或者shell程序
只要给它加上运行权限, okay, 它就是被操作系统认可的可执行程序了
看某个目录
第一个d代表是目录文件( directory )
每组的表达跟文件一样( 类UNIX系统下, 一切皆文件 )
读一个目录, 就是列出目录底下的所有文件及子目录
写一个目录, 就是在该目录上拥有新建或者删除文件或者子目录的权限
运行一个目录, 就是拥有进入一个目录的权限
虽然只有 读写运行3种权限, 三种权限所属, 三三9种
一个文件的9种权限加上其父目录的9种权限,
简单的3种权限设置, 演化出 九九81种权限模式,
几乎适应任何一种服务或者文件共享或者什么的应用了!
很神奇吧!!
2. 权限设置 chmod ( change mode )
介绍这么多关于权限的文字, 现在讲下设置权限的操作,
类UNIX系统下最重要的命令之一 chmod
chmod [选项] [权限] 文件...
选项常用的有
-c 显示修改
-R 递归方式修改目录下的所有文件和子目录及子目录下的所有
-f 忽略错误信息
权限的表达有
u+x 添加(+)所有者( user )执行权限(x)
o-r 剥夺(-)其它( other )用户的读权限(r)
g=w 设置(=)组群( group )的写权限(w)
当然, 还可以复杂地书写
u+wr,o=r,g-xw
追加所有者的读写权限, 设置其它用户为写权限, 去除组群的写执行权限
看得懂吧?
每个权限对应一个位, 比如 二进制的 000三位分别代表读写执行
那么 r-x 就是 二进制的101了, 对应的权限数字就是 4+1 = 5
同理, 权限6, 二进制为 110, 对应就是 rw-
所以, chmod 中, 还可以用数字来表达权限,
比如 chmod -R 764 dorainm/
等同样 chmod -R u=rwx,g=rw,o=r dorainm/
文件可以用正则表达式来描述, 比如通配符之类的
3. find与chmod的高级应用
find是类UNIX系统中最强悍的文件查找工具了
就是显示当前目录及其子目录下的所有文件和目录名字
我们可以增加参数, 比如
就是递归方式列出当前目录下的所有以.c结尾的文件名(不要目录)
当然, 也可以用管道(pipe)来实现, 消耗高一些
find 中有个比较好用的执行参数, 比如
根据 ls -l, 这条命令就是把find查找到的文件, 以长文件信息形式列出
好玩吧
实际管理服务器中, 我们会遇到好多问题, 比如一个php站点./php
要求任何 *.php文件只读形式存在,
上传目录./php/updata下的文件可以被读写删除
好了, 千军万马都可以被 find 和 -R 递归参数来完成
有人要问, 果然UNIX很麻烦, 视窗系统只要文件传过去就可以用了
哎, 试想一下你的系统被入侵后,
攻击者也一个 del * /s /f /q /a 把你数据甚至系统全部毁掉
[quote]
del win32下的文件删除命令
/s 递归遍历所有文件子目录及下的所有
/f 强制删除只读文件
/q 安静模式,不出现询问
/a 所有文件都检查,包括系统文件、隐藏文件等
[quote]
天呐,你该怎么向你的衣食父母--客户们交代啊!!
双机热备份之类的数据恢复技术, 都是建立在大把大把的人.民.币基础上的!
而类UNIX下的这个网站, 因为文件没有写权限, .php程序文件不会被篡改,
目录没有写权限, 就无法删除目录结点下的文件了!!
4. 结束
UNIX初学者对权限很怕, 比如写个shell, 要运行, 又得 chmod u+x *.sh一下
或者一些支持UNIX的用户, 对于chmod的权限设置也觉得很复杂很忌讳说
其实, 这是类UNIX系统的一个亮点, 一个优良设计!!
即要实现服务器的安全性, 又要追求易用,
在这种矛盾的取舍中, 只有rwx三种权限的简洁又严谨的权限设置的类UNIX系统
绝对是当前的最佳解决方案
引回文章首的那句话:
UNIX is very user-friendly. It's just picky who its friends are.
2. 权限设置 chmod
3. find与chmod的高级应用
4. 结束
今天看到一句话:
UNIX is very user-friendly. It's just picky who its friends are.
1. 文件系统与权限介绍
对于一个视窗用户, 接触linux的第一个门槛, 应该就是EXT文件系统的权限了
类UNIX操作系统都以其简洁又严谨的权限, 赢得了服务器操作系统的美称
如果设置一个user, 登陆系统, 任凭你怎么修改, 删除, 破坏文件
重新建立一个用户, 登陆, 丝毫没有任何影响, 系统也没有任何损坏
这也是类UNIX下, 没有病毒( 或者说, 感染病毒也根本不碍事 )的根本
视窗用户因为他们的文件系统和操作系统权限设计比较shit, 每天生活在苦闷中
如果系统盘是microsot宣称的最高级最先进最安全的NTFS分区格式,
那么非常抱歉, 这个系统, 除了超级管理员administrator或者有此权限的用户,
其他任何人都无法正常使用, 这不, 一个power user登陆了,
一会儿出现天网无法写日志错误, 天网防火墙就自动关闭了,
一会儿又什么写错误, 一连10个错误, 虽然跑起来了的桌面系统,
但防火墙什么都没有, 没有任何安全保障,
这就是microsoft所谓的高级技术的安全分区;
如果用administrator用户登陆, 那桌面系统不是正常了吗?!
对啊, 是正常了, 但是如果用户不小心运行了下载下来的带恶意代码的文件,
或者浏览了某张带有恶意代码的网页,
对不起, 恶意代码也是按照administrator的上下文权限,
可以把你的window系统破坏得淋漓尽致
(别忘记, internet explorer浏览器就是以漏洞著称的)
如果使用FAT32之类的分区, 挖卡卡, 病毒们更喜欢了,
因为那种分区根本没有权限设置, 一个普通用户就可以往系统里面写东西
修改或者删除系统文件, 直接等于找死!!
病毒这关过不去, 那就更别提服务器系统所需要的磁盘配额了
别无他求, 视窗用户必须牺牲把 10%或者更多的CPU资源,
浪费在病毒的实时防护和注册表的实时监视上,
或者磁盘使用检测来实现磁盘配额上
并且, 优秀的防病毒软件及附带的升级病毒库服务一般价格不菲, 可怜的人呐...
类UNIX系统的权限很简洁
对于初学者来说, 一个文件, 有3种权限, 读,写,运行
非常正确, 就3种权限, 所以我说很简洁
文件它有三种权限所属, 1拥有者, 2组群, 3其它用户
所有者的读写运行, 所属组群读写运行, 和其它用户读写运行
可以实现 9种权限的模式了!
看一个文件
QUOTE:
dorainm@laptop: ~ $ ls -l dorainm
-rwxrw-r-- 1 dorainm master 7165 Jun 4 13:50 dorainm
dorainm@laptop: ~ $
-rwxrw-r-- 1 dorainm master 7165 Jun 4 13:50 dorainm
dorainm@laptop: ~ $
第一组的 rwx 表示所有者具有 读写,运行权限
第二组的 rw- 表示所属组群具有 读写权限
第三组的 r-- 表示所有者具有 读权限
读一个文件, 就是查看文件里面的东西, 把文件从硬盘中加载到内存中的权限
写一个文件, 就是修改文件的内容
运行一个文件, 因为类UNIX系统没有注册表,
而视窗系统就是用注册表来维护扩展名的文件打开方式的
所以, 类UNIX下没有扩展名的概念, 如果某个普通文件是程序或者shell程序
只要给它加上运行权限, okay, 它就是被操作系统认可的可执行程序了
看某个目录
QUOTE:
dorainm@laptop: ~ $ ls -l
... ...
drwxr-xr-x 7 dorainm master 4096 May 28 22:48 workspace
... ...
... ...
drwxr-xr-x 7 dorainm master 4096 May 28 22:48 workspace
... ...
第一个d代表是目录文件( directory )
每组的表达跟文件一样( 类UNIX系统下, 一切皆文件 )
读一个目录, 就是列出目录底下的所有文件及子目录
写一个目录, 就是在该目录上拥有新建或者删除文件或者子目录的权限
运行一个目录, 就是拥有进入一个目录的权限
虽然只有 读写运行3种权限, 三种权限所属, 三三9种
一个文件的9种权限加上其父目录的9种权限,
简单的3种权限设置, 演化出 九九81种权限模式,
几乎适应任何一种服务或者文件共享或者什么的应用了!
很神奇吧!!
2. 权限设置 chmod ( change mode )
介绍这么多关于权限的文字, 现在讲下设置权限的操作,
类UNIX系统下最重要的命令之一 chmod
chmod [选项] [权限] 文件...
选项常用的有
-c 显示修改
-R 递归方式修改目录下的所有文件和子目录及子目录下的所有
-f 忽略错误信息
权限的表达有
u+x 添加(+)所有者( user )执行权限(x)
o-r 剥夺(-)其它( other )用户的读权限(r)
g=w 设置(=)组群( group )的写权限(w)
当然, 还可以复杂地书写
u+wr,o=r,g-xw
追加所有者的读写权限, 设置其它用户为写权限, 去除组群的写执行权限
看得懂吧?
每个权限对应一个位, 比如 二进制的 000三位分别代表读写执行
那么 r-x 就是 二进制的101了, 对应的权限数字就是 4+1 = 5
同理, 权限6, 二进制为 110, 对应就是 rw-
所以, chmod 中, 还可以用数字来表达权限,
比如 chmod -R 764 dorainm/
等同样 chmod -R u=rwx,g=rw,o=r dorainm/
文件可以用正则表达式来描述, 比如通配符之类的
3. find与chmod的高级应用
find是类UNIX系统中最强悍的文件查找工具了
QUOTE:
dorainm@laptop: mode $ find
.
./dorainm
./ch01
./ch01/file01
./ch01/file02
dorainm@laptop: mode $
.
./dorainm
./ch01
./ch01/file01
./ch01/file02
dorainm@laptop: mode $
就是显示当前目录及其子目录下的所有文件和目录名字
我们可以增加参数, 比如
QUOTE:
find -type f -name '*.c'
就是递归方式列出当前目录下的所有以.c结尾的文件名(不要目录)
当然, 也可以用管道(pipe)来实现, 消耗高一些
QUOTE:
$ find | grep dorainm
find 中有个比较好用的执行参数, 比如
QUOTE:
find -type f -exec ls -l {} \;
根据 ls -l, 这条命令就是把find查找到的文件, 以长文件信息形式列出
好玩吧
实际管理服务器中, 我们会遇到好多问题, 比如一个php站点./php
要求任何 *.php文件只读形式存在,
上传目录./php/updata下的文件可以被读写删除
QUOTE:
chown -Rc apache ./php
chgrp -Rc apache ./php
find ./php -type -d -exec chmod 555 {} \;
find ./php -type -f -name '*.php' -exec chmod 444 {} \;
find ./php/updata -type -d -exec chmod 775 {} \;
find ./php/updata -type -f -exec chmod 664 {} \;
chgrp -Rc apache ./php
find ./php -type -d -exec chmod 555 {} \;
find ./php -type -f -name '*.php' -exec chmod 444 {} \;
find ./php/updata -type -d -exec chmod 775 {} \;
find ./php/updata -type -f -exec chmod 664 {} \;
好了, 千军万马都可以被 find 和 -R 递归参数来完成
有人要问, 果然UNIX很麻烦, 视窗系统只要文件传过去就可以用了
哎, 试想一下你的系统被入侵后,
攻击者也一个 del * /s /f /q /a 把你数据甚至系统全部毁掉
[quote]
del win32下的文件删除命令
/s 递归遍历所有文件子目录及下的所有
/f 强制删除只读文件
/q 安静模式,不出现询问
/a 所有文件都检查,包括系统文件、隐藏文件等
[quote]
天呐,你该怎么向你的衣食父母--客户们交代啊!!
双机热备份之类的数据恢复技术, 都是建立在大把大把的人.民.币基础上的!
而类UNIX下的这个网站, 因为文件没有写权限, .php程序文件不会被篡改,
目录没有写权限, 就无法删除目录结点下的文件了!!
4. 结束
UNIX初学者对权限很怕, 比如写个shell, 要运行, 又得 chmod u+x *.sh一下
或者一些支持UNIX的用户, 对于chmod的权限设置也觉得很复杂很忌讳说
其实, 这是类UNIX系统的一个亮点, 一个优良设计!!
即要实现服务器的安全性, 又要追求易用,
在这种矛盾的取舍中, 只有rwx三种权限的简洁又严谨的权限设置的类UNIX系统
绝对是当前的最佳解决方案
引回文章首的那句话:
UNIX is very user-friendly. It's just picky who its friends are.