修改文件权限chmod命令

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Linux文件及目录的存取权限设置chmod
2006年06月06日08:05 来源:ChinaUnix博客作者:新华网编辑:周荣茂
Linux 文件及目录的存取权限设置
菜牙齿个人理解,有什么错误希望大家指教
我们都知道,linux下每个文件和目录都有权限,不同的用户,有着对文件不同的权限
在这里权限无非就是读,写,执行.我们也经常遇见执行文件是,系统提示:权限不够
这就是文件或权限设置的问题
下面简单先说下属主和属组
-----------------------------------
文件的属主和属组
文件的属主和文件的属组是通过chown命令来定义的,当创建一个文件或者目录的时候,系统默认为创建用户为属主
[quote]
# ls –l httpd.conf
-rwxr-xr-x 1 root admin 34890 10月19 20:17 httpd.conf[/quote]
在这里 root 就是文件的属主 admin 文件的属组
格式: chown [所有者]:[属组] file
例: #chown root:admin httpd.conf
----------------------------
文件目录的存取权限
当创建一个文件的时候,系统保存了有关该文件的全部信息,包括: [quote]
文件模式(mode),占9位
文件类型(type),占一位
文件连接位数(count)
文件属组(group)
文件属主(user)
以字节计的文件长度(size)
文件最后更改时间(time)
文件名(name)
符号连接(s_link)
[/quote]
现在我们用ls –l 命令查看下当前目录下文件的属性
# ls –l httpd.conf
lrwxr-xr-x 1 root admin 34890 10月19 20:17 httpd.conf->;/home/file.txt
[/quote]
我们可以看到这就是httpd.conf文件的全部属性,我们从左侧开始说都代表什么
l --------------------文件类型位(type),占一位
rwxr-xr-x----------文件模式(mode),占9位
1--------------------连接数位(count)
root----------------文件属主(user)
admin--------------文件属组(group)
34890--------------以字节计的文件长度(size)
10月19 20:17-----文件最后更改时间(time)
httpd.conf---------文件名(name)
->;/home/file.txt--符号连接(s_link)
--------------------------------
一文件类型(type)
Linux支持的文件类型主要包括一下7类,箭头右面的字符就是相应的文件类型位标志:
1、- -------------- 普通文件
2、d -------------- 目录文件
3、l -------------- 符号连接
4、c -------------- 字符设备文件
5、b -------------- 块设备文件
6、命名管道FIFO
7、套接口socket
1、普通文件:就是普通文件,你用'vi myfile'建立的myfile就是普通文件,比如可执行二进制代码文件、ASCII文本文件、数据文件、配置文件等等
2、目录文件:目录可以理解成放其它文件和其它目录的容器,是一种特殊文件,其内容由目录项组成
3、设备文件:
Linux下的设备文件分为三大类:字符设备、块设备和网络设备
a.字符设备是直接读取的,不使用缓冲区,象串行口、终端等
b.块设备都是通过缓冲区进行读取的,并且每次只能读取一定数量的块,比如磁盘每次至少要读取一个扇区(如512字节),块设备可以实现随
c.网络设备主要存放在/dev目录下,可以 ls -l 查看下都有什么
---------------------------------
二文件模式
lrwxr-xr-x 这是该文件的权限位
第一个l
:指定文件类型,表示该文件是一个符号连接文件。

(所创建的文件绝大多数都是普通文件或符号链接文件)除去最前面的横杠,一共是9个字符,他们分别对应9
个权限位。

通过这些权限位,可以设定用户对文件的访问权限。

