chmod(Change mode) 用来将每一个文件的模式更改成指定值。Linux/Unix 的档案调用权限分为三级 : 档案拥有者、群组、其余。linux
u :目录或者文件的当前的用户
g :目录或者文件的当前的群组
o :除了目录或者文件的当前用户或群组以外的用户或者群组
a :全部的用户及群组
Linux的文件基本上分为三个属性:可读(r),可写(w),可执行(x)。另外,有一些程序属性的执行部分不是x,而是s,这表示执行这个程序的使用者,临时能够有和拥有者同样权力的身份来执行该程序。oracle
[root@oracledb dir1]# ls -l backup.sh -rwxr-xr-x 1 root root 0 4月 24 15:04 backup.sh
以rwx(Owner)r-x(Group)r-x(Other)为例:这个例子表示的权限是:使用者本身可读,可写,可执行;同一组的用户可读,不可写,可执行;其它用户可读,不可写,可执行。ui
r (read):可读取此一文件的实际内容,如读取文本文件的文字内容等;
w (write):能够编辑、新增或者是修改该文件的内容(但不含删除该文件);
x (execute):该文件具备能够被系统执行的权限。linux下文件是否能够执行和扩展名无关
r (read contents in directory): 表示具备读取目录结构列表的权限,因此当你具备读取(r)一个目录的权限时,表示你能够查询该目录下的文件名数据。 因此你就能够利用 ls 这个指令将该目录的内容列表显示出来! w (modify contents of directory): 表示你具备移动该目录结构列表的权限,也就是底下这些权限: 创建新的文件与目录; 删除已经存在的文件与目录(不论该文件的权限为什么!) 将已存在的文件或目录进行改名; 搬移该目录内的文件、目录位置。 x (access directory): 目录不能够被执行,目录的x表明的是用户可否进入该目录成为工做目录的用途! 所谓的工做目录(work directory)就是你目前所在的目录!举例来讲,当你登入Linux时, 你所在的家目录就是你当下的工做目录。而变换目录的指令是cd(change directory)!
r 读取权限,数字代号为“4”;
w 写入权限,数字代号为“2”;
x 执行或切换权限,数字代号为“1”;
用法:chmod [选项]... 模式[,模式]... 文件... 或:chmod [选项]... 八进制模式 文件... 或:chmod [选项]... --reference=参考文件 文件...
按照顺序(u)(g)(o),将权限转换成3个从0到7的八进制数字,如若要rwx属性则4+2+1=7 ; 若要rw-属性则4+2=6;spa
chmod 3个从0到7的八进制数 文件或目录
-c, --changes 相似 --verbose,但只在有更改时才显示结果 --no-preserve-root 不特殊对待根目录(默认) --preserve-root 禁止对根目录进行递归操做 -f, --silent, --quiet 去除大部份的错误信息 -v, --verbose 为处理的全部文件显示诊断信息 --reference=参考文件 使用指定参考文件的模式,而非自行指定权限模式
-R, --recursive 以递归方式更改全部的文件及子目录 --help 显示此帮助信息并退出 --version 显示版本信息并退出 每种 MODE 都应属于这类形式"[ugoa]*([-+=]([rwxXst]*|[ugo]))+"。
[root@oracledb dir1]# ls -l
总用量 0
-rw-r--r-- 1 root root 0 4月 24 15:04 backup.sh
chmod u+x backup.sh
chmod ug+w,o-x backup.sh
chmod a-x backup.sh
chmod u=x backup.sh
chmod 744 backup.sh
chmod -R a+r *
[root@oracledb dir1]# ll
总用量 0
-rwxr-xr-x 1 root root 0 4月 24 15:04 backup1.sh
-rw-r--r-- 1 root root 0 4月 25 20:27 backup2.sh
[root@oracledb dir1]# chmod --reference=backup1.sh backup2.sh
[root@oracledb dir1]# ll
总用量 0
-rwxr-xr-x 1 root root 0 4月 24 15:04 backup1.sh
-rwxr-xr-x 1 root root 0 4月 25 20:27 backup2.sh