一天一点学习Linux之权限的设置

2011年01月19日 Linux基础 评论 3 条 阅读 11,838 views 次

上面两节我们讲了
Linux文件与目录权限的基本概念Linux文件类型和后缀名。下面,我们就来看看如何来修改这些权限。

修改权限的几个命令

chgrp :改变文件所属用户组
chown :改变文件所属用户
chmod :改变文件的权限

chgrp :(change group)改变文件所属用户组


 

要使用这个命令,后面接的用户组必需要在你的/etc/group文件内才可以,否则会报错。
重要参数:-R(recursive)递归处理,他会连目录里面的目录一同处理掉。也就是目录里面包含的全部文件都更改。

看个例子
[root@yufei ~]# ls -l install.log
-rw-r--r--. 1 root root 31537 Dec 15 22:43 install.log

这里的install.log是属于root用户组
[root@yufei ~]# chgrp yufei install.log
[root@yufei ~]# ls -l install.log
-rw-r--r--. 1 root yufei 31537 Dec 15 22:43 install.log

我们已经把install.log这个文件的用户组改成了yufei

再来看看这个-R参数
[root@yufei ~]# mkdir testdir
[root@yufei ~]# touch testdir/testfile
[root@yufei ~]# ls -ld testdir/ ; ls -l testdir/testfile
drwxr-xr-x. 2 root root 4096 Jan 20 02:01 testdir/
-rw-r--r--. 1 root root 0 Jan 20 02:01 testdir/testfile

我们看到testdir这个目录和testdir/testfile文件都是属于root用户组的。
[root@yufei ~]# chgrp yufei testdir/
[root@yufei ~]# ls -ld testdir/ ; ls -l testdir/testfile
drwxr-xr-x. 2 root yufei 4096 Jan 20 02:01 testdir/
-rw-r--r--. 1 root root 0 Jan 20 02:01 testdir/testfile

只有testdir/这个目录的所属用户组改成了yufei,而里面的文件没有改变。我们再加上-R参数来看看效果。
[root@yufei ~]# chgrp -R yufei testdir/
[root@yufei ~]# ls -ld testdir/ ; ls -l testdir/testfile
drwxr-xr-x. 2 root yufei 4096 Jan 20 02:01 testdir/
-rw-r--r--. 1 root yufei 0 Jan 20 02:01 testdir/testfile

两个都改变了。

chown :(change owner)改变文件所属用户

这个命令后面接的用户也必需是在/etc/passwd中的才能改变。
这里也有个-R参数,和上面一样的道理。
看例子
[root@yufei ~]# ls -l install.log
-rw-r--r--. 1 root yufei 31537 Dec 15 22:43 install.log
[root@yufei ~]# chown yufei install.log
[root@yufei ~]# ls -l install.log
-rw-r--r--. 1 yufei yufei 31537 Dec 15 22:43 install.log

这里还有一个应用,就是可以用户和用户组同时更改
[root@yufei ~]# chown root:root install.log
[root@yufei ~]# ls -l install.log
-rw-r--r--. 1 root root 31537 Dec 15 22:43 install.log

看到了吧,这个命令也可以用来更改用户组
[root@yufei ~]# chown :yufei install.log
[root@yufei ~]# ls -l install.log
-rw-r--r--. 1 root yufei 31537 Dec 15 22:43 install.log

关于-R的参数这里就不举例了,和上面的一样。

注:chown user:usergroup file这个格式中“:”前面是用户,后面是用户组,不更改的话就留空。这个方式使用的机率稍大。

chmod :(change mode)改变文件的权限

改变文件的权限,我们可以用两种方式来表示,一种是以rwx方式 ,另外一种就是数字方式。

第一种是以数字方式来表示

r:读取:4
w:写入:2
x:执行:1
我们前面也讲过,每三个是为一组,共owner/group/others三组,为了大家更容易理解,我们来看个例子。
[root@yufei ~]# ls -l install.log
-rw-r--r--. 1 root yufei 31537 Dec 15 22:43 install.log

第一个“-”表示的是普通文件
第一组:rw-=4+2+0=6
第二组:r--=4+0+0=4
第三组:r--=4+0+0=4
最后一点:表示SELinux安全上下文件
那我们来改变一下这个权限
[root@yufei ~]# chmod 666 install.log
[root@yufei ~]# ls -l install.log
-rw-rw-rw-. 1 root yufei 31537 Dec 15 22:43 install.log

这还是比较简单的,关键是要多操作,多领会,关于这些权限所代表的意思,可以参考Linux文件与目录权限的基本概念。同样,也有一个-R参数,效果也是一样的。

第二种以rwx方式表示

在开始前,我们来介绍一下user/group/others。这三个我们可以用u,g,o来分别表示,用a来表示所有。
如果想更改相应的权限,我们可以用下面的方式来更改。

chmod
还是来具体的看例子
[root@yufei ~]# ls -l install.log
-rw-rw-rw-. 1 root yufei 31537 Dec 15 22:43 install.log

我们把这个文件的权限改为-rwxr-xr-x.我们就可以这样来设置
[root@yufei ~]# chmod u+x,g=r-x,o=r-x install.log
[root@yufei ~]# ls -l install.log
-rwxr-xr-x. 1 root yufei 31537 Dec 15 22:43 install.log

这样就实现了我们想要的效果

注:
1、u,g,o之间用英文的“,”来分隔
2、如果没有权限,我们可以不用“-”来代替,直接略过。如g=r-x,o=r-x可以写成g=rx,o=rx,效果是一样的。

rwx对文件与目录的意义

其实这个权限的设置还是比较容易掌握的,关键是我们要深刻理解rwx对文件与目录的意义是什么,这个并不是每个人都能理解和掌握的,所以,我们在这里,再做个总结,来方便大家学习掌握。

rwx对文件的意义

r (read):可读取此文件里面的内容;
w (write):可以编辑、增加、删除或修改文件里面的内容(但这个文件能否被你删除,取决于你对这个目录的权限是什么);
x (eXecute):文件具有可以被系统执行的权限(如一些脚本文件)。

 

rwx对目录的意义

r(read contents in directory):读取目录里面的内容。
所以当你具有读取(r)一个目录的权限时,表示你可以查询该目录下的文件。所以我们就可以利用ls这个指令将该目录的内容列表显示出来。
w(modify contents of directory):编辑目录里面的内容。
主要包括
1、创建新的文件与目录
2、删除目录下面的文件与目录(无论该文件的权限是什么,这一点很重要)
3、对目录里面的文件与目录重命名
4、移动目录里面的文件与目录的位置
x(access directory):代表的是用户能否进入该目录成为工作目录。
这个也就是用cd命令能否进入某个目录

下面是一张图,希望对大家的理解能带来些帮助。

rwx
希望各位能够多动手来实践,特别是要掌握这个rwx对目录的意义。

本文关键字:一天一点,学习Linux,RHEL6,权限设置

3 条留言  访客:2 条  博主:1 条

  1. 刚好最近在学linux,嘿嘿。学习了。

  2. 学习一下呵呵

给我留言

Copyright © 羽飞博客 保留所有权利.   Ality主题 皖ICP备14013844号-1

用户登录