linux : chgrp/chmod/chown/ln 命令详解
写在前言
groupadd test 创建test用户组
useradd user1 创建user1用户
passwd user1 设置user1的密码
useradd user2 创建user2用户
passwd user2 设置user2的密码
gpasswd -a user1 test 把user1用户添加到test用户组
gpasswd -a user2 test 同上
1. chgrp(change group)
功能说明:变更文件或目录的所属群组。
语 法:chgrp [-cfhRv][--help][--version][所属群组][文件或目录...] 或 chgrp [-cfhRv][--help][--reference=<参考文件或目录>][--version][文件或目录...]
补充说明:在UNIX系统家族里,文件或目录权限的掌控以拥有者及所属群组来管理。您可以使用chgrp指令去变更文件与目录的所属群组,设置方式采用群组名称或群组识别码皆可。
参 数:
-c或--changes 效果类似"-v"参数,但仅回报更改的部分。
-f或--quiet或--silent 不显示错误信息。
-h或--no-dereference 只对符号连接的文件作修改,而不更动其他任何相关文件。
-R或--recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
-v或--verbose 显示指令执行过程。
--help 在线帮助。
--reference=<参考文件或目录> 把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同。
--version 显示版本信息。
举 例:
# chgrp groupName file/dir
# chgrp -R groupName file/dir <将指定目录下的所有文件及子目录一并递归处理>
# chgrp -Rv groupName file/dir <显示指令执行过程>
2. chmod(change mode)
功能说明:变更文件或目录的权限。
语 法:chmod [-cfRv][--help][--version][<权限范围>+/-/=<权限设置...>][文件或目录...] 或 chmod [-cfRv][--help][--version][数字代号][文件或目录...] 或 chmod [-cfRv][--help][--reference=<参考文件或目录>][--version][文件或目录...]
补充说明:在UNIX系统家族里,文件或目录权限的控制分别以读取,写入,执行3种一般权限来区分,另有3种特殊权限可供运用,再搭配拥有者与所属群组管理权限范围。您可以使用chmod指令去变更文件与目录的权限,设置方式采用文字或数字代号皆可。符号连接的权限无法变更,如果您对符号连接修改权限,其改变会作用在被连接的原始文件。权限范围的表示法如下:
u:User,即文件或目录的拥有者。
g:Group,即文件或目录的所属群组。
o:Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围。
a:All,即全部的用户,包含拥有者,所属群组以及其他用户。
有关权限代号的部分,列表于下:
r:读取权限,数字代号为"4"。
w:写入权限,数字代号为"2"。
x:执行或切换权限,数字代号为"1"。
-:不具任何权限,数字代号为"0"。
s:特殊?b>功能说明:变更文件或目录的权限。
参 数:
-c或--changes 效果类似"-v"参数,但仅回报更改的部分。
-f或--quiet或--silent 不显示错误信息。
-R或--recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
-v或--verbose 显示指令执行过程。
--help 在线帮助。
--reference=<参考文件或目录> 把指定文件或目录的权限全部设成和参考文件或目录的权限相同
--version 显示版本信息。
<权限范围>+<权限设置> 开启权限范围的文件或目录的该项权限设置。
<权限范围>-<权限设置> 关闭权限范围的文件或目录的该项权限设置。
<权限范围>=<权限设置> 指定权限范围的文件或目录的该项权限设置。
举 例:
# chown userName file/dir
# chown -R userName file/dir <将指定目录下的所有文件及子目录一并递归处
将档案 file1.txt 设为全部人皆可读取 :chmod ugo+r file1.txt
将档案 file1.txt 设为全部人皆可读取 :chmod a+r file1.txt
将档案 file1.txt 与 file2.txt 设为该档案拥有者,与其所属统一个群体者可写入,但其他以外的人则不成写入 :chmod ug+w,o-w file1.txt file2.txt
将 ex1.py 设定为只有该档案拥有者可以实行 :chmod u+x ex1.py
将今朝目次下的全部档案与子目次皆设为任何人可读取 :chmod -R a+r *
当其他用户实行oracle的sqlplus这个法式时,他的身份因这个法式临时酿成oracle :chmod u+s sqlplus
别的,chmod也可以用数字来暗示权限如 chmod 777 file
语法为:chmod abc file
此中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。
chmod a=rwx file 和 chmod 777 file 结果相同
chmod ug=rwx,o=x file 和 chmod 771 file 结果相同
若用chmod 4755 filename可使此程式具有root的权限
若是是办理员也便是常说的ROOT用户的话,根基上有可以检察全部文件的权利.
3. chown(change owner)
功能说明:变更文件或目录的拥有者或所属群组。
语 法:chown [-cfhRv][--dereference][--help][--version][拥有者.<所属群组>][文件或目录..] 或chown [-chfRv][--dereference][--help][--version][.所属群组][文件或目录... ...] 或chown [-cfhRv][--dereference][--help][--reference=<参考文件或目录>][--version][文件或目录...]
补充说明:在UNIX系统家族里,文件或目录权限的掌控以拥有者及所属群组来管理。您可以使用chown指令去变更文件与目录的拥有者或所属群组,设置方式采用用户名称或用户识别码皆可,设置群组则用群组名称或群组识别码。
参 数:
-c或--changes 效果类似"-v"参数,但仅回报更改的部分。
-f或--quite或--silent 不显示错误信息。
-h或--no-dereference 之对符号连接的文件作修改,而不更动其他任何相关文件。
-R或--recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
-v或--version 显示指令执行过程。
--dereference 效果和"-h"参数相同。
--help 在线帮助。
--reference=<参考文件或目录> 把指定文件或目录的拥有者与所属群组全部设成和参考文件或目 录的拥有者与所属群组相同。
--version 显示版本信息。
举 例:
# chmod +r file/dir <加读权限>
# chmod +w file/dir <加写权限>
# chmod +x file/dir <加执行权限>
# chmod -R +rwx file/dir <加所有权限并递归处理指定目录下所有文件及子目录>
# chmod -R 777 file/dir <加所有权限并递归处理指定目录下所有文件及子目录>取消权限
# chmod -r file/dir <取消读权限>
# chmod -w file/dir <取消写权限>
# chmod -x file/dir <取消执行权限>
# chmod -R -rwx file/dir <取消所有权限并递归处理指定目录下所有文件及子目录>
# chmod -R 0 file/dir <取消所有权限并递归处理指定目录下所有文件及子目录>
4.ln(link)
功能说明:连接文件或目录。
语 法:ln [-bdfinsv][-S <字尾备份字符串>][-V <备份方式>][--help][--version][源文件或目录][目标文件或目录] 或 ln [-bdfinsv][-S <字尾备份字符串>][-V <备份方式>][--help][--version][源文件或目录...][目的目录]
补充说明:ln指令用在连接文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则会把前面指定的所有文件或目录复制到该目录中。若同时指定多个文件或目录,且最后的目的地并非是一个已存在的目录,则会出现错误信息。
参 数:
-b或--backup 删除,覆盖目标文件之前的备份。
-d或-F或--directory 建立目录的硬连接。
-f或--force 强行建立文件或目录的连接,不论文件或目录是否存在。
-i或--interactive 覆盖既有文件之前先询问用户。
-n或--no-dereference 把符号连接的目的目录视为一般文件。
-s或--symbolic 对源文件建立符号连接,而非硬连接。
-S<字尾备份字符串>或--suffix=<字尾备份字符串> 用"-b"参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,预设的字尾备份字符串是符号"~",您可通过"-S"参数来改变它。
-v或--verbose 显示指令执行过程。
-V<备份方式>或--version-control=<备份方式> 用"-b"参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,这个字符串不仅可用"-S"参数变更,当使用"-V"参数<备份方式>指定不同备份方式时,也会产生不同字尾的备份字符串。
--help 在线帮助。
--version 显示版本信息。
这几个命令必须学习好,灵活使用,FreeBSD中的用户,群组的权限管理很严格,我们会经常使用这几个命令的。所以必须熟练使用。