前言
经常用,但还是会忘记,因此这里又整理一下。记录全一定,方便自己回顾。
正文
在Linux中通过ls -l可以看文件的属性。
chgrp
chgrp:更改文件属组。
chgrp [-R] 属组名 文件名
-
-R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上 -R 的参数,那么该目录下的所有文件的属组都会更改。
这个我不常用,一般用下面那个替代即可。
# 修改前 ls -l -rw-r--r-- 1 root root 68495 Jun 1 11:00 3xcn.txt # 如果需要权限,可以加sudo chgrp water 3xcn.txt # 修改后 ls -l -rw-r--r-- 1 root water 68495 Jun 1 11:01 3xcn.txt
chown
chown (change owner) 更改文件所有者(owner),也可以同时更改文件所属组。
chown [–R] 所有者 文件名 chown [-R] 所有者:属组名 文件名
-
-R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上 -R 的参数,那么该目录下的所有文件的属组都会更改。
下面简单展示一下
案例一
# 修改前 ls -l -rw-r--r-- 1 root root 68495 Jun 1 11:00 3xcn.txt # 如果需要权限,可以加sudo chown water 3xcn.txt # 修改后 ls -l -rw-r--r-- 1 water root 68495 Jun 1 11:01 3xcn.txt
案例二
# 修改前 ls -l -rw-r--r-- 1 root root 68495 Jun 1 11:10 3xcn.txt # 如果需要权限,可以加sudo chown water:water 3xcn.txt # 修改后 ls -l -rw-r--r-- 1 water water 68495 Jun 1 11:10 3xcn.txt
chmod
chmod (change mode) 修改用户的权限
chmod [-R] xyz 文件或目录
选项与参数:
-
xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
-
-R : 进行递归(recursive)的持续变更,以及连同次目录下的所有文件都会变更
Linux文件属性有两种设置方法,一种是数字,一种是符号。
通过数字改变文件权限
Linux 文件的基本权限就有九个,分别是 owner/group/others(拥有者/组/其他) 三种身份各有自己的 read/write/execute 权限。
文件的权限字符为: -rwxrwxrwx , 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:
-
r:4
-
w:2
-
x:1
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,
-rwxrwxrwx
ps:第一个[-]是文件类型这里表示文件,如果是文件夹[d]表示
-
owner = rwx = 4+2+1 = 7
-
group = rwx = 4+2+1 = 7
-
others= rwx = 4+2+1 = 7
该文件的权限数字就是 777
# 修改前 ls -l -rw-r--r-- 1 water water 68495 Jun 1 11:12 3xcn.txt chmod 777 3xcn.txt # 修改前 ls -l -rwxrwxrwx 1 water water 68495 Jun 1 11:12 3xcn.txt
-rwxr-xr--
-
owner = rwx = 4+2+1 = 7
-
group = r-x = 4+0+1 = 5
-
others= r-- = 4+0+0 = 4
该文件的权限数字就是 754
通过符号改变文件权限
我们可以发现,基本上就九个权限分别是:
-
user:用户
-
group:组
-
others:其他
那么我们就可以使用 u, g, o 来代表三种身份的权限
此外, a 则代表 all,即全部的身份。读写的权限可以写成 r, w, x,也就是可以使用下表的方式来看:
chmod u/g/o/a +(加)/-(减)/=(设定) r/w/x 文件夹/文件
如果需要将文件权限设置为 -rwxr-xr-- ,可以使用 chmod u=rwx,g=rx,o=r 文件名 来设定:
# touch test1 // 创建 test1 文件 # ls -al test1 // 查看 test1 默认权限 -rw-r--r-- 1 root root 0 Nov 15 10:32 test1 # chmod u=rwx,g=rx,o=r test1 // 修改 test1 权限 # ls -al test1 -rwxr-xr-- 1 root root 0 Nov 15 10:32 test1
而如果是要将权限去掉而不改变其他已存在的权限呢?例如要拿掉全部人的可执行权限,则:
# chmod a-x test1 # ls -al test1 -rw-r--r-- 1 root root 0 Nov 15 10:32 test1
参考文章
-
《