0777 0的意思

Linux 系统中采用三位十进制数表示权限,如0755, 0644.
ABCD
A- 0, 表示十进制
B-用户
C-组用户
D-其他用户
 
---  -> 0   (no excute , no write ,no read)
--x  -> 1   excute, (no write, no read)
-w-  -> 2   write 
-wx  -> 3   write, excute
r--  -> 4   read
r-x  -> 5   read, excute
rw-  -> 6   read, write , 
rwx  -> 7   read, write , excute
 
0755->即用户具有读/写/执行权限,组用户和其它用户具有读写权限;
0644->即用户具有读写权限,组用户和其它用户具有只读权限;
 
一般赋予目录0755权限,文件0644权限。
如:
use Cwd;
$PATH = getcwd;
mkdir($PATH/path, 0755);
# make a new folder in current working diectory.
 
下面说一下最前面的那个0是什么意思: 
0777前面的0原来是叫个suid和guid的东西。 
suid意味着如果某个用户对属于自己的shell脚本设置了这种权限,那么其他用户在执行这一脚本时也会具有其属主的相应权限。 
guid则表示执行相应脚本的用户将具有该文件所属用户组中用户的权限。 
是不是不大明白呀,下面举个例子: 

Java代码  收藏代码
  1. -rwxr-xr-x   1 root  root    12 09-02 15:21 my_test.sh  


上面的mysql_test.sh文件权限是所属用户(root)是7,如果设置了suid,那么其他任何用户的权限都是7,如果设置了guid,那么任何用户的权限都是5。 
如何设置suid和guid: 
设置suid就是把0变为4,设置guid就把0变为2,如果都设置那就是6了 
chmod 4777 mysql_test.sh 

原文地址:https://www.cnblogs.com/cheyunhua/p/10283480.html