200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > chgrp chmod和chown命令-改变文件的权限和属性

chgrp chmod和chown命令-改变文件的权限和属性

时间:2023-09-06 21:55:23

相关推荐

chgrp chmod和chown命令-改变文件的权限和属性

chgrp、chmod和chown命令-改变文件的权限和属性

如何改变文件的权限和属性改变所属群组:chgrp改变文件拥有者:chown改变权限:chmod

♡\color{pink}{\heartsuit}♡

如何改变文件的权限和属性

chgrp:改变文件所属群组,其实是change group缩写,帮助记忆;

chown:改变文件拥有者,change owner;

chmod:改变文件的权限。

改变所属群组:chgrp

注意:要被改变的群组名称必要要在/etc/group文件内存在才行。

假设你是root的身份,在你的主文件夹内有一个名为 initial-setup-ks.cfg 的文件,如何改变该文件的群组?假设你已经知道在/etc/group里存在一个名为users的群组, 但是testing这个群组名字就不存在/etc/group当中,此时改变群组成为users与testing分别会有什么现象发生呢?

[root@study ~]# chgrp users initial-setup-ks.cfg[root@study ~]# ls -l-rw-r--r--. 1 root users 1864 May 4 18:01 initial-setup-ks.cfg[root@study ~]# chgrp testing initial-setup-ks.cfgchgrp: invalid group: `testing' <

可以发现文件的群组被改成users了,但要改成testing的时,发生错误,因为testing群组名不再/etc/group当中。

如果需要修改的不是一个文件而是一个目录,以及该目录下所有文件、子目录等,则需要递归设置该目录下所有文件和目录的拥有者。需要用到-R参数

[root@study ~]# chgrp -R users 目录名

改变文件拥有者:chown

注意:使用者必须是已经存在系统中的帐号,也就是在/etc/passwd 这个文件中有纪录的使用者名称才能改变。

语法:

chown [-cfhvR] [--help] [--version] user[] file...

[root@study ~]# chown [-R] 帐号名称 文件或目录[root@study ~]# chown [-R] 帐号名称:群组名称 文件或目录

范例1:将 initial-setup-ks.cfg 的拥有者改为bin这个帐号:

[root@study ~]# chown bin initial-setup-ks.cfg[root@study ~]# ls -l-rw-r--r--. 1 bin users 1864 May 4 18:01 initial-setup-ks.cfg

范例2:将 initial-setup-ks.cfg 的拥有者与群组改回为root

[root@study ~]# chown root:root initial-setup-ks.cfg[root@study ~]# ls -l-rw-r--r--. 1 root root 1864 May 4 18:01 initial-setup-ks.cfg

说明 : Linux/Unix 是多人多作业系统,全部的档案皆有拥有者。利用chown能够将档案的拥有者加以改变。

一般来说,这个指令只有系统管理者(root)所使用。一般使用者没有权限能够改变别人的档案拥有者,也没有权限能够将自己的档案拥有者改设为别人。

记住只有系统管理者(root)才有这种权限

改变权限:chmod

有两种方法:

数字类型改变文件权限符号类型改变文件权限

1.数字类型改变文件权限

各权限的分数对照表如下:

r:4 > w:2 > x:1

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

owner = rwx = 4+2+1 = 7 > group = rwx = 4+2+1 = 7 > others= — = 0+0+0 = 0

所以等一下我们设置权限的变更时,该文件的权限数字就是770啦!变更权限的指令chmod的语法是这样的:

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

举例来说,要将.bashrc这个文件所有的权限都设置启用:

[root@study ~]# ls -al .bashrc-rw-r--r--. 1 root root 176 Dec 29 .bashrc[root@study ~]# chmod 777 .bashrc[root@study ~]# ls -al .bashrcrwxrwxrwx1 root root 176 Dec 29 bash

要将刚刚的.bashrc这个文件的权限修改回-rw-r--r--

-rw-r–r--的分数是644,所以指令为:chmod 644 .bashrc

多举几个例子就明白了

下面是对文件夹的两个普通设定:

2.符号类型改变文件权限

Linux有user 、group 、others三种身份。用u, g, o来代表三种身份的权限!此外,a 则代表all亦即全部的身份。那么读写的权限就可以写成r, w, x

语法

chmod [who] [+ | - | =] [mode] 文件名

命令中各选项的含义为: 操作对象who可是下述字母中的任一个或者它们的组合:

操作符号可以是:

+添加某个权限-取消某个权限= 赋予给定权限并取消其他所有权限(如果有的话)

其他参数说明:

-c : 若该文件权限确实已经更改,才显示其更改动作-f : 若该文件权限无法被更改也不要显示错误讯息()-v : 显示权限变更的详细信息-R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个- 变更)–help : 显示辅助说明–version : 显示版本

设置 mode 所表示的权限可用下述字母的任意组合:

实例,假如我们要“设置”一个文件的权限成为“-rwxr-xr-x”时,基本上就是:

user (u):具有可读、可写、可执行的权限;group 与 others (g/o):具有可读与执行的权限。 所以就是:

[root@study ~]# chmod u=rwx,go=rx .bashrc[root@study ~]# ls -al .bashrc-rwxr-xr-x. 1 root root 176 Dec 29 .bashrc

注意!u=rwx,go=rx 是连在一起的,中间并没有任何空白字符!

假如是“ -rwxr-xr-- ”这样的权限呢?可以使用“ chmod u=rwx,g=rx,o=r filename ”来设置。

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

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

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

[root@study ~]# chmod a-x .bashrc[root@study ~]# ls -al .bashrc-rw-rw-rw-. 1 root root 176 Dec 29 .bashrc[root@study ~]# chmod 644 .bashrc

下面再举几个例子:

将档案 file1.txt 设为全部人皆可读取 :

chmod ugo+r file1.txt

将档案 file1.txt 设为全部人皆可读取 :

chmod a+r file1.txt

将档案 file1.txt 与 file2.txt 设为该档案拥有者,与其所属同一个群体者可写入,但其它以外的人则不可写入 :

chmod ug+w,o-w file1.txt file2.txt

将 ex1.py 设定为仅有该档案拥有者能够运行 :

chmod u+x ex1.py

将眼下文件夹下的全部档案与子文件夹皆设为不论什么人可读取 :

chmod -R a+r *

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。