pointfish 2010-01-19
指令名称:chmod
使用权限:所有使用者
使用方式:chmod[-cfvR][--help][--version]modefile...
说明:Linux/Unix的档案存取权限分为三级:档案拥有者、群组、其他。利用chmod可以藉以控制档案如何被他人所存取。
把计:
mode:权限设定字串,格式如下:[ugoa...][[+-=][rwxX]...][,...],
其中u表示该档案的拥有者,g表示与该档案的拥有者属于同一个群体(group)者,o表示其他以外的人,a表示这三者皆是。
+表示增加权限、-表示取消权限、=表示唯一设定权限。
r表示可读取,w表示可写入,x表示可执行,X表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
-c:若该档案权限确实已经更改,才显示其更改动作
-f:若该档案权限无法被更改也不要显示错误讯息
-v:显示权限变更的详细资料
-R:对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
--help:显示辅助说明
--version:显示版本
范例:将档案file1.txt设为所有人皆可读取:
chmodugo+rfile1.txt
将档案file1.txt设为所有人皆可读取:
chmoda+rfile1.txt
将档案file1.txt设为所有人皆可读写:
chmoda+wfile1.txt
将档案file1.txt与file2.txt设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入:
chmodug+w,o-wfile1.txtfile2.txt
将ex1.py设定为只有该档案拥有者可以执行:
chmodu+xex1.py
将目前目录下的所有档案与子目录皆设为任何人可读取:
chmod-Ra+r*
此外chmod也可以用数字来表示权限如chmod777file
语法为:chmodabcfile
其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。
(读)r=4,(写)w=2,(执行)x=1
若要rwx属性则4+2+1=7;(读,写,执行)
若要rw-属性则4+2=6;(读,写)
若要r-x属性则4+1=5。(读,执行)
范例:
chmoda=rwxfile和chmod777file效果相同chmod+755
chmodug=rwx,o=xfile和chmod771file效果相同
若用chmod4755filename可使此程式具有root的权限
使用方式:chmod[-cfhvR][--help][--version]user[:group]file...
说明:Linux/Unix是多人多工作业系统,所有的档案皆有拥有者。
利用chown可以将档案的拥有者加以改变。一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的档案拥有者,也没有权限可以自己的档案拥有者改设为别人。只有系统管理者(root)才有这样的权限。
chown
1.作用
更改一个或多个文件或目录的属主和属组。使用权限是超级用户。
2.格式
chown[选项]用户或组文件
3.主要参数
--dereference:受影响的是符号链接所指示的对象,而非符号链接本身。
-h,--no-dereference:会影响符号链接本身,而非符号链接所指示的目的地(当系统支持更改符号链接的所有者,此选项才有效)。
--from=目前所有者:目前组只当每个文件的所有者和组符合选项所指定的,才会更改所有者和组。其中一个可以省略,这已省略的属性就不需要符合原有的属性。
-f,--silent,--quiet:去除大部分的错误信息。
-R,--recursive:递归处理所有的文件及子目录。
-v,--verbose:处理任何文件都会显示信息。
4.说明
chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或用户ID;组可以是组名或组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。系统管理员经常使用chown命令,在将文件拷贝到另一个用户的目录下以后,让用户拥有使用该文件的权限。
5.应用实例
1.把文件shiyan.c的所有者改为wan
$chownwanshiyan.c
2.把目录/hi及其下的所有文件和子目录的属主改成wan,属组改成users。
$chown-Rwan.users/hi
¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬`
linux修改文件权限
2009-02-1009:39
1、变更文件或目录的权限
修改文件:
chmodo+w/home/filename.txt
chmod777/home/filename.txt
修改目录:
chmod777/home/folder
chmod-R777/home/folder//递归处理
chmod-R777/home/folder/*//递归处理
2、变更文件或目录的拥有者或所属群组
chownaddcn.addcn/home/filename.txt
chownaddcn:addcn/home/filename.txt
3、用户和群组
useraddusername
passwdusername
userdelusername
userdel-rusername(刪除用戶相關資料)
groupaddgroupname
gpasswdgroupname
groupdelgroupname
4、文件权限说明
ll/home/filename.txt
-rw-r--r--1rootroot14382Feb1212:45filename.txt
一共有10位数
其中:最前面那个-代表的是类型
开始三个rw-代表的是所有者(user)
中间三个rw-代表的是组群(group)
最后三个r--代表的是其他人(other)
其中:
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
行动:
+表示添加权限
-表示删除权限
=表示使之成为唯一的权限
我们可以利用chmod来修改文件或者目录的权限,但是这样只能修改一个文件或目录,当然也可以写了shell文件来实现,其实linux本身自带的find命令可以实现。
假设我们要把所在目录下的所有目录的权限递归设置为755,我们可以这样写(两条语句的功能一样的):
1、find-typed-execchmod755{}\;(这句的句末有分号)
2、find-typed|xargschmod755
假如我们要把所在目录下的所有文件权限递归地改成644:
1、find-not-typed-execchmod644{}\;
2、find-not-typed|xargschmod644