Linux改变文件权限和属性

skybai / 2023-08-16 / 原文

chgrp:改变文件所属群组

[root@will]#    chgrp    [-R]    dirname/filename    ...
选项与参数:
-R    :    进行递回(recursive)的持续变更,即连同次目录下的所有文件、目录
                    都更新成为这个群组之意。常常用在变更某一目录内所有的文件之情况。
范例:
[root@will]#    chgrp    users    initial-setup-ks.cfg
[root@will]#    ls    -l
-rw-r--r--.    1    root    users    1864    May        4    18:01    initial-setup-ks.cfg

chown:改变文件拥有者

[root@will]#    chown    [-R]    帐号名称    文件或目录
[root@will]#    chown    [-R]    帐号名称:群组名称    文件或目录
选项与参数:
-R    :    进行递回(recursive)的持续变更,亦即连同次目录下的所有文件都变更
范例:将    initial-setup-ks.cfg    的拥有者改为bin这个帐号:
[root@will]#    chown    bin    initial-setup-ks.cfg
[root@will]#    ls    -l
-rw-r--r--.    1    bin        users    1864    May        4    18:01    initial-setup-ks.cfg
范例:将    initial-setup-ks.cfg    的拥有者与群组改回为root:
[root@will]#    chown    root:root    initial-setup-ks.cfg
[root@will]#    ls    -l
-rw-r--r--.    1    root    root    1864    May        4    18:01    initial-setup-ks.cfg

 

chmod:改变文件的权限

文件有三类权限,可以用数字来代表,r:4,w:2,x:1

每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权
限为:    [-rwxrwx---]    分数则是:

owne = rwx =  4+2+1 =  7 >  group =   rwx  =  4+2+1  =  7 >  others =  0+0+0 =  0

设置权限变更时,该文件的权限数字为770。

chmod指令语法如下:

[root@will]#    chmod    [-R]    xyz    文件或目录
选项与参数:
xyz    :    就是刚刚提到的数字类型的权限属性,为    rwx    属性数值的相加。
-R    :    进行递回(recursive)的持续变更,亦即连同次目录下的所有文件都会变更

举例来说,如果要将.bashrc这个文件所有的权限都设置启用,那么就下达:

[root@will]#    ls    -al    .bashrc
-rw- r- - r- -.    1    root    root    176    Dec    29        2013    .bashrc
[root@will]#    chmod    777    .bashrc
[root@will]#    ls    -al    .bashrc
-rwxrwxrwx.    1    root    root    176    Dec    29        2013    .bashrc

还有一种改变权限的方法,上文中的九种权限分别是(1)user  (2)group  (3)others三种身份,读写的权限就可以写成r,   w,   x

假如要“设置”一个文件的权限成为“   -rwxr-xr-x ” 时,就是:

[root@will]#    chmod        u=rwx,go=rx        .bashrc
#    注意u=rwx,go=rx是连在一起的,中间并没有任何空白字符!
[root@will]#    ls    -al    .bashrc
-rwxr-xr-x.    1    root    root    176    Dec    29        2013    .bashrc

此外,如果不知道原先的文件属性,而只想要增加.bashrc这个文件的每个人均可写入的权限,    那么可以使用:

[root@will]#    ls    -al    .bashrc
-rwxr-xr-x.    1    root    root    176    Dec    29        2013    .bashrc
[root@will]#    chmod        a+w        .bashrc
[root@will]#    ls    -al    .bashrc
-rwxrwxrwx.    1    root    root    176    Dec    29        2013    .bashrc

如果是要将权限去掉而不更动其他已存在的权限,例如要拿掉全部人的可执行权限,则:

[root@will]#    chmod        a-x        .bashrc
[root@will]#    ls    -al    .bashrc
-rw-rw-rw-.    1    root    root    176    Dec    29        2013    .bashrc