Linux下修改⽂件所属⽤户和组
chgrp  ⽤户名⽂件名  -R
chown ⽤户名⽂件名  -R
-R表⽰递归⽬录下所有⽂件
以上部分已验证
⼀、修改⽂件所属组——chgrp
修改⽂件所属组很简单-chgrp命令,就是change group的缩写(我们可以利⽤这些来记忆命令)
语法:chgrp  组⽂件名/⽬录
举例:
[root@redhat ~]# groupadd groupa
[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
--
[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
⼆、修改⽂件拥有者——chown
修改组的命令使chgrp,即change group,那么修改⽂件拥有者的命令⾃然就是chown,即change owner。chown功能很多,不仅仅能更改⽂件拥有者,还可以修改⽂件所属组。如果需要将某⼀⽬录下的所有⽂件都改变其拥有者,可以使⽤-R参数。
语法如下:
chown [-R] 账号名称⽂件/⽬录
chown [-R] 账号名称:组⽂件/⽬录
举例:
[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                同时改变其下所有⽂件拥有者
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
三、改变⽂件权限——chmod
1.⽤数字来改变⽂件权限
我们已经了解了-rw-r--r-- 所表⽰含义,linux为每⼀个权限分配⼀个固定的数字:
r: 4(读权限)
w: 2(写权限)
x: 1(执⾏权限)
我们再将这些数字相加,就得到每⼀组的权限值,例如
-
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权限的数字表⽰值。
如果我们想改变某⼀个⽂件的权限,⾸先需要将权限转化为数字组合,例如我们想得到-rwxrw-r--,那么就应该得到数字组合:[4+2+1] [4+2+0][4+0+0]=764,然后再⽤chmod命令去修改
chmod语法:
chmod xyz ⽂件/⽬录
举例:
[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
linux修改文件夹名称-
rwxr-x---  1 myy groupa 0 Sep 26 06:07 filed
2、⽤字符来改变⽂件权限
还有⼀种改变权限的⽅法,我们已经了解到,⽂件权限分为三组,分别是user,group,others,那么我们可以⽤u,g,o分别代表三组,另外,a(all)代表全部,⽽权限属性即可⽤r,w,x三个字符来表⽰,那么请看下⾯的语法:
chmod  u/g/o/a  +(加⼊)/-(除去)/=(设定)  r/w/x  ⽂件或者⽬录
举例:
我们想使filed⽂件得到:u:可读,可写,可执⾏
g,o:可读,可执⾏
[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
其中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
如果想除去某⼀权限,可以⽤“-”来操作,
举例:
[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]#
友情提醒:
chgrp,chown,chmod这些命令默认的情况下只有root有权限执⾏,⼤家有时可能会⽤普通账户去修改⽂件权限,linux会提⽰你没有这个权限。因此⼤家⼀定要注意当前⽤户,例如:
[zgz@redhat ~]$ chgrp groupb filea
chgrp: changing group of `filea': Operation not permitted
--zgz没有权限来改变‘filea’的组