命令简介 chown是linux最基础的命令之一,也是最常用的命令之一。可以通过chown修改文件、文件夹、符号链接的所有者信息。示例 chown需要root权限执行。root权限需要root用户登录,或者sudo权限。1使用chown修改文件的所有者 更改文件的所有者,是chown命令的简单应用。参数需要一个新的用户名,以及一个文件名。用户名必须为系统中可用账户。 命令格式:sudochownnewownerfilename 示例:yunzhongDESKTOP9VB7LN7:tmpchowntestlsltotal4rwrr1yunzhongyunzhong77Nov1113:47friutes。txtyunzhongDESKTOP9VB7LN7:tmpchowntestsudochowntest1friutes。txtyunzhongDESKTOP9VB7LN7:tmpchowntestlslfriutes。txtrwrr1test1yunzhong77Nov1113:47friutes。txt2使用chown更改文件所在组 Chown命令用于修改文件所属组。在新组名前必须使用冒号。否则,它将被视为新owner。 命令格式:sudochown:newgroupfilename 命令示例:yunzhongDESKTOP9VB7LN7:tmpchowntestsudochown:yunzhongfriutes。txtyunzhongDESKTOP9VB7LN7:tmpchowntestlltotal4rwrr1test1yunzhong77Nov1113:47friutes。txt3chown命令使用用户ID修改文件的所有者 chown也可以通过用户ID来更改文件的所有者。但这里有个问题:系统怎么知道传入的参数是用户ID,还是用户名?其实系统也无法区分,如果有一个用户的名字和用户ID相同,系统则认为传入的为用户名。可以使用id命令查看用户ID。iduusername 命令格式,和通过用户名更改所有者是一样的。 示例:yunzhongDESKTOP9VB7LN7:tmpchowntestiduyunzhong1000yunzhongDESKTOP9VB7LN7:tmpchowntestsudochown1000friutes。txtyunzhongDESKTOP9VB7LN7:tmpchowntestlltotal4rwrr1yunzhongyunzhong77Nov1113:47friutes。txt 如果有一个用户名为:1000,那么所有者就改成了1000。yunzhongDESKTOP9VB7LN7:tmpchowntestsudouseradd1000yunzhongDESKTOP9VB7LN7:tmpchowntestsudochown1000friutes。txtyunzhongDESKTOP9VB7LN7:tmpchowntestlltotal4rwrr11000yunzhong77Nov1113:47friutes。txt4使用groupID更改文件所在组 和修改所有者类似,group也可以通过id来修改。查看groupID的命令:idggroupname 命令格式:sudochown:groupidfilename 示例:yunzhongDESKTOP9VB7LN7:tmpchowntestlltotal4rwrr1test1test177Nov1113:47friutes。txtyunzhongDESKTOP9VB7LN7:tmpchowntestidgyunzhong1000yunzhongDESKTOP9VB7LN7:tmpchowntestsudochown:1000friutes。txtyunzhongDESKTOP9VB7LN7:tmpchowntestlltotal4rwrr1test1100077Nov1113:47friutes。txtyunzhongDESKTOP9VB7LN7:tmpchowntestidg10001006yunzhongDESKTOP9VB7LN7:tmpchowntestidgtest11002yunzhongDESKTOP9VB7LN7:tmpchowntestsudochown:1002friutes。txtyunzhongDESKTOP9VB7LN7:tmpchowntestlltotal4rwrr1test1test177Nov1113:47friutes。txt 和上一节同理,如果groupID和另外一个group名字重复,则认为参数是group名字。5chown修改多个文件的所有者 当需要修改多个文件为一个所有者时,chown只需要执行一次就可以做到。chown支持一次传入多个文件名,通过空格分割。sudochownnewownerfilename1filename2filename3 示例:yunzhongDESKTOP9VB7LN7:tmpchowntestlltotal12rwrr1test1test177Nov1113:47friutes。txtrwrr1test1test177Nov1408:32friutes。txt。1rwrr1test1test177Nov1408:32friutes。txt。2yunzhongDESKTOP9VB7LN7:tmpchowntestsudochownyunzhong:yunzhongfriutes。txtfriutes。txt。1friutes。txt。2yunzhongDESKTOP9VB7LN7:tmpchowntestlltotal12rwrr1yunzhongyunzhong77Nov1113:47friutes。txtrwrr1yunzhongyunzhong77Nov1408:32friutes。txt。1rwrr1yunzhongyunzhong77Nov1408:32friutes。txt。2 如上面的示例,文件名有相同的前缀,我们可以用更简单的方式批量修改所有者:通配符。yunzhongDESKTOP9VB7LN7:tmpchowntestlltotal12rwrr1yunzhongyunzhong77Nov1113:47friutes。txtrwrr1yunzhongyunzhong77Nov1408:32friutes。txt。1rwrr1yunzhongyunzhong77Nov1408:32friutes。txt。2yunzhongDESKTOP9VB7LN7:tmpchowntestsudochowntest1friutes。txtyunzhongDESKTOP9VB7LN7:tmpchowntestlltotal12rwrr1test1yunzhong77Nov1113:47friutes。txtrwrr1test1yunzhong77Nov1408:32friutes。txt。1rwrr1test1yunzhong77Nov1408:32friutes。txt。26chown命令支持同时修改所有者和所在组 chown支持同时输入所有者和所在组,一次修改文件属性。 命令格式:sudochownnewowner:newgroupfilename 示例:yunzhongDESKTOP9VB7LN7:tmpchowntestlltotal12rwrr1test1yunzhong77Nov1113:47friutes。txtrwrr1test1yunzhong77Nov1408:32friutes。txt。1rwrr1test1yunzhong77Nov1408:32friutes。txt。2yunzhongDESKTOP9VB7LN7:tmpchowntestsudochownyunzhong:test1friutes。txtyunzhongDESKTOP9VB7LN7:tmpchowntestlltotal12rwrr1yunzhongtest177Nov1113:47friutes。txt7使用chown命令将一个文件的所有者、所在组同步到另外一个文件 命令格式:sudochownreferencesoucefiledestinationfile 示例:yunzhongDESKTOP9VB7LN7:tmpchowntestlltotal12rwrr1yunzhongtest177Nov1113:47friutes。txtrwrr1test1yunzhong77Nov1408:32friutes。txt。1rwrr1test1yunzhong77Nov1408:32friutes。txt。2yunzhongDESKTOP9VB7LN7:tmpchowntestsudochownreferencefriutes。txtfriutes。txt。1chown:failedtogetattributesof:NosuchfileordirectoryyunzhongDESKTOP9VB7LN7:tmpchowntestsudochownreferencefriutes。txtfriutes。txt。1yunzhongDESKTOP9VB7LN7:tmpchowntestlltotal12rwrr1yunzhongtest177Nov1113:47friutes。txtrwrr1yunzhongtest177Nov1408:32friutes。txt。1 注意一点,参数reference之后不能有空格,如果有空格,则认为参数错误,如上示例。8打印chown命令的变更记录 chown可以打印文件被自己操作的记录。如果参数不传入文件,则什么都不打印。 命令格式:sudochownv 示例:yunzhongDESKTOP9VB7LN7:tmpchowntestlltotal12rwrr1yunzhongtest177Nov1113:47friutes。txtrwrr1yunzhongtest177Nov1408:32friutes。txt。1rwrr1test1yunzhong77Nov1408:32friutes。txt。2yunzhongDESKTOP9VB7LN7:tmpchowntestsudochownvtest1friutes。txtchangedownershipoffriutes。txtfromyunzhongtotest1yunzhongDESKTOP9VB7LN7:tmpchowntestsudochownvtest1friutes。txtownershipoffriutes。txtretainedastest19chown只有在文件所有者、所在组发生变化的时候才打印信息 和上面的v参数不同,c命令只有在所有者、所在组发生变化的时候才会打印。 命令格式:sudochownc 示例:yunzhongDESKTOP9VB7LN7:tmpchowntestlltotal12rwrr1test1test177Nov1113:47friutes。txtrwrr1yunzhongtest177Nov1408:32friutes。txt。1rwrr1test1yunzhong77Nov1408:32friutes。txt。2yunzhongDESKTOP9VB7LN7:tmpchowntestsudochownctest1:test1friutes。txtyunzhongDESKTOP9VB7LN7:tmpchowntestsudochowncyunzhong:yunzhongfriutes。txtchangedownershipoffriutes。txtfromtest1:test1toyunzhong:yunzhongyunzhongDESKTOP9VB7LN7:tmpchowntest10chown命令修改一个目录的所有者、所在组 和修改文件的操作类似,只要传输的改成目录名就可以。 命令格式:修改文件夹的所有者sudochownnewownerdirectoryname修改文件夹的所在组sudochown:newgroupdirectoryname 示例:yunzhongDESKTOP9VB7LN7:tmplldrwxrxrx2yunzhongyunzhong4096Nov1408:32chowntestyunzhongDESKTOP9VB7LN7:tmpsudochowntest1:test1chowntestyunzhongDESKTOP9VB7LN7:tmplldrwxrxrx2test1test14096Nov1408:32chowntest11只有所有者和指定参数匹配,才修改所有者 通过设定参数from,可以校验文件当前的所有者是否匹配。只有在匹配的情况下才会更改。 命令格式:sudochownfromcurrentownernewownerfilename 示例:yunzhongDESKTOP9VB7LN7:tmpchowntestlltotal12rwrr1yunzhongyunzhong77Nov1113:47friutes。txtyunzhongDESKTOP9VB7LN7:tmpchowntestsudochownfromyunzhongtest1friutes。txtyunzhongDESKTOP9VB7LN7:tmpchowntestlltotal12rwrr1test1yunzhong77Nov1113:47friutes。txtyunzhongDESKTOP9VB7LN7:tmpchowntestsudochownfromyunzhong1000friutes。txtyunzhongDESKTOP9VB7LN7:tmpchowntestlltotal12rwrr1test1yunzhong77Nov1113:47friutes。txt12只有所在组和指定参数匹配,才修改所在组 其实,用户可以通过参数单独校验所有者,所在组,也可以同时校验两者。 命令格式:sudochownfrom:currentgroup:newgroupfilename或者sudochownfromcurrentowner:currentgroupnewowner:newgroupfilename 示例:yunzhongDESKTOP9VB7LN7:tmpchowntestlltotal12rwrr1test1yunzhong77Nov1113:47friutes。txtyunzhongDESKTOP9VB7LN7:tmpchowntestsudochownfromyunzhong:yunzhongyunzhong:test1friutes。txtyunzhongDESKTOP9VB7LN7:tmpchowntestlltotal12rwrr1test1yunzhong77Nov1113:47friutes。txtyunzhongDESKTOP9VB7LN7:tmpchowntestsudochownfromtest1:yunzhongyunzhong:yunzhongfriutes。txtyunzhongDESKTOP9VB7LN7:tmpchowntestlltotal12rwrr1yunzhongyunzhong77Nov1113:47friutes。txt13更改一个文件夹下所有内容的所有者或所在组 使用R参数,可以递归修改文件夹下所有的子文件、子文件夹。当修改大量文件的时候,这个参数可以帮助我们一次调用实现修改。 命令格式:sudochownRnewowner:newgroupdirectoryname 示例:yunzhongDESKTOP9VB7LN7:tmpllRchowntestchowntest:total16rwrr1yunzhongyunzhong77Nov1113:47friutes。txtrwrr1yunzhongyunzhong77Nov1408:32friutes。txt。1rwrr1yunzhongyunzhong77Nov1408:32friutes。txt。2drwxrxrx2yunzhongyunzhong4096Nov1410:50subdirchowntestsubdir:total12rwrr1yunzhongyunzhong77Nov1410:50friutes。txtrwrr1yunzhongyunzhong77Nov1410:50friutes。txt。1rwrr1yunzhongyunzhong77Nov1410:50friutes。txt。2yunzhongDESKTOP9VB7LN7:tmpsudochownRtest1:test1chowntestyunzhongDESKTOP9VB7LN7:tmpllRchowntestchowntest:total16rwrr1test1test177Nov1113:47friutes。txtrwrr1test1test177Nov1408:32friutes。txt。1rwrr1test1test177Nov1408:32friutes。txt。2drwxrxrx2test1test14096Nov1410:50subdirchowntestsubdir:total12rwrr1test1test177Nov1410:50friutes。txtrwrr1test1test177Nov1410:50friutes。txt。1rwrr1test1test177Nov1410:50friutes。txt。214修改符号链接的所有者、所在组 默认情况下,chown修改的是符号链接源文件的所有者、所在组。可以使用h修改符号链接文件的信息。 命令格式:sudohnewowner:newgroupsymfile 示例:yunzhongDESKTOP9VB7LN7:tmpchowntestlltotal16rwrr1yunzhongyunzhong77Nov1113:47friutes。txtdrwxrxrx2yunzhongyunzhong4096Nov1410:50subdiryunzhongDESKTOP9VB7LN7:tmpchowntestlnsfriutes。txtfriutes。txt。lnyunzhongDESKTOP9VB7LN7:tmpchowntestlltotal16rwrr1yunzhongyunzhong77Nov1113:47friutes。txtlrwxrwxrwx1yunzhongyunzhong11Nov1410:59friutes。txt。lnfriutes。txtdrwxrxrx2yunzhongyunzhong4096Nov1410:50subdiryunzhongDESKTOP9VB7LN7:tmpchowntestsudochowntest1:test1friutes。txt。lnyunzhongDESKTOP9VB7LN7:tmpchowntestlltotal16rwrr1test1test177Nov1113:47friutes。txtlrwxrwxrwx1yunzhongyunzhong11Nov1410:59friutes。txt。lnfriutes。txtdrwxrxrx2yunzhongyunzhong4096Nov1410:50subdiryunzhongDESKTOP9VB7LN7:tmpchowntestsudochownhtest1:test1friutes。txt。lnyunzhongDESKTOP9VB7LN7:tmpchowntestlltotal16rwrr1test1test177Nov1113:47friutes。txtlrwxrwxrwx1test1test111Nov1410:59friutes。txt。lnfriutes。txtdrwxrxrx2yunzhongyunzhong4096Nov1410:50subdir屏蔽错误信息 默认情况下,chown执行错误信息会打印到终端。可以使用f参数,屏蔽错误信息。 命令格式:sudochownfnewownerfilename 示例:yunzhongDESKTOP9VB7LN7:tmpchowntestsudochownyunzhongnotfoundfilechown:cannotaccessnotfoundfile:NosuchfileordirectoryyunzhongDESKTOP9VB7LN7:tmpchowntestsudochownfyunzhongnotfoundfileyunzhongDESKTOP9VB7LN7:tmpchowntestchownyunzhongfriutes。txtchown:changingownershipoffriutes。txt:OperationnotpermittedyunzhongDESKTOP9VB7LN7:tmpchowntestchownfyunzhongfriutes。txt