chmod 命令格式:
chmod [-cfvR] [--help] [--version] mode file...
[root@qs-wg-db2 ~]# chmod --help
Usage: chmod [OPTION]... MODE[,MODE]... FILE...
or: chmod [OPTION]... OCTAL-MODE FILE...
or: chmod [OPTION]... --reference=RFILE FILE...
Change the mode of each FILE to MODE.
-c, --changes like verbose but report only when a change is made
--no-preserve-root do not treat `/' specially (the default)
--preserve-root fail to operate recursively on `/'
-f, --silent, --quiet suppress most error messages
-v, --verbose output a diagnostic for every file processed
--reference=RFILE use RFILE's mode instead of MODE values
-R, --recursive change files and directories recursively
--help display this help and exit
--version output version information and exit
Each MODE is of the form `[ugoa]*([-+=]([rwxXst]*|[ugo]))+'.
Report bugs to <bug-coreutils@gnu.org>.
[root@qs-wg-db2 ~]#
参数说明:
1. -cfvR 部分
-c : 若该档案权限确实已经更改,才显示其更改动作
-f : 若该档案权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更), 这个-R 用的还是很多的。
2. Mode 部分
这部分可以分成如下3块: [who] operator [permission]
`[ugoa]*([-+=]([rwxXst]*|[ugo]))+'.
who的含义是:
u 文件属主权限
g 同组用户权限
o 其它用户权限
a 所有用户(包括以上三种)
operator的含义:
+ 增加权限
- 取消权限
= 唯一设定权限
permission的含义:
r 读权限
w 写权限
x 执行权限
X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
s 文件属主和组id
l 给文件加锁,使其它用户无法访问
如: chmod a+x
3. 示例:
(1)将档案 file1.txt 设为所有人皆可读取 :
chmod ugo+r file1.txt
(2)将档案 file1.txt 设为所有人皆可读取 :
chmod a+r file1.txt
(3)将档案 file1.txt 与 file2.txt 设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :
chmod ug+w,o-w file1.txt file2.txt
(4)将 ex1.py 设定为只有该档案拥有者可以执行 :
chmod u+x ex1.py
(5)将目前目录下的所有档案与子目录皆设为任何人可读取 :
chmod -R a+r *
(6)收回所有用户的对file1的执行权限
chmod a-x file1
4. 使用数字来赋权
4.1 先看一下文件的权限格式
[root@qs-wg-db2 scripts]# ll
total 20
-rw-r--r-- 1 oracle oinstall 0 Feb 24 00:00 alertlogbyday.log
-rwxr-xr-x 1 oracle oinstall 430 Feb 20 01:10 alertlogbyday.sh
-rwxr-xr-x 1 oracle oinstall 7 Feb 24 05:00 del_st_arch.log
-rwxr-xr-x 1 oracle oinstall 648 Feb 19 00:51 del_st_archive.sh
-rwxr-xr-x 1 oracle oinstall 9 Feb 24 05:00 max_sn.log
drwxr-xr-x 3 root root 4096 Feb 23 23:40 pymonitor
ll的结果返回七列,分别表示如下含义:
第一栏 [文件属性]
第二栏 [文件数]
第三栏 [拥有者]
第四栏 [所有者群组]
第五栏 [大小]
第六栏 [建档日期]
第七栏 [档名]
我们设置文件的权限就是这是第一栏里的文件属性。
文件属性这块共有十个字段,如:drwxr-xr-x
我们把这10个列分成4块:[d] [rwx] [r-x] [r-x]
第一块:也就是第一列,用来表示这个文件的类型,有如下值:
(1)[ d ]则是目录,我这里的是d,表示的是一个目录
(2)[ - ]则是文件;
(3)[ l ]则表示为连结档(link file);
(4)[ b ]则表示为装置文件里面的可供储存的接口设备;
(5)[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标。
第二块:第 2到4 列,表示文件拥有者的权限。
第三块:第5到7 列,表示拥有者同组人的权限。
第四块:第8到10列,表示是非拥有者组人的权限。
这些权限均有[rwx] 三个参数表示,而且分别对应不同的位置。每块由3个列组成,每列对应一个值。 [ r ]代表可读、[ w ]代表可写、[ x ]代表可执行。
举例: 如果拥有者只有只读的权限,那么第2到4列就是[r--],有读写的权限就是[rw-],有读写和执行的权利就是[rwx].
4.2 使用数字赋权
在4.1 中了解准备知识之后,就可以使用数字赋权了。 每块用户有3个权限[rwx]. 他们对应数字:
r -->4
w-->2
x-->1
使用数字赋权的命令格式如下:
chmod abc filename
其中的abc 分别代表3个数字,并且分别对应问个不同的属组。 即:
数字a 对应 第2到4位,表示拥有者的权限。
数字b 对应 第5到7位,表示同组用户的权限。
数字c 对应第8到10位,表示其他组的权限。
rwx 对应4,2,1. 那么只读的权限用4表示[r--],读写用6(4+2)表示[rw-],写加执行用7(4+2+1)表示[rwx]。 只读加执行用5(4+1)表示[r-x]。
示例:
chmod 755 file1
chmod 777 file1 <==> chmod a=rwx file
chmod 771 file <==> chmod ug=rwx,o=x file
指令名称 : chown
使用权限 : root
使用方式 : chown [-cfhvR] [--help] [--version] user[:group] file...
说明 : Linux/Unix 是多人多工作业系统,所有的档案皆有拥有者。利用 chown 可以将档案的拥
有者加以改变。一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以
改变别人的档案拥有者,也没有权限可以自己的档案拥有者改设为别人。只有系统管理者(root)才
有这样的权限。
user : 新的档案拥有者的使用者 IDgroup : 新的档案拥有者的使用者群体(group)-c : 若该档案
拥有者确实已经更改,才显示其更改动作-f : 若该档案拥有者无法被更改也不要显示错误讯息-h :
只对于连结(link)进行变更,而非该 link 真正指向的档案-v : 显示拥有者变更的详细资料-R : 对目
前目录下的所有档案与子目录进行相同的拥有者变更(即以递回的方式逐个变更)--help : 显示辅助
说明--version : 显示版本
范例 :
将档案 file1.txt 的拥有者设为 users 群体的使用者 jessie :
chown jessie:users file1.txt
将目前目录下的所有档案与子目录的拥有者皆设为 users 群体的使用者 lamport :
chown -R lamport:users *
-rw------- (600) -- 只有属主有读写权限。
-rw-r--r-- (644) -- 只有属主有读写权限;而属组用户和其他用户只有读权限。
-rwx------ (700) -- 只有属主有读、写、执行权限。
-rwxr-xr-x (755) -- 属主有读、写、执行权限;而属组用户和其他用户只有读、执行权限。
-rwx--x--x (711) -- 属主有读、写、执行权限;而属组用户和其他用户只有执行权限。
-rw-rw-rw- (666) -- 所有用户都有文件读、写权限。这种做法不可取。
-rwxrwxrwx (777) -- 所有用户都有读、写、执行权限。更不可取的做法。
以下是对目录的两个普通设定:
drwx------ (700) - 只有属主可在目录中读、写。
drwxr-xr-x (755) - 所有用户可读该目录,但只有属主才能改变目录中的内容
suid的代表数字是4,比如4755的结果是-rwsr-xr-x
sgid的代表数字是2,比如6755的结果是-rwsr-sr-x
sticky位代表数字是1,比如7755的结果是-rwsr-sr-t
(当然7755这个chmod设置没多大意义,这里只是演示一下)
chown 命令
用途
更改与文件关联的所有者或组。
语法
chown[ -f ] [-h] [-R ] Owner [ :Group ] { File ... | Directory ... }
chown -R [ -f ] [ -H| -L| -P] Owner [ :Group ] { File ... | Directory ... }
描述
chown命令将 File 参数指定的文件的所有者更改为 Owner 参数指定的用户。Owner 参数的值可以是可在 /etc/passwd 文件中找到的用户标识或登录名。还可以选择性地指定组。Group 参数的值可以是可在 /etc/group 文件中找到的组标识或组名。
只有 root 用户可以更改文件的所有者。只在您是 root 用户或拥有该文件的情况下才可以更改文件的组。如果拥有文件但不是 root 用户,则只可以将组更改为您是其成员的组。
虽然 -H、-L 和 -P 标志是互斥的,指定不止一个也不认为是错误。指定的最后一个标志确定命令拟稿将演示的操作。
标志
-f
禁止除用法消息之外的所有错误消息。
-h
更改遇到的符号链接的所有权,而非符号链接指向的文件或目录的所有权。
当遇到符号链接而您未指定 -h 标志时,chown 命令更改链接指向的文件或目录的所有权,而非链接本身的所有权。
如果指定 -R 标志,chown 命令递归地降序指定的目录。
-H
如果指定了 -R 选项,并且引用类型目录的文件的符号链接在命令行上指定,chown 变量会更改由符号引用的目录的用户标识(和组标识,如果已指定)和所有在该目录下的文件层次结构中的所有文件。
-L
如果指定了 -R 选项,并且引用类型目录的文件的符号在命令行上指定或在遍历文件层次结构期间遇到,chown 命令会更改由符号链接引用的目录的用户标识(和组标识,如果已指定)和在该目录之下的文件层次结构中的所有文件。
-P
如果指定了 -R 选项并且符号链接在命令行上指定或者在遍历文件层次结构期间遇到,则如果系统支持该操作,则 chown 命令会更改符号链接的所有者标识(和组标识,如果已指定)。chown 命令不会执行至文件层次结构的任何其它部分的符号链接。
-R
递归地降序目录,更改每个文件的所有权。当遇到符号链接并且链接指向目录时,更改该目录的所有权,但不进一步遍历目录。不过 -h、-H、-L or -P 标志也未指定,则当遇到符号链接并且该链接指向到目录时,该目录的组所有权更改但不会进一步遍历目录。
安全性
访问控制:此程序应该作为“可信计算基”中的正常用户程序安装。
退出状态
该命令返回以下出口值:
0
命令执行成功并已执行所有请求的更改。
>0
发生错误。
示例
· 要更改文件 program.c 的所有者:
chown jim program.c
program.c的用户访问权限现在应用到 jim。作为所有者,jim 可以使用
chmod
命令允许或拒绝其他用户访问 program.c。
· 要将目录 /tmp/src 中所有文件的所有者和组更改为用户 john 和组 build:
chown -R john:build /tmp/src
文件
/usr/bin/chown
chown命令
/etc/group
包含组标识的文件
/etc/passwd
包含用户标识的文件
linux chown与chmod命令的区别
chown 修改文件和文件夹的用户和用户组属性1,要修改文件hh.c的所有者.修改为sakia的这个用户所有
chown sakia hh.c
这样就把hh.c的用户访问权限应用到sakia作为所有者
2,将目录 /tmp/sco 这个目录的所有者和组改为sakia和组net
chown -R sakia:net /tmp/sco
chmod 修改文件和文件夹读写执行属性
1,把hh.c文件修改为可写可读可执行
chmod 777 hh.c
要修改某目录下所有的文件属性为可写可读可执行
chmod 777 *.*
把文件夹名称与后缀名用*来代替就可以了。
同理若是要修改所有htm文件的属性
chmod 777 *.htm
2,把目录 /tmp/sco修改为可写可读可执行
chmod 777 /tmp/sco
要修改某目录下所有的文件夹属性为可写可读可执行
chmod 777 *
把文件夹名称用*来代替就可以了
要修改/tmp/sco下所有的文件和文件夹及其子文件夹属性为可写可读可执行
chmod -R 777 /tmp/sco
可写 w=4
可读 r=2
可执行 x=1
777就是拥有全权限。根据需要可以自由组合用户和组的权限。