linux之chown, chgrp, chmod命令

时间:2024-04-12 19:41:26

一:三个命令的作用

  chown, chgrp ,chmod是更改linux系统下的文件和档案的属性与权限的三个命令。

  在说具体的命令用法之前,先来谈一谈文件和档案属性与权限的重要性!

  与Windows 系统不一样的是,在 Linux 系统当中,每一个档案都多加了很多的属性进来,尤其是群组
的概念,这样有什么用途呢? 其实,最大的用途是在『数据安全性』上面的。
 ①:系统保护的功能
  举个简单的例子,在你的系统中,关于系统服务的档案通常只有 root (管理员)才能读写或者是执行,例如/etc/shadow 这一个账号管理的档案,由于该档案记录了你系统中所有账号的数据, 因此是很重要的一个配置文件,当然不能让任何人读取(否则密码会被窃取啊),只有 root 才能够来读取啰!所以该档案的权限就会成为[ -rw------- ]啰!
 ②:团队开发软件戒数据共享的功能:
  此外,如果你有一个软件开发团队,在你的团队中,你希服每个人都可以使用某一些目录下的档案, 而非你的团队的其他人则不予以开放呢?例如,testgroup 的团队共有三个人,分别是 test1, test2, test3,那我就可以将团队所需的档案权限订为[ -rwxrwx--- ]来提供testgroup 的工作团队使用啰!
 ③:未将权限设定妥当的危害:
  再举个例子来说,如果你的目录权限没有作好的话,可能造成其他人都可以在你的系统上面乱搞啰! 例如本来只有 root 才能做的开关机、ADSL 的拨接程序、新增戒删除用户等等的命令,若被你改成任何人都可以执行的话, 那么如果使用者不小心给你重新启动啦!重新拨接啦!等等的!那样你的系统不就会常常莫名其妙的挂掉啰! 而且万一你的用户的密码被其他不明人士取得的话,只要他登入你的系统就可以轻而易举的执行一些 root 的工作。

二:命令的用法

  chgrp-----change group缩写:改变档案所属群组

   chown-----change owner缩写:改变档案的所属者

   chmod:改变档案的权限

 ①:chgrp,改变档案所属群组

   假设你是以 root 的身份登入 Linux 系统的,那在你的家目录内有一个 install.log 的档案, 如何将该档案的群组改变一下呢?假设你已经知道在/etc/group 里面已经存在一个名为 users 的群组。chgrp+群组名+档案名,便可更改文件所属群组。

  linux之chown, chgrp, chmod命令

上例便将install.log所属群组更改为了users.

②:chown,改变档案所属者

  要注意的是, 要更改的所档案有者,必项是已经存在系统中的账号,也就是在/etc/passwd 这个档案中有纪录的用户名称才能改变。
chown 的用途还蛮多的,还可以顺便直接修改群组的名称呢!此外,如果要连目录下的所有次目录档案同时更改档案拥有者的话,直接加上 -R 的选项即可

linux之chown, chgrp, chmod命令

上例将install.log文档拥有者更改为bin。并且利用chown命令install.log文档的所属群组和所属者还原为root。

 ③:chmod,改变档案的权限

   档案权限的改变使用的是 chmod 这个命令,但是,权限的设定方法有两种, 分别可以使用数字或者是符号来进行权限的变更。

  1:数字更改方法   

   Linux 档案的基本权限就有九个,分别是 owner/group/others 三种身份各有自己的read/write/execute 权限。

   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

   所以等一下我们讴定权限的变更时,该档案的权限数字就是 770 啦!变更权限的命令 chmod 的用法是这样的:

   linux之chown, chgrp, chmod命令

   linux之chown, chgrp, chmod命令

  上例则是将.bashrc文档的权限更改为777,即所有人均可读写并执行!

 2:符号更改方法

  从之前的介绍中我们可以发现,基本上就九个权限分别是(1)user(2)group (3)others 三种身份啦!那举我们就可以藉由 u, g, o 来代  表三种身份的权限!此外,a 则代表 all 亦即全部的身份!那举读写的权限就可以写成 r, w, x 啰!也就是可以使用底下的方式来看:

  linux之chown, chgrp, chmod命令

  来实作一下吧!假如我们要『设定』一个档案的权限成为『-rwxr-xr-x』时,基本上就是:
  user (u):具有可读、可写、可执行的权限;
  group 和 others (g/o):具有可读不执行的权限。
  所以就是:

  linux之chown, chgrp, chmod命令

  那举假如是『 -rwxr-xr-- 』这样的权限呢?可以使用『 chmod u=rwx,g=rx,o=r filename 』来设定。此外,如果我不知道原先的文  件属性,而我只想要增加.bashrc 这个档案的每个人均可写入的权限, 那举我就可以使用:

  linux之chown, chgrp, chmod命令

  而如果是要将权限去掉而不更改其他已存在的权限呢?例如要拿掉全部人的可执行权限,则:

  linux之chown, chgrp, chmod命令

三:说明

 以上是chgrp,chown,chmod三种命令的用法。

 本文大部分为《鸟哥linux私房菜》读书笔记加上一些本人自身理解,供大家学习参考!