Linux系统的权限管理

简介:

linux系统属于多用户多任务的系统,而为了让不同的使用者能够拥有自己的保密的文件数据,因而文件目录对于不同的用户和用户组的权限均不相同。比方说,对于普通文件(或目录)来说,能够存取该文件的用户身份一般有三类:1、user;2、group;3、others;这三类身份分别对该文件(目录)拥有rwx(读/写/执行)的权限。若管理员不慎将原本属于owner的权限赋予给others,这将会导致任何人均能以owner相同的权限访问该文件(目录),这可能会导致严重的后果。因此为了避免此类事情的发生,权限管理变得至关重要。

权限介绍

登录进linux系统中,执行ls -l 命令,通常会显示出如下类似的结果:

-rw-------. 1 root root  953 1月   4 23:41 anaconda-ks.cfg
-rw-r--r--. 1 root root    5 1月  23 22:59 hello.sh
-rw-r--r--. 1 root root 1001 1月  14 14:19 initial-setup-ks.cfg
-rw-r--r--. 1 root root    0 1月  23 21:26 tee
drwxr-xr-x. 2 root root    6 1月  14 14:48 公共
drwxr-xr-x. 2 root root    6 1月  14 14:48 模板
drwxr-xr-x. 2 root root    6 1月  14 14:48 视频
drwxr-xr-x. 2 root root    6 1月  14 14:48 图片
drwxr-xr-x. 2 root root    6 1月  14 14:48 文档
drwxr-xr-x. 2 root root   43 1月  14 23:23 下载
drwxr-xr-x. 2 root root    6 1月  14 14:48 音乐
drwxr-xr-x. 2 root root    6 1月  14 14:48 桌面

如上述所示,以空格为分隔符,第一列就是相关的文件权限,除了第一位为文件类型描述和最后一个位特殊权限位之外,从左往右,每三位分别表示:属主的权限属组的权限其他人的权限

而对于文件和目录,权限所起的效果也不完全一致,如:

  • 文件

    • r:可对文件进行读取;
    • w:可对文件进行修改保存;
    • x :可将该文件执行运行为进程;
  • 目录

    • r:可浏览该目录;
    • w :可删除或移动目录内的文件;
    • x :具有进入该目录的权限,如使用cd命令切换工作目录到对应目录;

常用的权限管理命令:

文件权限修改命令:chmod
该命令用于管理修改用户的权限,通常只有管理员root才能使用。

  • 命令格式
chmod [OPTION]... MODE[,MODE]... FILE...
chmod [OPTION]... OCTAL-MODE FILE...
  • 常用选项
-R:表示递归执行;
--reference=RFILE :将参考RFILE文件的权限,将FILE权限更改为与RFILE文件权限一致;
  • 权限表示模式

      1. MODE:以十六位进制表示用户权限,权限的对应值分别为:r=4,w=2,x=1。通过将三个权限身份的权限位分别独立相加得出MODE值,如:rwxr--rw-可表示为745,rw-r--r--可表示为644,rwx------可表示为700等等。
      1. OCTAL-MODE :八进制表示模式,表示格式:[ugoa][+-=][rwx],分别以u,g,o代表user,group,others三个权限身份,+/-为为权限身份增加或删减对应的权限,=为给对应的权限身份赋予权限,rwx分别为读写执行权限。
  • 使用实例

  1. 修改文件权限为属主有读写权限,属组只有读权限,其他组没有权限:
[root@localhost tmp]# chmod 640 modtest
[root@localhost tmp]# ll modtest 
-rw-r-----. 1 root root 0 2月   5 10:23 modtest
  1. 为文件的属组加上写权限:
[root@localhost tmp]# chmod g+w modtest 
[root@localhost tmp]# ll modtest 
-rw-rw----. 1 root root 0 2月   5 10:23 modtest
  1. 以/etc/init.d/network为模板,将其权限复制给其他文件:
[root@localhost tmp]# chmod --reference=/etc/init.d/network modtest 
[root@localhost tmp]# ll modtest 
-rwxr-xr-x. 1 root root 0 2月   5 10:23 modtest
[root@localhost tmp]# ll /etc/init.d/network 
-rwxr-xr-x. 1 root root 6630 9月  16 2015 /etc/init.d/network

更改文件/目录的属主或属组:chown
chown命令用于更改文件或目录的属主或属组,该命令可以指定对应的用户成为某一文件或目录的拥有者,只有文件的拥有者和管理员root才能使用该命令。

  • 命令格式
chown [OPTION]... [OWNER][:[GROUP]] FILE...
  • 常用选项
-R:递归处理,将指定目录下的所有文件及子目录一并处理;
--reference=RFILE:将参考RFILE文件的权限身份,将FILE拥有者情况更改为与RFILE一致;
  • 参数说明
    [OWNER][:[GROUP]] :属主和属组之间通过:连接,两者之间可有一为空,但不能同时为空,如:charlie,:root。

  • 使用案例

  1. 更改文件属组为charlie:
[root@localhost tmp]# chown :charlie modtest 
[root@localhost tmp]# ll modtest 
-rwxr-xr-x. 1 root charlie 0 2月   5 10:23 modtest
  1. 将文件目录及其子目录和文件更改为同一个属主:
[root@localhost tmp]# chown -R charlie testdir/
[root@localhost tmp]# ll testdir/
总用量 4
-rwxr-xr-x. 1 charlie root 3472 2月   1 11:45 passwd
drwxr-xr-x. 2 charlie root    6 2月   5 11:12 test2
[root@localhost tmp]# ll -d testdir
drwxr-xr-x. 3 charlie root 31 2月   5 11:12 testdir

显示或设定文件的模式掩码:umask
umask命令用于设置或打印当前的文件模式掩码,如果没有提供相应的掩码,则默认打印显示当前的umask值。

  • 命令格式
umask [-p] [-S] [模式]
  • 常用选项
-p:输出的权限掩码可以作为指令来执行;
-S:以符号的方式输出权限掩码;
- **模式**:

对于文件和目录来说,利用umask值来得出默认权限的计算方式是不一样的:
1. 文件:由于文件默认不具有执行权限,因此新建文件的默认权限为:666-umask值;
2. 目录:新建目录的默认全新未,777-umask值。

  • 使用实例
    利用umask命令,可以指定哪些权限在新建文件的默认权限中被删除,如,更改umask值,使得新建文件默认权限的属主不再具有写权限,属组具有读写权限,其他组没有任何权限:
[root@localhost ~]# umask 0206
[root@localhost ~]# touch /tmp/umask
[root@localhost ~]# ll /tmp/umask
-r--rw----. 1 root root 0 2月   6 22:07 /tmp/umask

你可能感兴趣的:(Linux系统的权限管理)