Linux下一切都是文件,通过ls -l或者别名ll可以查看文件的详细信息:
drwxr-xr-x
第一个字符d指的是目录文件;
第2-4个字符rwx:
指的是u(user,owner)对这个文件具有可读可写可执行的权限;
第5-7字符r-x:
指的是g(group)对这个文件具有可读可执行权限;
第8-10字符r-x:
指的是o(other)对这个文件具有可读可执行的权限;
了解了文件权限位之后,我们来看看chmod命令的第一种语法结构:
chmod {u,g,o}{+,-,=}{r,w,x} file_name
考虑{u,g,o}{+,-,=}{r,w,x}花括号顺序不能变,排列组合也有:
((2*23)*(2*23)*(2*23))/2 =732种,哇...是不是特别刺激,还能这么玩!
我们挑选其中几组数据来做说明:
第一组数据(每个花括号里面选一个元素)
chmod u+r file
给所有者增加r权限:
第二组数据(每个花括号里面选2个元素)
chmod og+=rw file
给所属组,其他用户设置权限为rw(+,=是按照从左到右顺序执行):
第三组数据(每个花括号里面选3个元素)
chmod ugo=+-rwx file
给所有者,所属组,其他用户先赋予rwx的权限,再追加rwx的权限,最后减rwx的权限,结果为没有任何权限
基于现实,后面2种用法很少见,仅供娱乐;也就是+,-,=是不会组合到一起使用的,没有任何意思,下面再列取几个例子以供参考:
chmod u+w file(给u(user,owner)添加一个w(可写的权限))
chmod ugo=rwx file(给所有用户包括u,g,o设置全部的权限)
chmod a=rwx file(a代表所有用户,所以得到的结果和上面结果一样)
关于chmod命令的第二种语法结构:(就是采用数字)
chmod *** filename
第一个*代表u所具有的权限
第二个*代表g所具有的权限
第三个*代表o所具有的权限
另外,
r代表4
w代表2
x代表1
rwx彼此之间的和,加上自己,可以有如下7种组合:
1=x(代表可执行)
2=w(代表可写)
3=x+w=1+2(代表可执行+可写)
4=r(代表可读)
5=1+4=x+r(代表可执行+可读)
6=2+4=w+r(代表可写+可读)
7=1+2+4=x+w+r(代表可执行+可写+可读)
举例:
chmod 124 file(给file的 u设置可执行的权限;给g设置可写,给o设置可读)
chmod 765 file(给file的 u设置全部的权限;给g设置可读可写,给o设置可读可执行)
以上2种方法,各有千秋。