您的位置:首页 > 运维架构 > Linux

19_Linux基础知识及命令――――修改文件的属主和属组

2014-04-29 23:51 585 查看
首先我们来看一个小例子:a.txt属于redis组,因此redis组的用户对a.txt文件具有读写权限。如果我们想让用户mongodb 对文件a.txt具有读写权限,而mongodb并不在redis 组中,那么只能将a.txt的其他用户改为读写权限,但是这样一来不止mongodb,所有的其他用户都对a.txt具有读写权限了,因此这样的操作是非常危险的,通常不建议这么做。
# cd /tmp# ll# id mongodb# chmod o=rw a.txt# ll



那么安全的做法是什么呢?a) 如果文件a.txt对redis用户仍有意义,那么我们可以将mongodb 用户加入到 redis组中,给redis组赋予读写权限; b)如果文件a.txt 对redis用户已经没有意义了,那么我们可以将 a.txt的属主改为 mongodb用户,并且让a.txt的属主具有读写权限。
修改文件的属主命令格式为:# chown [option] USERNAME FILE_NAME其含义为将 FILE_NAME 这个文件的属主改为 USERNAME 这个用户
修改文件的属组命令格式为:# chgrp [option] GROUP_NAME FILE_NAME其含义为将 FILE_NAME 这个文件的属组改为 GROUP_NAME 这个用户
以上两个命令的选项和修改文件权限一样,有两个,分别是:-R: 递归修改权限--reference=[PATH]/FILE_NAME1 FILE_NAME2
例如,将文件 a.txt的属主改为mongodb用户:# chown mongodb a.txt# ll
将文件a.txt的属组改为testgrp:# chgrp testgrp a.txt# ll
事实上使用chown 命令可以同时修改文件的属主和属组,其格式如下:# chown USERNAME:GROUP_NAME FILE_NAME其含义为将 FILE_NAME这个文件的属主改为USERNAME,并将其属组设定为GROUP_NAME这个组
更简单的写法可以是:# chown USERNAME.GROUP_NAME FILE_NAME
例如,将文件a.txt的属主和属组改为root用户的root组# chown root:root a.txt或者是# chown root.root a.txt# ll
命令chown 还可以只改属组而保留属主,其写法为:# chown:GROUP_NAME FILE_NAME例如,将文件a.txt的属组改为redis组,可以写成:# chown :redis a.txt# ll
如果想把a.txt的属主和属组改成b.txt的属主和属组,可以使用 --refernece 选项:# chown --reference=b.txt a.txt# ll

需要注意的是,chown和chgrp命令更改的权限都只针对文件本身,即如果文件是目录,则目录里的文件仍保持原来的权限。如果想同时修改目录和其中的文件权限,则需要使用 -R 来进行递归修改。

例如修改目录a的属组,不会影响目录a中文件的属组:
# ll
# chgrp redis a
# ll
# ll a




注意,chmod命令所有用户都能使用,但是改变文件的属主(chown)和属组(chgrp),只有管理员才有此权限。

本文出自 “重剑无锋 大巧不工” 博客,请务必保留此出处http://wuyelan.blog.51cto.com/6118147/1404832
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: