对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。
同时,在linux系统中,用户是按组分类的,一个用户属于一个或多个组。
文件所有者以外的用户又可以分为文件所有者的同组用户和其他用户。
因此,linux系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。
在以下实例中,chen文件,属主和属组都为guest,属主有可读、可写和可执行权限,同组用户拥有可读、可执行权限,其他用户拥有可读权限。
但:对于root用户来说,一般情况下,文件的权限对其不起作用。
[email protected]:~$ ls -l chen -rwxr-xr-- 1 guest guest 0 Apr 6 02:44 chen
更改文件属性
1、chown:更改文件属主,也可以同时更改文件属组
语法:
chown [-R] 属主名 文件名 chown [-R] 属主名:属组名 文件名
参数选项:
-R:递归更改文件属组,就是在更改某个目录文件的属主时,如果加上-R的参数,那么该目录下的所有文件的属主都会被更改。
用法:
#查看原文件的属主和属组 [email protected]:/home/guest# ls -l chen -rwxr-xr-- 1 guest guest 0 Apr 6 02:44 chen #更改属主为root [email protected]:/home/guest# chown root chen [email protected]:/home/guest# ls -l chen -rwxr-xr-- 1 root guest 0 Apr 6 02:44 chen #更改属主为guest [email protected]:/home/guest# chown guest chen [email protected]:/home/guest# ls -l chen -rwxr-xr-- 1 guest guest 0 Apr 6 02:44 chen #同时更改属主和属组都为root [email protected]:/home/guest# chown root:root chen [email protected]:/home/guest# ls -l chen -rwxr-xr-- 1 root root 0 Apr 6 02:44 chen #仅更改属组为guest [email protected]:/home/guest# ls -l chen -rwxr-xr-- 1 root root 0 Apr 6 02:44 chen [email protected]:/home/guest# chown :guest chen [email protected]:/home/guest# ls -l chen -rwxr-xr-- 1 root guest 0 Apr 6 02:44 chen
2、chgrp:更改文件属组
语法:
chgrp [-R] 属组名 文件名
参数选项:
-R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。
[email protected]:/home/guest# ls -l chen -rwxr-xr-- 1 root root 0 Apr 6 02:44 chen [email protected]:/home/guest# chgrp guest chen [email protected]:/home/guest# ls -l chen -rwxr-xr-- 1 root guest 0 Apr 6 02:44 chen
3、chmod:更改文件的九个属性
linux文件属性有两种设置方法,一种是数字,另一种是符号。
linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限。
文件权限的字符为:-rwxrwxrwx 有九个权限,三个为一组,共三组。
其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:
r:4
w:2
x:1
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为:
[-rwxr-xr-x]的分数则是:
owner=r+w+x=4+2+1=7
group=r-x=4+0+1=5
other=r-x=4+0+1=5
所以该文件权限数字就是755。
chmod的用法:
chmod [-R] xyz 文件或目录
选项与参数:
xyz:就是刚刚提到的数字类型的权限属性,为rwx属性数值的相加。
-R:进行递归(recursive)的持续变更,亦即连同次目录下的所有文件或目录都会变更。
chmod的用法:
1、通过数字类型改变文件/文件夹的权限
把以下文件夹one的权限从原来的777更改为755,并连同one目录下的所有文件和文件夹都一起改变。
[email protected]:/home/guest# ls -l total 4 -rwxr-xr-- 1 root guest 0 Apr 6 02:44 chen drwxrwxrwx 4 root root 4096 Apr 6 03:23 one [email protected]:/home/guest# [email protected]:/home/guest# ls -l one total 8 drwxrwxrwx 2 root root 4096 Apr 6 03:23 two drwxrwxrwx 2 root root 4096 Apr 6 03:23 two2 -rwxrwxrwx 1 root root 0 Apr 6 03:23 two.txt [email protected]:/home/guest# [email protected]:/home/guest# chmod -R 755 one [email protected]:/home/guest# ls -l total 4 -rwxr-xr-- 1 root guest 0 Apr 6 02:44 chen drwxr-xr-x 4 root root 4096 Apr 6 03:23 one [email protected]:/home/guest# [email protected]:/home/guest# ls -l one total 8 drwxr-xr-x 2 root root 4096 Apr 6 03:23 two drwxr-xr-x 2 root root 4096 Apr 6 03:23 two2 -rwxr-xr-x 1 root root 0 Apr 6 03:23 two.txt
2、通过符号类型改变文件/文件夹的权限
[-rwxrwxrwx] 总共九个权限,每三个为一组,分别为属主、属组和其他用户。
属主使用u(user)表示,属组使用g(group)表示,其他使用o(other)表示,而使用a(all)则表示所有身份(包含u、g和o)。
用法:
u +(加入) r chmod g -(减去) w 文件或目录 o =(设定) x a
如下,使用符号类型更改文件/文件夹的权限。
[email protected]:/home/guest# ls -l total 0 -rw-r--r-- 1 root root 0 Apr 6 03:35 Mr_chan [email protected]:/home/guest# [email protected]:/home/guest# chmod u+x,g+w,o+x Mr_chan [email protected]:/home/guest# ls -l total 0 -rwxrw-r-x 1 root root 0 Apr 6 03:35 Mr_chan
权限可以增加,也可以减少,如下是去掉所有用户的执行权限。
[email protected]:/home/guest# ls -l total 0 -rwxrw-r-x 1 root root 0 Apr 6 03:35 Mr_chan [email protected]:/home/guest# chmod a-x Mr_chan [email protected]:/home/guest# [email protected]:/home/guest# ls -l total 0 -rw-rw-r-- 1 root root 0 Apr 6 03:35 Mr_chan