我们把权限位分为3个部分: 文件属主. 属组用户. 其他用户
[quote]
前三位:rwx:它的所有者是root,即就是文件所有者,它对这个文件的权限是读写执行
中间三位:r-x:表示admin组中其它用户对这个文件的权限是读和执行
后面位:r-x:就是即不是所有者,也不是属组的对文件的权限是读和执行
[/quote]
通过chmod命令可以改变用户对相应文件的存取权限,权限的算法如下 | 8 7 6 | 5 4 3 | 2 1 0 |
|------|------|------|
| r w x | r - x | r - x |
|------|------|------|
1 1 1 ---1 0 1---1 0 1 = 755
(有权限看作是 1 没有权限看作是 0 这样3组2进制可以算出权限位)
这样我们就可以给文件加我们需要的权限
[quote]
# chmod 755 httpd.conf
[/quote]
Chmod命令的格式:chmod [mode] file
在设定权限的时候,还可以按照下面查出与文件属主、属组用户和其他用户所具有的权限相对应的数字,并把它们加起来,就是相应的权限表示可以看出,文件属主、属组用户和其他用户分别所能够具有的最大权限值就是7
[quote]
4 0 0 文件属主可读
2 0 0 文件属主可写
1 0 0 文件属主可执行
0 4 0 属组用户可读
0 2 0 属组用户可写
0 1 0 属组用户可执行
0 0 4 其他用户可读
0 0 2 其他用户可写
0 0 1 其他用户可执行
[/quote]
[quote]
文件属主:r w x:4 + 2 + 1
属组用户:r w x:4 + 2 + 1
其他用户:r w x:4 + 2 + 1
[/quote]
例:刚才httpd.conf权限位是rwxr-xr-x,那我们根据上面可以算出权限为755
[quote]
文件属主:4+2+1=7
属组用户:4+0+1=5
其他用户:4+0+1=5
[/quote]
一般用户默认建立文件权限是664 建立目录权限是775
很多配置文档上都有说给文件加执行权限,然后是
chmod a+x filename 最初不明白什么意思,只是照做,这里简单说下吧当我们执行# chmod a+x filename 的时候,意思是对此文件所有用户都有执行权限
同样我们执行# chmod a-x filename 是把文件的执行权限去掉,对所有用户
用户的定义:u 所有者 g 属组 o 其它用户 a 所有用户
权限的定义:r 读 w 写 x 执行
例:我们要让aaa.txt文件对它所在组所有用户都有执行权限,那么我们可以执行
[quote]
# chmod g+x aaa.txt
[/quote]
----------------------------------
三连接数
文件的连接计数域表明本系统中共有几个文件目录项的节点和本文件相同,也就是本文件共有几个硬连接
那么对于目录,目录的计算同样表示共有多少个目录项指向此目录
[quote]
# ls –l /home
d rwx r-x r-x 5 root root 4096 4月 18 16:57 home
[/quote]
大家看到/home目录的属性连接数是5,那么home目录下就包含了3个子目录
为什么不是5个呢,因为还有home本身,和上级目录,也就是当我们在home目录
下执行ls -al 时,看到的 . ..
[quote]
.
..
drwx------ 1 hlj hlj 4096 4月 15 14:23 aaa
drwxr-xr-x 1 root root 4096 4月 16 18:49 bbb
drwx------ 9 pub pub 4096 4月 13 21:22 ccc
[/quote]
-----------------------------------
四文件的属主和属组
这里就是说明本文件是属于那个用户和那个用户组,不同的属主和不同的属组对文件的操作权限也是不同的.
[quote]
# ls –l httpd.conf
-rwx r-x r-x 1 root admin 34890 10月19 20:17 httpd.conf
[/quote]
如果我们是以aaa用户登陆,而aaa是属于admin组,那么aaa用户对文件的操作权限只有读和执行权限.如果是root用户登陆,那对文件的操作权限就是读,写,执行.
---------------------------------
五符号连接(软链接)
符号连接是一种独立的文件类型,它有自己的数据区,但数据区的内容
只是一个被它指向的文件的路径名.前面那节的例子说明文件httpd.conf 是一个指
向file.txt
文件的符号连接,如果我们执行httpd.conf,系统自动将它指向的文件而不是执行httpd.conf文件本身,也就是说打开的文件是
file.txt.
建立符号连接和建立硬连接一样使用ln命令
格式: ln –s [源文件] [目标文件]
[quote]
# ln –s /home/file.txt /home/httpd.conf
[/quote]
这里就类似与windows下的快捷方式,目标文件只是做了一个文件路径的指向.。

相关文档
最新文档