下面小编给大家整理Linux下的文件权限设置修改详解linux操作系统(共含6篇),希望大家喜欢!同时,但愿您也能像本文投稿人“tianruoming”一样,积极向本站投稿分享好文章。
在linux中更改所属用户组是使用chgrp,更改文件拥有者, chown,更改9个属性, chmod这三种常用的问题,在linxu中这三个命令就是对文件目录权限的控制命令了,下面我来介绍它们的用法与实例,
我们已经知道文件权限对于系统的安全重要性了,也知道文件权限与用户与用户组的关系了,那么,如何修改文件的权限呢?我们可以修改多少文件权限呢?其实,一个文件的权限很多。我们先介绍几个简单的,例如:用户组、拥有者、各种身份的权限等等。
• chgrp:改变文件所属用户组 。
• chown:改变文件拥有者。
• chmod:改变文件的属性、SUID等特性。
更改所属用户组, chgrp
改变文件的用户组很简单,直接用chgrp即可,这个命令就是change group(改变用户组)的缩写。这样就很好记了。不过,请记住,要改变成为的用户组名称,必须在 /etc/group里存在,否则就会显示错误。
假设以root的身份登入FC4,那么,在你的家目录内有一个install.log文件,如何改变该文件的用户组呢?假设你已经知道在 /etc/group里已经存在一个名为users的用户组,但是,testing这个用户组名字就不存在 /etc/group中了,此时改变用户组成为users与testing,会有什么现象发生呢?[root@linux ~]# chgrp [-R] dirname/filename ...
参数:
-R : 进行递归( recursive )的持续更改,即连同子目录下的所有文件、目录
都更新成为这个用户组。常常用在更改某一目录的情况。
范例:
代码如下复制代码[root@linux ~]# chgrp users install.log[root@linux ~]# ls -l
-rw-r--r-- 1 root users 68495 Jun 25 08:53 install.log
[root@linux ~]# chgrp testing install.log
chgrp: invalid group name `testing'
<== 出现错误信息~找不到这个用户组名~
发现了吗?文件的用户组被改成users了,但要改成testing的时候,就会发生错误。注意,出现错误信息,还是要查查错误信息的内容才好。
更改文件拥有者, chown
那 么,如何改变一个文件的拥有者呢?很简单。既然改变用户组是change group,那么改变拥有者就是change owner(改变拥有者)。这就是chown这个命令的用途,要注意的是,用户必须是已经存在系统中的,也就是在 /etc/passwd这个文件中有记录的用户名称才可改变。
chown的用途很多,还可以顺便直接修改用户组的名称。此外,如果要连目录下的所有子目录或文件同时更改文件拥有者的话,直接加上 -R的参数即可。我们来看看语法与范例:
[root@linux ~]# chown [-R] 账号名称 文件或目录
[root@linux ~]# chown [-R] 账号名称:用户组名称 文件或目录
参数:
-R : 进行递归( recursive )的持续更改,即连同子目录下的所有文件、目录
都更新成为这个用户组。常常用在更改某一目录的情况。
范例:
代码如下复制代码[root@linux ~]# chown bin install.log[root@linux ~]# ls -l
-rw-r--r-- 1 bin users 68495 Jun 25 08:53 install.log
[root@linux ~]# chown root:root install.log
[root@linux ~]# ls -l
-rw-r--r-- 1 root root 68495 Jun 25 08:53 install.log
我们知道如何改变文件的用户组与拥有者了,那么,什么时候要使用chown或chgrp呢?或许你会觉得奇怪吧?是的,确实有时候需要更改文件的拥有者的,最常见的例子就是在复制文件给其他人时,我们使用最简单的cp来说明好了:
[root@linux ~]# cp 来源文件 目的文件
假设今天要将 .bashrc文件复制成为 .bashrc_test,且是要给bin这个人,你可以这样做:
代码如下复制代码[root@linux ~]# cp .bashrc .bashrc_test
[root@linux ~]# ls -al .bashrc*
-rw-r--r-- 1 root root 395 Jul 4 11:45 .bashrc
-rw-r--r-- 1 root root 395 Jul 13 11:31 .bashrc_test
怎么办?.bashrc_test还是属于root所有,如此一来,即使将文件拿给bin用户了,他仍然无法修改(看属性就知道了),所以就必须修改这个文件的拥有者与用户组。
更改9个属性, chmod
文件属性的改变使用chmod命令,但是,属性的设置方法有两种,分别可以使用数字或者是符号。
• 数字类型改变文件权限
Linux文件的基本属性有9个,分别是owner/group/others组别的read/write/ excute属性,先复习一下刚刚上面提到的数据:
-rwxrwxrwx
这9个属性是三个一组。其中,可以使用数字来表示各个属性,各属性的对照表如下:
r:4
w:2
x:1
同一组(owner/group/others)的3个属性(r/w/x)是需要累加的,例如当属性为 [-rwxrwx---] 则是:
代码如下复制代码wner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
thers= --- = 0+0+0 = 0
所以,等一下设置属性的更改时,该属性的数字就是770,
更改属性的命令chmod的语法是这样的:
[root@linux ~]# chmod [-R] xyz 文件或目录
参数:
xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
-R : 进行递归( recursive )的持续更改,即连同子目录下的所有文件、目录都更新成为这个用户组。常常用在更改某一目录的情况。
举例来说,如果要将 .bashrc这个文件所有的属性都打开,那么就发出命令:
代码如下复制代码[root@linux ~]# ls -al .bashrc
-rw-r--r-- 1 root root 395 Jul 4 11:45 .bashrc
[root@linux ~]# chmod 777 .bashrc
[root@linux ~]# ls -al .bashrc
-rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc
看到了吗?属性改变了。由于一个文件有三组属性,所以可以发现上面777为三组,而由于我们将所有的属性都打开,所以数字都相加,即“r+w+x = 4+2+1 = 7”。
如 果要将属性变成“-rwxr-xr–”呢?那么就成为 [4+2+1][4+0+1][4+0+0]=754。所以需要发出命令chmod 754 filename。最常发生的一个问题就是,常常我们以vi编辑shell的文字文件后,其属性通常是 -rw-rw-rw-,也就是666属性,如果要将它变成可执行文件,并且不要让其他人修改此文件的话,那么就需要 -rwxr-xr-x这个755的属性,所以就要使用chmod 755 test.sh。
另外,有些文件不希望被其他人看到,例如 -rwxr—–,那么就使用命令chmod 740 filename。
例题3:将 .bashrc文件的属性改回原来的 -rw-r–r–。
答:
chmod 644 .bashrc
• 符号类型改变文件权限
还 有一个改变属性的方法。从之前的介绍中可以发现,基本上就9个属性,分别是 (1)user (2)group (3)others三组。我们就可以通过u, g, o来表示三组的属性。此外,a表示all,即全部的三组。读写属性可以写成r, w, x。也就是可以使用下面的方式来看:
chmod u
g
o
a +(加入)
-(除去)
=(设置) r
w
x 文件或目录
假如我们要“设置”一个文件的属性为“-rwxr-xr-x”,基本上就是:
user (u):具有可读、可写、可执行的权限。
group与others (g/o):具有可读与执行的权限。
所以就是:
代码如下复制代码[root@linux ~]# chmod u=rwx,go=rx .bashrc
# 注意。那个 u=rwx,go=rx 是连在一起的,中间并没有任何空格。
代码如下复制代码[root@linux ~]# ls -al .bashrc
-rwxr-xr-x 1 root root 395 Jul 4 11:45 .bashrc
请 注意,r=rwx,og=rx这一段文字之间并没有空格隔开。那么,假如是“-rwxr-xr–”?可以使用“chmod u=rwx,g=rx,o=r filename”来设置。此外,如果不知道原先的文件属性,而只想要增加 .bashrc文件的每个人均可写入的权限,那么就可以使用:
代码如下复制代码[root@linux ~]# ls -al .bashrc
-rwxr-xr-x 1 root root 395 Jul 4 11:45 .bashrc
[root@linux ~]# chmod a+w .bashrc
[root@linux ~]# ls -al .bashrc
-rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc
而如果是要将属性去掉,而不更改其他属性呢?例如要去掉所有人的x属性,则:
代码如下复制代码[root@linux ~]# chmod a-x .bashrc
[root@linux ~]# ls -al .bashrc
-rw-rw-rw- 1 root root 395 Jul 4 11:45 .bashrc
知 道 +, -, = 的不同点了吗?+ 与 – 的状态下,只要是没有指定到的项目,则该属性“不会变动”。例如,上面的例子中,由于仅以 – 去掉x,则其他两个保持当时的值不变。多多练习一下,你就会知道如何改变属性。这在某些情况下很好用。举例来说,你想要教一个人如何让一个程序可以拥有执 行的权限,又不知道该文件原本的权限是什么,此时,利用chmod a+x filename,就可以让该程序拥有执行的权限了。很方便。
在linux中查看与修改文件权限我们都必须使用命令来操作,不能像windows一样点几下就好了,下面我们简单的介绍一下linux中的相关命令.
查看权限命令
查看目录的相关权限可以采用命令ls -lD,或者直接用ls -la
如
ls -l www.111cn.net //这里表示查看111cn目录
修改权限命令
chmod 777 文件名
1.chmod 577 /home/stuser -R
2.umask -p 0200
3.chown XXXX YYYY (XXXX 为用户名 YYYY为文件名)
权限列表
-rw------- (600) 只有所有者才有读和写的权限
-rw-r--r-- (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限
-rwx------ (700) 只有所有者才有读,写,执行的权限
-rwxr-xr-x (755) 只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限
-rwx--x--x (711) 只有所有者才有读,写,执行的权限,组群和其他人只有执行的权限
-rw-rw-rw- (666) 每个人都有读写的权限
-rwxrwxrwx (777) 每个人都有读写和执行的权限
在linux中如果想你的网站能正常运行我们需对目录与文件权限进行一些修配配置,下面我来介绍利用linux chmod函数来修改文件权限与目录权限,
语法:chown [选项] 用户或组 文件
说明:chown将指定文件的拥有者改为指定的用户或组。用户可以是用户名或用户ID。组可以是组名或组ID。文件是以空格分开的要改变权限的文件列表,支持通配符。
chmod 命令可以改变所有子目录的权限:
改变一个文件的权限:
代码如下复制代码chmod mode file|dir
改变所有子目录的权限:
代码如下复制代码chmod mode dir -R
注意后面加了个-R参数
如:将file目录下所有文件权限改为777:
代码如下复制代码chmod 777 file -R
想一次修改某个目录下所有文件的权限,包括子目录中的文件权限也要修改,要使用参数-R表示启动递归处理。
例如:
代码如下复制代码[root@localhost ~]# chmod 777 /home/user 注:仅把/home/user目录的权限设置为rwxrwxrwx
[root@localhost ~]# chmod -R 777 /home/user 注:表示将整个/home/user目录与其中的文件和子目录的权限都设置为rwxrwxrwx
想一次修改某个目录下所有文件的权限,包括子目录中的文件权限也要修改,要使用参数-R表示启动递归处理。
例如:
代码如下复制代码[root@localhost ~]# chmod 777 /home/user 注:仅把/home/user目录的权限设置为rwxrwxrwx
[root@localhost ~]# chmod -R 777 /home/user 注:表示将整个/home/user目录与其中的文件和子目录的权限都设置为rwxrwxrwx
查看目录权限
查看文件权限的语句:
在终端输入:
ls -l xxx.xxx (xxx.xxx是文件名)
那么就会出现相类似的信息,主要都是这些:
-rw-rw-r--
一共有10位数
其中: 最前面那个 - 代表的是类型
中间那三个 rw- 代表的是所有者(user)
然后那三个 rw- 代表的是组群(group)
最后那三个 r-- 代表的是其他人(other)
然后我再解释一下后面那9位数:
r 表示文件可以被读(read)
w 表示文件可以被写(write)
x 表示文件可以被执行(如果它是程序的话)
- 表示相应的权限还没有被授予
现在该说说修改文件权限了
在终端输入:
chmod o w xxx.xxx
表示给其他人授予写xxx.xxx这个文件的权限
chmod go-rw xxx.xxx
表示删除xxx.xxx中组群和其他人的读和写的权限
其中:
u 代表所有者(user)
g 代表所有者所在的组群(group)
o 代表其他人,但不是u和g (other)
a 代表全部的人,也就是包括u,g和o
r 表示文件可以被读(read)
w 表示文件可以被写(write)
x 表示文件可以被执行(如果它是程序的话)
其中:rwx也可以用数字来代替
r ------------4
w -----------2
x ------------1
- ------------0
行动:
表示添加权限
- 表示删除权限
= 表示使之成为唯一的权限
当大家都明白了上面的东西之后,那么我们常见的以下的一些权限就很容易都明白了:
-rw------- (600) 只有所有者才有读和写的权限
-rw-r--r-- (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限
-rwx------ (700) 只有所有者才有读,写,执行的权限
-rwxr-xr-x (755) 只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限
-rwx--x--x (711) 只有所有者才有读,写,执行的权限,组群和其他人只有执行的权限
-rw-rw-rw- (666) 每个人都有读写的权限
-rwxrwxrwx (777) 每个人都有读写和执行的权限
我们已经知道文件权限对于系统的安全重要性了,也知道文件权限与用户与用户组的关系了,那么,如何修改文件的权限呢?我们可以修改多少文件权限呢?其实,一个文件的权限很多,我们先介绍几个简单的,例如:用户组、拥有者、各种身份的权限等等。
• chgrp:改变文件所属用户组 。
• chown:改变文件拥有者。
• chmod:改变文件的属性、SUID等特性。
更改所属用户组, chgrp
改变文件的用户组很简单,直接用chgrp即可,这个命令就是change group(改变用户组)的缩写。这样就很好记了。不过,请记住,要改变成为的用户组名称,必须在 /etc/group里存在,否则就会显示错误。
假设以root的身份登入FC4,那么,在你的家目录内有一个install.log文件,如何改变该文件的用户组呢?假设你已经知道在 /etc/group里已经存在一个名为users的用户组,但是,testing这个用户组名字就不存在 /etc/group中了,此时改变用户组成为users与testing,会有什么现象发生呢?[root@linux ~]# chgrp [-R] dirname/filename ...
参数:
-R : 进行递归( recursive )的持续更改,即连同子目录下的所有文件、目录
都更新成为这个用户组。常常用在更改某一目录的情况。
范例:
[root@linux ~]# chgrp users install.log
[root@linux ~]# ls -l
-rw-r--r-- 1 root users 68495 Jun 25 08:53 install.log
[root@linux ~]# chgrp testing install.log
chgrp: invalid group name `testing' <== 出现错误信息~找不到这个用户组名~
发现了吗?文件的用户组被改成users了,但要改成testing的时候,就会发生错误。注意,出现错误信息,还是要查查错误信息的内容才好。
更改文件拥有者, chown
那 么,如何改变一个文件的拥有者呢?很简单。既然改变用户组是change group,那么改变拥有者就是change owner(改变拥有者)。这就是chown这个命令的用途,要注意的是,用户必须是已经存在系统中的,也就是在 /etc/passwd这个文件中有记录的用户名称才可改变。
chown的用途很多,还可以顺便直接修改用户组的名称。此外,如果要连目录下的所有子目录或文件同时更改文件拥有者的话,直接加上 -R的参数即可。我们来看看语法与范例:
[root@linux ~]# chown [-R] 账号名称 文件或目录
[root@linux ~]# chown [-R] 账号名称:用户组名称 文件或目录
参数:
-R : 进行递归( recursive )的持续更改,即连同子目录下的所有文件、目录
都更新成为这个用户组。常常用在更改某一目录的情况。
范例:
[root@linux ~]# chown bin install.log
[root@linux ~]# ls -l
-rw-r--r-- 1 bin users 68495 Jun 25 08:53 install.log
[root@linux ~]# chown root:root install.log
[root@linux ~]# ls -l
-rw-r--r-- 1 root root 68495 Jun 25 08:53 install.log
我们知道如何改变文件的用户组与拥有者了,那么,什么时候要使用chown或chgrp呢?或许你会觉得奇怪吧?是的,确实有时候需要更改文件的拥有者的,最常见的例子就是在复制文件给其他人时,我们使用最简单的cp来说明好了:
[root@linux ~]# cp 来源文件 目的文件
假设今天要将 .bashrc文件复制成为 .bashrc_test,且是要给bin这个人,你可以这样做:
[root@linux ~]# cp .bashrc .bashrc_test
[root@linux ~]# ls -al .bashrc*
-rw-r--r-- 1 root root 395 Jul 4 11:45 .bashrc
-rw-r--r-- 1 root root 395 Jul 13 11:31 .bashrc_test
怎么办?.bashrc_test还是属于root所有,如此一来,即使将文件拿给bin用户了,他仍然无法修改(看属性就知道了),所以就必须修改这个文件的拥有者与用户组。
更改9个属性, chmod
文件属性的改变使用chmod命令,但是,属性的设置方法有两种,分别可以使用数字或者是符号。
• 数字类型改变文件权限
Linux文件的基本属性有9个,分别是owner/group/others组别的read/write/ excute属性,先复习一下刚刚上面提到的数据:
-rwxrwxrwx
这9个属性是三个一组。其中,可以使用数字来表示各个属性,各属性的对照表如下:
r:4
w:2
x:1
同一组(owner/group/others)的3个属性(r/w/x)是需要累加的,例如当属性为 [-rwxrwx---] 则是:
wner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
thers= --- = 0+0+0 = 0
所以,等一下设置属性的更改时,该属性的数字就是770。更改属性的命令chmod的语法是这样的:
[root@linux ~]# chmod [-R] xyz 文件或目录
参数:
xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加,
-R : 进行递归( recursive )的持续更改,即连同子目录下的所有文件、目录都更新成为这个用户组。常常用在更改某一目录的情况。
举例来说,如果要将 .bashrc这个文件所有的属性都打开,那么就发出命令:
[root@linux ~]# ls -al .bashrc
-rw-r--r-- 1 root root 395 Jul 4 11:45 .bashrc
[root@linux ~]# chmod 777 .bashrc
[root@linux ~]# ls -al .bashrc
-rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc
看到了吗?属性改变了。由于一个文件有三组属性,所以可以发现上面777为三组,而由于我们将所有的属性都打开,所以数字都相加,即“r+w+x = 4+2+1 = 7”。
如 果要将属性变成“-rwxr-xr–”呢?那么就成为 [4+2+1][4+0+1][4+0+0]=754。所以需要发出命令chmod 754 filename。最常发生的一个问题就是,常常我们以vi编辑shell的文字文件后,其属性通常是 -rw-rw-rw-,也就是666属性,如果要将它变成可执行文件,并且不要让其他人修改此文件的话,那么就需要 -rwxr-xr-x这个755的属性,所以就要使用chmod 755 test.sh。
另外,有些文件不希望被其他人看到,例如 -rwxr—–,那么就使用命令chmod 740 filename。
例题3:将 .bashrc文件的属性改回原来的 -rw-r–r–。
答:
chmod 644 .bashrc
• 符号类型改变文件权限
还 有一个改变属性的方法。从之前的介绍中可以发现,基本上就9个属性,分别是 (1)user (2)group (3)others三组。我们就可以通过u, g, o来表示三组的属性。此外,a表示all,即全部的三组。读写属性可以写成r, w, x。也就是可以使用下面的方式来看:
chmod u
g
o
a +(加入)
-(除去)
=(设置) r
w
x 文件或目录
假如我们要“设置”一个文件的属性为“-rwxr-xr-x”,基本上就是:
user (u):具有可读、可写、可执行的权限。
group与others (g/o):具有可读与执行的权限。
所以就是:
[root@linux ~]# chmod u=rwx,go=rx .bashrc
# 注意。那个 u=rwx,go=rx 是连在一起的,中间并没有任何空格。
[root@linux ~]# ls -al .bashrc
-rwxr-xr-x 1 root root 395 Jul 4 11:45 .bashrc
请 注意,r=rwx,og=rx这一段文字之间并没有空格隔开。那么,假如是“-rwxr-xr–”?可以使用“chmod u=rwx,g=rx,o=r filename”来设置。此外,如果不知道原先的文件属性,而只想要增加 .bashrc文件的每个人均可写入的权限,那么就可以使用:
[root@linux ~]# ls -al .bashrc
-rwxr-xr-x 1 root root 395 Jul 4 11:45 .bashrc
[root@linux ~]# chmod a+w .bashrc
[root@linux ~]# ls -al .bashrc
-rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc
而如果是要将属性去掉,而不更改其他属性呢?例如要去掉所有人的x属性,则:
[root@linux ~]# chmod a-x .bashrc
[root@linux ~]# ls -al .bashrc
-rw-rw-rw- 1 root root 395 Jul 4 11:45 .bashrc
知 道 +, -, = 的不同点了吗?+ 与 – 的状态下,只要是没有指定到的项目,则该属性“不会变动”。例如,上面的例子中,由于仅以 – 去掉x,则其他两个保持当时的值不变。多多练习一下,你就会知道如何改变属性。这在某些情况下很好用。举例来说,你想要教一个人如何让一个程序可以拥有执 行的权限,又不知道该文件原本的权限是什么,此时,利用chmod a+x filename,就可以让该程序拥有执行的权限了。很方便。
总结
chmod 命令可以改变所有子目录的权限,下面有2种方法
改变一个文件的权限: chmod mode file|dir
改变所有子目录的权限: chmod mode dir -R 注意后面加了个-R参数
参数就是权限模式 mode = 777 or 752 ,666,,,
mode的三个数字,分别表示 owner,group,others所具有的权限。
1 = x 执行 2 = w 写 4 = r 读,比如owner具有所有权限,1+2+4=7,
又比如 group 具有 读 和 执行 权限 1+4 = 5
把目录/his及其下的所有文件和子目录的属主改成wang,属组改成users。
$ chown – R wang.users /his
昨天有一个朋友问关于Linux修改文件读写权限的这个问题,下面我来给大家介绍关于在Linux 如何查看与修改文件读写权限吧,有需了解的同学可参考,
ls -l xxx.xxx (xxx.xxx是文件名)
那么就会出现相类似的信息,主要都是这些:
查看linux文件的权限:ls -l 文件名称
查看linux文件夹的权限:ls -ld 文件夹名称(所在目录)
查看文件权限的相关参数
-rw-rw-r–
一共有10位数
其中: 最前面那个 – 代表的是类型
中间那三个 rw- 代表的是所有者(user)
然后那三个 rw- 代表的是组群(group)
最后那三个 r– 代表的是其他人(other)
然后我再解释一下后面那9位数:
r 表示文件可以被读(read)
w 表示文件可以被写(write)
x 表示文件可以被执行(如果它是程序的话)
- 表示相应的权限还没有被授予
现在该说说修改文件权限了
修改文件及文件夹权限:
sudo chmod -(代表类型)×××(所有者)×××(组用户)×××(其他用户)
常用修改权限的命令:
sudo chmod 600 ××× (只有所有者有读和写的权限)
sudo chmod 644 ××× (所有者有读和写的权限,组用户只有读的权限)
sudo chmod 700 ××× (只有所有者有读和写以及执行的权限)
sudo chmod 666 ××× (每个人都有读和写的权限)
sudo chmod 777 ××× (每个人都有读和写以及执行的权限)
在终端输入:
chmod o+w xxx.xxx
表示给其他人授予写xxx.xxx这个文件的权限
chmod go-rw xxx.xxx
表示删除xxx.xxx中组群和其他人的读和写的权限
其中:
u 代表所有者(user)
g 代表所有者所在的组群(group)
o 代表其他人,但不是u和g (other)
a 代表全部的人,也就是包括u,g和o
r 表示文件可以被读(read)
w 表示文件可以被写(write)
x 表示文件可以被执行(如果它是程序的话)
其中:rwx也可以用数字来代替
r ————4
w ———–2
x ————1
- ————0
行动:
+ 表示添加权限
- 表示删除权限
= 表示使之成为唯一的权限
当大家都明白了上面的东西之后,那么我们常见的以下的一些权限就很容易都明白了:
-rw——- (600) 只有所有者才有读和写的权限
-rw-r–r– (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限
-rwx—— (700) 只有所有者才有读,写,执行的权限
-rwxr-xr-x (755) 只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限
-rwx–x–x (711) 只有所有者才有读,写,执行的权限,组群和其他人只有执行的权限
-rw-rw-rw- (666) 每个人都有读写的权限
-rwxrwxrwx (777) 每个人都有读写和执行的权限
在linux中权限是一个非常复杂的东西,如果权限没有设置好我们就无法对文件或目录进行操作了,下面我来介绍chmod命令对文件或目录权限设置
法:chmod [who] [+ | - | =] [mode] 文件名
命令中各选项的含义为
u 表示“用户(user)”,即文件或目录的所有者,
g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。
o 表示“其他(others)用户”。
a 表示“所有(all)用户”。它是系统默认值。
操作符号可以是:
+ 添加某个权限。
- 取消某个权限。
= 赋予给定权限并取消其他所有权限(如果有的话)。
设置mode所表示的权限可用下述字母的任意组合:
r 可读。
w 可写。
x 可执行。
X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。
s 在文件执行时把进程的属主或组ID置为该文件的文件属主。方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。
t 保存程序的文本到交换设备上。
u 与文件属主拥有一样的权限。
g 与和文件属主同组的用户拥有一样的权限。
o 与其他用户拥有一样的权限。
用命令chmod改变文件权限.有两种
第一种
chmod (ugoa) (=-+) (rwx) file
u代表文件属主,g代表文件属组,o代表系统中除属主和属组成员之外的其他用户,a代表所有用户(u,g,o)总和
+代表增加相应的权限,-代表减少相应的权限,=代表只有相应的权限
chmod g-w file就可以完成上面那个文件的权限改正.
第二种
用数字改正,r为4,w为2,x为1
把数字相加就是所对应的权限,不如rwx就是7,rw就是6
改正上面问题的权限方法为
chmod 775 file 就行了
偶尔要用到的命令,记录一下啊。
find /path -type f -exec chmod 644 {} ;
find /path -type d -exec chmod 755 {} ;
示例:
(1)将档案 file1.txt 设为所有人皆可读取 :
chmod ugo+r file1.txt
(2)将档案 file1.txt 设为所有人皆可读取 :
chmod a+r file1.txt
(3)将档案 file1.txt 与 file2.txt 设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :
chmod ug+w,o-w file1.txt file2.txt
(4)将 ex1.py 设定为只有该档案拥有者可以执行 :
chmod u+x ex1.py
(5)将目前目录下的所有档案与子目录皆设为任何人可读取 :
chmod -R a+r *
(6)收回所有用户的对file1的执行权限
chmod a-x file1
使用数字来赋权
4.1 先看一下文件的权限格式
[root@qs-wg-db2 scripts]# ll
total 20
-rw-r--r-- 1 oracle oinstall 0 Feb 24 00:00 alertlogbyday.log
-rwxr-xr-x 1 oracle oinstall 430 Feb 20 01:10 alertlogbyday.sh
-rwxr-xr-x 1 oracle oinstall 7 Feb 24 05:00 del_st_arch.log
-rwxr-xr-x 1 oracle oinstall 648 Feb 19 00:51 del_st_archive.sh
-rwxr-xr-x 1 oracle oinstall 9 Feb 24 05:00 max_sn.log
drwxr-xr-x 3 root root 4096 Feb 23 23:40 pymonitor
ll的结果返回七列,分别表示如下含义:
第一栏 [文件属性]
第二栏 [文件数]
第三栏 [拥有者]
第四栏 [所有者群组]
第五栏 [大小]
第六栏 [建档日期]
第七栏 [档名]
范例 :将档案 file1.txt 设为所有人皆可读取 :
1.chmod ugo+r file1.txt
将档案 file1.txt 设为所有人皆可读取 :
1. chmod a+r file1.txt
将档案 file1.txt 与 file2.txt 设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :
1.chmod ug+w,o-w file1.txt file2.txt
将 ex1.py 设定为只有该档案拥有者可以执行 :
1.chmod u+x ex1.py
将目前目录下的所有档案与子目录皆设为任何人可读取 :
1.chmod -R a+r *
此外chmod也可以用数字来表示权限如 chmod 777 file
1.语法为:chmod abc file
其中a,b,c各为一个数字,分别表示User、Group、及Other的权限,
r=4,w=2,x=1
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=5。
范例:
1.chmod a=rwx file
和
1.chmod 777 file
效果相同
1.chmod ug=rwx,o=x file
和
1.chmod 771 file
效果相同
若用chmod 4755 filename可使此程序具有root的权限
★ linux中文件操作命令(创建、删除、查看、权限设置)linux操作系统
★ unix/linux中显示文件权限代码linux操作系统