Linux 修改目录权限

1. 实例:

查看权限:

1
ls -l xxx.xxx 注:xxx.xxx是文件名,或者不写文件名则是当前目录下所有文件

修改某个目录下的所有文件的权限,包括子目录中的文件,例子如下:

1
2
3
4
5
chmod 777 /home/user
注:仅把/home/user目录的权限设置为rwxrwxrwx
chmod -R 777 /home/user
注:表示将整个/home/user目录与其中的文件和子目录的权限都设置为rwxrwxrwx`
其中,参数`-R`表示启动递归处理
2. chmod 命令:

chmod 用 3 个数字来表达对 用户(文件或目录的所有者),用户组(同组用户),其他用户 的权限:
如:chmod 777 /test
数字 7 是表达同时具有读,写,执行权限:
读取–用数字 4 表示;
写入–用数字 2 表示;
执行–用数字 1 表示;
按照规则,如你想设置/test 目录的权限为:
    对用户可读可写:4(读取)+ 2(写入)= 6 ;
    对用户组可读可执行:4(读取)+ 1(执行)= 5 ;
    对其他用户仅可读:4(读取);
  这样就可以用命令:
    chmod 654 /test

3. 权限:

针对文件的三种权限:
   读文件内容(r),写数据到文件(w),作为命令执行文件(x)
针对目录的三种权限:
   读包含在目录中的文件名称(r);
   写信息到目录中去(增加和删除索引点的连结,w);
   搜索目录(能用该目录名称作为路径名去访问它所包含的文件和子目录);

具体说明:
有只读权限的用户不能用 cd 进入该目录:还必须有执行权限才能进入;
有执行权限的用户只有在知道文件名,并拥有读权利的情况下才可以访问目录下的文件;
必须有读和执行权限才可以 ls 列出目录清单,或使用 cd 命令进入目录;
有目录的写权限,可以创建、删除或修改目录下的任何文件或子目录,即使使该文件或子目录属于其他用户也是如此;

几种常用权限实例:

1
2
3
4
5
6
7
-rw------- (600) 只有所有者才有读和写的权限
-rw-r--r-- (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限
-rwx------ (700) 只有所有者才有读,写,执行的权限
-rwxr-xr-x (755) 只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限
-rwx--x--x (711) 只有所有者才有读,写,执行的权限,组群和其他人只有执行的权限
-rw-rw-rw- (666) 每个人都有读写的权限
-rwxrwxrwx (777) 每个人都有读写和执行的权限
4. 特殊权限:
1
2
3
4
特殊权限有三种:--s--s--t;
  所有人s权限:称为Set UID,简称为SUID的特殊权限;即当执行该文件时将具有该文件所有者的权限。
  所在组s权限:称为Set GID,简称为SGID的特殊权限;即在该目录下建立的目录和文件都属于固定的组。
  最后的t权限:称为Sticky Bit,简称为SBIT权限,只针对目录有效。它表示只能让所属主以及root可以删除(重命名/移动)该目录下的文件。

特殊权限赋予与取消:

  • Set UID
1
2
chmod u+s home/usr01/test
chmod u-s home/usr01/test
  • Set GID
1
2
chmod g+s home/usr01/test
chmod g-s home/usr01/test
  • Sticky Bit
1
2
chmod o+t home/usr01/test
chmod o-t home/usr01/test

或者:

1
chmod 0755 home/usr01/test

0755 最前面的 0 表示不使用任何特殊权限,该位上的数字可以是:

1
0(---);1(--t);2(-s-);3(-st);4(s--);5(s-t);6(ss-);7(sst);

注:如果该权限位上没有权限,特殊权限会显示为大写,如:-rwx–S–T

来源:Linux 修改目录权限

作者

buubiu

发布于

2019-12-20

更新于

2024-01-25

许可协议