Linux命令 改变文档权限及所有者
- chgrp :改变档案所属群组
- chown :改变档案拥有者
- chmod :改变档案的权限, SUID, SGID, SBIT等等的特性
chgrp说明及范例
[[email protected] ~]# chgrp [-R] dirname/filename
选项与参数: -R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有档案、目录 都更新成为这个群组之意。常常用在变更某一目录内所有的档案之情况。
范例:
[[email protected] ~]# chgrp users install.log
[[email protected] ~]# ls -l -rw-r--r-- 1 root users 68495 Jun 25 08:53 install.log
[[email protected] ~]# chgrp testing install.log chgrp: invalid group name `testing‘ <== 发生错误讯息啰~找不到这个群组名~
chown 说明及范例
[[email protected] ~]# chown [-R] 账号名称 档案或目录 [[email protected] ~]
# chown [-R] 账号名称:组名 档案或目录 选项与参数: -R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有档案都变更
范例:将install.log的拥有者改为bin这个账号:
[[email protected] ~]# chown bin install.log
[[email protected] ~]# ls -l -rw-r--r-- 1 bin users 68495 Jun 25 08:53 install.log
范例:将install.log的拥有者与群组改回为root:
[[email protected] ~]# chown root:root install.log
[[email protected] ~]# ls -l -rw-r--r-- 1 root root 68495 Jun 25 08:53 install.log
备注
Tips: 事实上,chown也可以使用『chown user.group file』,亦即在拥有者与群组间加上小数点『.』也行! 不过很多朋友设定账号时,喜欢在账号当中加入小数点(例如vbird.tsai这样的账号格式),这就会造成系统的误判了! 所以我们比较建议使用冒号『:』来隔开拥有者与群组啦!此外,chown也能单纯的修改所属群组呢! 例如『chown .sshd install.log』就是修改群组~看到了吗?就是那个小数点的用途!
Linux档案的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限, 先复习一下刚刚上面提到的数据:档案的权限字符为:『-rwxrwxrwx』, 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:
r:4
w:2
x:1
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx---] 分数则是:
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= --- = 0+0+0 = 0
chmod说明及范例
[[email protected] ~]# chmod [-R] xyz 档案或目录
选项与参数: xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。 -R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有档案都会变更
举例来说,如果要将.bashrc这个档案所有的权限都设定启用
[[email protected] ~]# ls -al .bashrc -rw-r--r-- 1 root root 395 Jul 4 11:45 .bashrc
[[email protected] ~]# chmod 777 .bashrc
[[email protected] ~]# ls -al .bashrc -rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc
符号类型改变档案权限
设定一个档案的权限成为『-rwxr-xr-x』时,基本上就是:
o user (u):具有可读、可写、可执行的权限;
o group 与 others (g/o):具有可读与执行的权
[[email protected] ~]# chmod u=rwx,go=rx .bashrc
# 注意喔!那个 u=rwx,go=rx 是连在一起的,中间并没有任何空格符!
[[email protected] ~]# ls -al .bashrc -rwxr-xr-x 1 root root 395 Jul 4 11:45 .bashrc
我只想要增加.bashrc这个档案的每个人均可写入的权限
[[email protected] ~]# ls -al .bashrc -rwxr-xr-x 1 root root 395 Jul 4 11:45 .bashrc
[[email protected] ~]# chmod a+w .bashrc
[[email protected] ~]# ls -al .bashrc -rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc
要拿掉全部人的可执行权限
[[email protected] ~]# chmod a-x .bashrc
[[email protected] ~]# ls -al .bashrc -rw-rw-rw- 1 root root 395 Jul 4 11:45 .bashrc