linux文件权限学习随笔二——如何修改文件权限
一、修改文件所属组群——chgrp
[root@redhat ~]# groupadd groupa
[root@redhat ~]# groupadd groupb
[root@redhat ~]# groupadd groupb
[root@redhat ~]# useradd -g groupa zgz
[root@redhat ~]# su - zgz
[zgz@redhat ~]$ touch filea
[zgz@redhat ~]$ touch fileb
[zgz@redhat ~]$ ls -l
total 8
-rw-r--r-- 1 zgz groupa 0 Sep 26 05:48 filea
-rw-r--r-- 1 zgz groupa 0 Sep 26 05:50 fileb
total 8
-rw-r--r--
-rw-r--r--
[zgz@redhat ~]$ su -
Password:
[root@redhat ~]# cd /home/zgz/ --
[root@redhat zgz]# chgrp groupb filea --改变filea所属群组
[root@redhat zgz]# ls -l
total 8
-rw-r--r-- 1 zgz groupb 0 Sep 26 05:48 filea
-rw-r--r-- 1 zgz groupa 0 Sep 26 05:50 fileb
Password:
[root@redhat ~]# cd /home/zgz/
[root@redhat zgz]# chgrp
[root@redhat zgz]# ls -l
total 8
-rw-r--r--
-rw-r--r--
二、修改文件拥有者——chown
[root@redhat zgz]# ls -l
total 20
-rw-r--r-- 1 zgz groupb 0 Sep 26 05:48 filea
-rw-r--r-- 1 zgz groupa 3 Sep 26 05:59 fileb
drwxr-xr-x 2 zgz groupa 4096 Sep 26 06:07 zgzdir
[root@redhat zgz]# chown myy fileb --修改fileb的拥有者为myy
[root@redhat zgz]# ls -l
total 20
-rw-r--r-- 1 zgz groupb 0 Sep 26 05:48 filea
-rw-r--r-- 1 myy groupa 3 Sep 26 05:59 fileb
drwxr-xr-x 2 zgz groupa 4096 Sep 26 06:07 zgzdir
[root@redhat zgz]# chown myy:groupa filea --修改filea的拥有者为myy,并且同
[root@redhat zgz]# ls -l 时修改组群为groupa
total 20
-rw-r--r-- 1 myy groupa 0 Sep 26 05:48 filea
-rw-r--r-- 1 myy groupa 3 Sep 26 05:59 fileb
drwxr-xr-x 2 zgz groupa 4096 Sep 26 06:07 zgzdir
[root@redhat zgz]# chown -R myy zgzdir--修改zgzdir目录的拥有者为myy,并且
[root@redhat zgz]# ls -l 同时改变其下所有文件拥有者
total 20
-rw-r--r-- 1 myy groupa 0 Sep 26 05:48 filea
-rw-r--r-- 1 myy groupa 3 Sep 26 05:59 fileb
drwxr-xr-x 2 myy groupa 4096 Sep 26 06:07 zgzdir
[root@redhat zgz]# cd zgzdir/
[root@redhat zgzdir]# ls -l
total 8
-rw-r--r-- 1 myy groupa 0 Sep 26 06:07 filec
-rw-r--r-- 1 myy groupa 0 Sep 26 06:07 filed
total 20
-rw-r--r--
-rw-r--r--
drwxr-xr-x
[root@redhat zgz]# chown myy fileb
[root@redhat zgz]# ls -l
total 20
-rw-r--r--
-rw-r--r--
drwxr-xr-x
[root@redhat zgz]# chown myy:groupa filea
[root@redhat zgz]# ls -l
total 20
-rw-r--r--
-rw-r--r--
drwxr-xr-x
[root@redhat zgz]# chown -R myy
[root@redhat zgz]# ls -l
total 20
-rw-r--r--
-rw-r--r--
drwxr-xr-x
[root@redhat zgz]# cd zgzdir/
[root@redhat zgzdir]# ls -l
total 8
-rw-r--r--
-rw-r--r--
三、改变文件权限——chmod
我们再将这些数字相加,就得到每一组的权限值,例如
-rw-r--r-- 1 myy groupa 0 Sep 26 06:07 filed
第一组(user):rw- = 4+2+0 = 6
第二组(group):r-- = 4+0+0 = 4
第三组(others):r-- = 4+0+0 = 4
那么644就是fileb权限的数字表示值。
[root@redhat zgzdir]# ls -l
total 8
-rw-r--r-- 1 myy groupa 0 Sep 26 06:07 filec
-rw-r--r-- 1 myy groupa 0 Sep 26 06:07 filed
[root@redhat zgzdir]# chmod 777 filec --将filec的权限改变为777
[root@redhat zgzdir]# ls -l
total 8
-rwxrwxrwx 1 myy groupa 0 Sep 26 06:07 filec
-rw-r--r-- 1 myy groupa 0 Sep 26 06:07 filed
[root@redhat zgzdir]# chmod 750 filed--将filed的权限改变为750
[root@redhat zgzdir]# ls -l
total 8
-rwxrwxrwx 1 myy groupa 0 Sep 26 06:07 filec
-rwxr-x--- 1 myy groupa 0 Sep 26 06:07 filed
total 8
-rw-r--r--
-rw-r--r--
[root@redhat zgzdir]# chmod 777 filec
[root@redhat zgzdir]# ls -l
total 8
-rwxrwxrwx
-rw-r--r--
[root@redhat zgzdir]# chmod 750 filed--将filed的权限改变为750
[root@redhat zgzdir]# ls -l
total 8
-rwxrwxrwx
-rwxr-x---
chmod u/g/o/a +(加入)/-(除去)/=(设定) r/w/x 文件或者目录
[root@redhat zgzdir]# ls -l
total 8
-rwxrwxrwx 1 myy groupa 0 Sep 26 06:07 filec
-rwxr-x--- 1 myy groupa 0 Sep 26 06:07 filed
[root@redhat zgzdir]# chmod u=rwx,go=rx filed--修改filed的文件属性
[root@redhat zgzdir]# ls -l
total 8
-rwxrwxrwx 1 myy groupa 0 Sep 26 06:07 filec
-rwxr-xr-x 1 myy groupa 0 Sep 26 06:07 filed
total 8
-rwxrwxrwx
-rwxr-x---
[root@redhat zgzdir]# chmod u=rwx,go=rx filed--修改filed的文件属性
[root@redhat zgzdir]# ls -l
total 8
-rwxrwxrwx
-rwxr-xr-x
其中g和o也可以用“,”分开来分别设定。
假设目前我不知道各组权限如何,只是想让所有组都增加“x”权限,那么我们可以用chmod a+x filename来实现,
举例:
[root@redhat zgz]# ls -l
total 24
-rw-r--r-- 1 myy groupa 0 Sep 26 05:48 filea
-rw-r--r-- 1 myy groupa 3 Sep 26 05:59 fileb
-rw-r--r-- 1 zgz groupa 0 Sep 26 06:39 fileg
drwxr-xr-x 2 myy groupa 4096 Sep 26 06:07 zgzdir
[root@redhat zgz]# chmod a+x filea --修改filea的文件属性,所有组都增加“x”权限
[root@redhat zgz]# ls -l
total 24
-rwxr-xr-x 1 myy groupa 0 Sep 26 05:48 filea
-rw-r--r-- 1 myy groupa 3 Sep 26 05:59 fileb
-rw-r--r-- 1 zgz groupa 0 Sep 26 06:39 fileg
drwxr-xr-x 2 myy groupa 4096 Sep 26 06:07 zgzdir
total 24
-rw-r--r--
-rw-r--r--
-rw-r--r--
drwxr-xr-x
[root@redhat zgz]# chmod a+x filea
[root@redhat zgz]# ls -l
total 24
-rwxr-xr-x
-rw-r--r--
-rw-r--r--
drwxr-xr-x
如果想除去某一权限,可以用“-”来操作,
举例:
[root@redhat zgz]# ls -l
total 24
-rwxr-xr-x 1 myy groupa 0 Sep 26 05:48 filea
-rw-r--r-- 1 myy groupa 3 Sep 26 05:59 fileb
-rw-r--r-- 1 zgz groupa 0 Sep 26 06:39 fileg
drwxr-xr-x 2 myy groupa 4096 Sep 26 06:07 zgzdir
[root@redhat zgz]# chmod a-x filea-修改filea文件属性所有组都除去“x”权限
[root@redhat zgz]# ls -l
total 24
-rw-r--r-- 1 myy groupa 0 Sep 26 05:48 filea
-rw-r--r-- 1 myy groupa 3 Sep 26 05:59 fileb
-rw-r--r-- 1 zgz groupa 0 Sep 26 06:39 fileg
drwxr-xr-x 2 myy groupa 4096 Sep 26 06:07 zgzdir
[root@redhat zgz]#
total 24
-rwxr-xr-x
-rw-r--r--
-rw-r--r--
drwxr-xr-x
[root@redhat zgz]# chmod a-x filea-修改filea文件属性所有组都除去“x”权限
[root@redhat zgz]# ls -l
total 24
-rw-r--r--
-rw-r--r--
-rw-r--r--
drwxr-xr-x
[root@redhat zgz]#
友情提醒:
chgrp,chown,chmod这些命令默认的情况下只有root有权限执行,大家有时可能会用普通账户去修改文件权限,linux会提示你没有这个权限。因此大家一定要注意当前用户,例如:
[zgz@redhat ~]$ chgrp groupb filea
chgrp: changing group of `filea': Operation not permitted
chgrp: changing group of `filea': Operation not permitted
--zgz没有权限来改变‘filea’的组群