Linux中的主要权限有: R(读), W(写), X(执行)
两大文件类型目录和文件, 分别对应上面的三种权限,
目录:
R: 可以用ls -l命令查看目录自己的元数据
W:可以在此目录中创建或者删除文件, 前提是一定要有执行权限
X: 可以cd到目录中,执行相关操作
文件:
R: 可以用ls -l命令查看文件的元数据
W: 可以修改文件
X: 可以执行文件(启动成进程,并且提给进程), 默认文件没有执行权限, 为了避免权限过高的人误运行脚本文件.
下面说下文件或目录权限修改的命令的几种格式
1. 八进制权限修改模式
chmod [OPTION]... OCTAL-MODE FILE...
用八进制码来表示权限
每个文件都有属主, 属组, 和其他关系, 且分别对应RWX, 所有当我们ls -l查看某个文件时可以看到所有的权限
下图, a的属主,属组为root, 分别对应读写和只读, 其他对应的权限是只读
[root@CentOS02 ~]# ls -l a -rw-r--r-- 1 root root 22 Sep 11 01:33 a
所以这里一共有这八种组合
权限表示 | 对应的八进制格式 |
--- | 0 |
--x | 1 |
-w- | 2 |
-wx | 3 |
r-- | 4 |
r-x | 5 |
rw- | 6 |
rwx | 7 |
[root@CentOS02 ~]# chmod 774 a [root@CentOS02 ~]# ls -l a -rwxrwxr-- 1 root root 22 Sep 11 01:33 a
2. 直接指定使用者的权限
chmod [OPTION]... MODE[,MODE]... FILE...
直接用u或者g或者o后边=r,w,x来指定权限, 什么都不加等于---
可以多选项指定uo=r
[root@CentOS02 ~]# chmod u= a [root@CentOS02 ~]# ls -l a ----rwxr-- 1 root root 22 Sep 11 01:33 a [root@CentOS02 ~]# chmod g=rw a [root@CentOS02 ~]# ls -l a ----rw-r-- 1 root root 22 Sep 11 01:33 a [root@CentOS02 ~]# chmod uo=w a [root@CentOS02 ~]# ls -l a --w--wx-w- 1 root root 22 Sep 11 01:33 a
或者直接用+rwx 或-rwx来设定说有三个的权限, 注意:如果有w在,只修改属主的
也可以分别只配置三个选项中的任意 go+x
[root@CentOS02 ~]# chmod -rwx a chmod: a: new permissions are ----w----, not --------- [root@CentOS02 ~]# ls -l a -----w---- 1 root root 22 Sep 11 01:33 a [root@CentOS02 ~]# chmod go+x a [root@CentOS02 ~]# ls -l a -----wx--x 1 root root 22 Sep 11 01:33 a
3. 参考文件权限
chmod [OPTION]... --reference=RFILE FILE...
[root@CentOS02 ~]# ls -l {a,b} --w--wx-w- 1 root root 22 Sep 11 01:33 a -rw-r--r-- 1 root root 0 Sep 11 02:21 b [root@CentOS02 ~]# chmod --reference a b [root@CentOS02 ~]# ls -l {a,b} --w--wx-w- 1 root root 22 Sep 11 01:33 a --w--wx-w- 1 root root 0 Sep 11 02:21 b
4, 修改目录和目录里所有文件的属性
加选项-R
[root@CentOS02 ~]# ls -ld test/ drwxr-xr-x 2 root root 4096 Sep 11 02:28 test/ [root@CentOS02 ~]# ls -l test/ total 0 -rw-r--r-- 1 root root 0 Sep 11 02:28 a -rw-r--r-- 1 root root 0 Sep 11 02:28 b [root@CentOS02 ~]# chmod -R 777 test/ [root@CentOS02 ~]# ls -l test/ total 0 -rwxrwxrwx 1 root root 0 Sep 11 02:28 a -rwxrwxrwx 1 root root 0 Sep 11 02:28 b [root@CentOS02 ~]# ls -ld test/ drwxrwxrwx 2 root root 4096 Sep 11 02:28 test/ [root@CentOS02 ~]#
修改属主属组命令
chown [OPTION]... [OWNER][:[GROUP]] FILE...
1. 引号两边加要修改的属主属组, joice:jerry
2. 如果只修改属主就不加引号 joice
3 .如果属主属组都修改成相同的 joice: 或者joice:joice
4. 只修改属组 :joice
[root@CentOS02 ~]# ls -l a --w--wx-w- 1 root root 22 Sep 11 01:33 a [root@CentOS02 ~]# chown joice:jerry a [root@CentOS02 ~]# ls -l a --w--wx-w- 1 joice jerry 22 Sep 11 01:33 a
chown [OPTION]... --reference=RFILE FILE... 上chmod一样, 也可以用引用修改
[root@CentOS02 ~]# ls -l a --w--wx-w- 1 joice jerry 22 Sep 11 01:33 a [root@CentOS02 ~]# ls -l {a,b} --w--wx-w- 1 joice jerry 22 Sep 11 01:33 a --w--wx-w- 1 root root 0 Sep 11 02:21 b [root@CentOS02 ~]# chown --reference a b [root@CentOS02 ~]# ls -l {a,b} --w--wx-w- 1 joice jerry 22 Sep 11 01:33 a --w--wx-w- 1 joice jerry 0 Sep 11 02:21 b
-R修改目录和文件的属主属组
[root@CentOS02 ~]# chown -R :jerry test/ [root@CentOS02 ~]# ls -l test/ total 0 -rwxrwxrwx 1 root jerry 0 Sep 11 02:28 a -rwxrwxrwx 1 root jerry 0 Sep 11 02:28 b [root@CentOS02 ~]# ls -ld test/ drwxrwxrwx 2 root jerry 4096 Sep 11 02:28 test/
只修改属组命令
chgrp [OPTION]... GROUP FILE... 和上面命令类似, 但只修改属组
[root@CentOS02 test]# chgrp joice a [root@CentOS02 test]# ls -l a -rwxrwxrwx 1 root joice 0 Sep 11 02:28 a
chgrp [OPTION]... --reference=RFILE FILE... 和上面命令类似, 但只引用属组
[root@CentOS02 test]# ll total 0 -rwxrwxrwx 1 tom tom 0 Sep 11 02:28 a -rwxrwxrwx 1 tom jerry 0 Sep 11 02:28 b [root@CentOS02 test]# chgrp --reference a b [root@CentOS02 test]# ls -l total 0 -rwxrwxrwx 1 tom tom 0 Sep 11 02:28 a -rwxrwxrwx 1 tom tom 0 Sep 11 02:28 b
原文地址:http://jzrobbie.blog.51cto.com/6535329/1693735