用SSH指令批量修改文件夹 文件权限和拥有者

时间:2024-06-10 23:04:26

在linux系统下或登录ssh可以批量修改文件权限

wwwroot目录下的所有目录的权限递归设置为755

cd wwwroot
find -type d -exec chmod 755 {} \;
或者是
find -type d|xargs chmod 755

同样,把目录下的所有文件权限递归地改成644可以这样执行

find -not -type d -exec chmod 644 {} \;
或者是
find -not -type d|xargs chmod 644

在linux批量修改文件拥有者
需要使用到两个命令,chmod以及chown

例、对var/目录下的所有文件与子目录执行相同的权限变更:

chmod -R 700 var/

-R参数是递归 处理目录下的所有文件以及子文件夹

700是变更后的权限表示(只有所有者有读和写以及执行的权限)

var/ 是需要执行的目录

例、对var/ 目录下的所有文件与子目录执行相同的所有者变更,使所有者修改为www用户组的www用户

chown -R www:www var/

-R 同上

www:www www用户组的www,用户组不必须

总结linux下目录和文件的权限区别

文件:读文件内容(r)、写数据到文件(w)、作为命令执行文件(x)。
目录:读包含在目录中的文件名称(r)、写信息到目录中去(增加和删除索引点的连结)、搜索目录(能用该目录名称作为路径名去访问它所包含的文件和子目录)
具体说就是:
(1)有只读权限的用户不能用cd进入该目录:还必须有执行权限才能进入。
(2)有执行权限的用户只有在知道文件名,并拥有读权利的情况下才可以访问目录下的文件。
(3)必须有读和执行权限才可以ls列出目录清单,或使用cd命令进入目录。
(4)有目录的写权限,可以创建、删除或修改目录下的任何文件或子目录,即使使该文件或子目录属于其他用户也是如此。

查看目录权限 

查看文件权限的语句: 
  在终端输入: 
ls -l xxx.xxx (xxx.xxx是文件名) 
  那么就会出现相类似的信息,主要都是这些: 
-rw-rw-r-- 
  一共有10位数 
  其中: 最前面那个 - 代表的是类型 
  中间那三个 rw- 代表的是所有者(user) 
  然后那三个 rw- 代表的是组群(group) 
  最后那三个 r-- 代表的是其他人(other) 
  然后我再解释一下后面那9位数: 
  r 表示文件可以被读(read) 
  w 表示文件可以被写(write) 
  x 表示文件可以被执行(如果它是程序的话) 
  - 表示相应的权限还没有被授予 
  现在该说说修改文件权限了 
  在终端输入: 
  chmod o w xxx.xxx 
  表示给其他人授予写xxx.xxx这个文件的权限 
  chmod go-rw xxx.xxx 
  表示删除xxx.xxx中组群和其他人的读和写的权限 
  其中: 
  u 代表所有者(user) 
  g 代表所有者所在的组群(group) 
  o 代表其他人,但不是u和g (other) 
  a 代表全部的人,也就是包括u,g和o 
  r 表示文件可以被读(read) 
  w 表示文件可以被写(write) 
  x 表示文件可以被执行(如果它是程序的话) 
  其中:rwx也可以用数字来代替 
  r ------------4 
  w -----------2 
  x ------------1 
  - ------------0 
  行动: 
   表示添加权限 
  - 表示删除权限 
  = 表示使之成为唯一的权限 
  当大家都明白了上面的东西之后,那么我们常见的以下的一些权限就很容易都明白了: 
  -rw------- (600) 只有所有者才有读和写的权限 
  -rw-r--r-- (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限 
  -rwx------ (700) 只有所有者才有读,写,执行的权限 
  -rwxr-xr-x (755) 只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限 
  -rwx--x--x (711) 只有所有者才有读,写,执行的权限,组群和其他人只有执行的权限 
  -rw-rw-rw- (666) 每个人都有读写的权限 
  -rwxrwxrwx (777) 每个人都有读写和执行的权限