我们已经可以通过创建不同的用户来防止其他人使用自己的账号,之后每个账户对应一个单独的用户密码,构成了一个基本的用户管理思路。为了方便管理还可以使用组来设置相同属性的用户。那么设置这些到底是为了什么呢?今天就揭开它的面纱。
Linux系统是一个典型的多用户操作系统,不同的用户处于不同的地位,为了保护系统的安全性,linux系统对于不同用户访问同一个文件或目录做了不同的访问权限控制。
我们是否还记得查看文件权限的命令,为了便于大家理解首先我创建如下所示文件和目录并查看相应的权限。
[user@qiuri ~]$ mkdir qiuri
[user@qiuri ~]$ touch xifeng
[user@qiuri ~]$ ls -l
总计 4
drwxrwxr-x 2 user user 4096 07-13 15:17 qiuri
-rw-rw-r-- 1 user user 0 07-13 15:17 xifeng
[user@qiuri ~]$
第一个部分:文件类型和文件权限,其中第一个字符是文件的类型标志,后9个为权限标志。通过第一位确认文件属于那种类型。说道文件类型在Windows中,常见的文件类型有file.txt、file.doc、file.mp3等,根据文件的后缀名判断该文件的类型,在Linux中,一个文件主要看他是否能够执行与后缀没有太大的关系,主要看文件的属性有关。
在linux中常见的文件类型有:
“—”表示普通文件,例如:
[root@qiuri ~]# ls -l install.log
-rw-r--r-- 1 root root 41727 07-13 02:56 install.log
输出的第一个标志位是“-”,这样的文件在Linux 中就是普通文件。这些文件一般是用一些相关的应用程序创建,比如图像工具、文档工具、归档工具... .... 或 cp工具等。这类文件的删除方式是用rm 命令。
“d”表示目录,例如:
[root@qiuri ~]# ls -l /root
总计 84
-rw------- 1 root root 882 07-13 02:56 anaconda-ks.cfg
drwxr-xr-x 2 root root 4096 07-13 03:18 Desktop
-rw-r--r-- 1 root root 41727 07-13 02:56 install.log
-rw-r--r-- 1 root root 4182 07-13 02:50 install.log.syslog
-rw-r--r-- 1 root root 209 07-13 03:14 scsrun.log
当某个目录下看到有类似 drwxr-xr-x ,这样的文件就是目录,目录在Linux 是一个比较特殊的文件。注意它的第一个字符是d。创建目录的命令可以用 mkdir 命令,或cp 命令,cp 可以把一个目录复制为另一个目录。删除用rm 或rmdir 命令
“b”表示块设备文件,例如:
[root@qiuri ~]# ls -l /dev/sda
brw-r----- 1 root disk 8, 0 07-13 05:57 /dev/sda
我们看到 /dev/sda 的属性是 brw-rw---- ,注意前面的第一个字符是b,这表示块设备,比如硬盘,光驱等设备。
“c”表示字符设备文件
[root@qiuri ~]# ls -l /dev/tty
crw-rw-rw- 1 root tty 5, 0 07-13 05:58 /dev/tty
我们看到/dev/tty的属性是 crw-rw-rw-,注意前面第一个字符是 c ,这表示字符设备文件。比如猫等串口设备。
“l” 表示符号链接
[root@qiuri ~]# ls -l /etc/rc.local
lrwxrwxrwx 1 root root 13 07-13 02:09 /etc/rc.local -> rc.d/rc.local
查看文件属性时,会看到有类似 lrwxrwxrwx,注意第一个字符是l,这类文件是链接文件。这和Windows 操作系统中的快捷方式有点相似。一般链接有两种:硬连接和符号链接。
首先我们要明白,在Linux系统中每一个存储设备(硬盘、U盘),格式化后,分为Inode和Block两个部分。内核为每一个新建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号。文件属性(文件的所有者、存取模式、类型、创建或修改时间、文件真正内容的指向等)保存在索引结点里,在访问文件时,索引结点值被复制到内存中,快速找到真正内容指向(pointer)指向数据内容放置的区块(Block)之中,从而实现文件快速的找到该文件。
硬链接是直接指向索引结点(Inode)的指针,系统不会重新分配给它新的Inode。但是创建时需注意:链接文件和被链接文件必须位于同一个文件系统中,并且不能建立指向目录的硬链接。默认情况下,ln名称创建的便是硬链接。命令格式:
ln source(源文件名)dist(目的文件名)
例如:
[user@qiuri ~]$ ls -il #查看文件属性并显示文件lnode号
total 4
354552 drwxrwxr-x 2 user user 4096 07-13 17:34 qiuri
354553 -rw-rw-r-- 1 user user 0 07-13 17:34 xifeng
[user@qiuri ~]$ ln xifeng qiurixifeng #创建文件xifeng的硬链接qiurixifeng
[user@qiuri ~]$ ls -il #验证结果,结果表明创建硬链接系统没有分配新的lndoe
total 4
354552 drwxrwxr-x 2 user user 4096 07-13 17:34 qiuri
354553 -rw-rw-r-- 2 user user 0 07-13 17:34 qiurixifeng
354553 -rw-rw-r-- 2 user user 0 07-13 17:34 xifeng
[user@qiuri ~]$ ln qiuri qiurixifeng #创建目录qiuri的硬链接,提示不允许硬链接指向目录
ln: `qiuri': hard link not allowed for directory
[user@qiuri ~]$
软连接又称符号链接克服了硬链接的不足,不受文件系统的限制,可以创建指向目录的符号链接。因此我们大多数使用符号链接。创建符号链接的时候只需要在ln后加上-s选项即可。
例如:
[root@qiuri ~]# ln -s /home/user/qiuri qiuri #给root用户创建符号链接qiuri,链接到/home/user/qiuri
[root@qiuri ~]# ln -s /home/user/xifeng xifeng #创建符号链接xifeng,提示“文件已存在”的错误信息。
ln: creating symbolic link `xifeng' to `/home/user/xifeng': File exists
[root@qiuri ~]# ls -l #查看一下当前目录下的文件,发现当前目录下已存在一个同名文件。
total 80
-rw------- 1 root root 882 Jul 13 02:56 anaconda-ks.cfg
drwxr-xr-x 2 root root 4096 Jul 13 03:18 Desktop
-rw-r--r-- 1 root root 41727 Jul 13 02:56 install.log
-rw-r--r-- 1 root root 4182 Jul 13 02:50 install.log.syslog
lrwxrwxrwx 1 root root 16 Jul 13 17:48 qiuri -> /home/user/qiuri
-rw-r--r-- 1 root root 209 Jul 13 03:14 scsrun.log
-rw-r--r-- 1 root root 0 Jul 11 07:51 xifeng
[root@qiuri ~]# ln -sf /home/user/xifeng xifeng
#我们可以使用-f选项忽略目标文件的存在并强制做链接文件。
[root@qiuri ~]# ls -li #验证结果,发现创建成功。
total 80
580109 -rw------- 1 root root 882 Jul 13 02:56 anaconda-ks.cfg
128925 drwxr-xr-x 2 root root 4096 Jul 13 03:18 Desktop
1031170 -rw-r--r-- 1 root root 41727 Jul 13 02:56 install.log
1031171 -rw-r--r-- 1 root root 4182 Jul 13 02:50 install.log.syslog
1031178 lrwxrwxrwx 1 root root 16 Jul 13 17:48 qiuri -> /home/user/qiuri
580110 -rw-r--r-- 1 root root 209 Jul 13 03:14 scsrun.log
1031176 lrwxrwxrwx 1 root root 17 Jul 13 17:53 xifeng -> /home/user/xifeng
[root@qiuri ~]#
对文件类型有了一个了解之后,我们接着说文件权限,linux文件的权限标志位共九个,分为3组,分别代表文件拥有者的权限,文件所属用户组的权限和其它用户的权限,如下图所示:
Linux 文件的权限有三种:
² 可读(r):意味着我们可以查看阅读;
² 可写(w):意味着,可以修改或删除(不过删除或修改的权限受父目录上的权限控制);
² 可执行(x):意味着如果是文件就可以运行,比如二进制文件(比如命令),或脚本(要用脚本语言解释器来解释运行)。
如果权限位不可读、不可写、不可执行,是用“-”来表示。对于目录来说,执行(x)权限表示可以使用cd 命令进入该目录,可以读出该目录下的文件的内容。如果某用户对目录只有读取权限,而没有执行权限,那么该用户只能使用ls 命令列出目录下的文件,而不能读取该目录内的文件。
当一个文件的权限不符合我们使用的要求我们可以使用命令chmod来设置和改变,改变目录和文件权限的方法有两种,一种是通过八进制的语法,另一种是助记语法。
八进制的语法使用数字表示各个权限分别是r(4)、w(2)、x(1)、-(0)。例如目录qiuri的权限如何使用八进制来表示:
drwxrwxr-x 2 user user 4096 07-13 15:17 qiuri
属主的权限用数字表达:属主的那三个权限位的数字加起来的总和。比如上面的例子中属主的权限是rwx ,也就是4+2+1 ,应该是7;
属组的权限用数字表达:属组的那个权限位数字的相加的总和。比如上面的例子中的rwx ,也就是4+2+1 ,应该是7;
其它用户的权限数字表达:其它用户权限位的数字相加的总和。比如上面例子中是 r-x ,也就是4+0+1,应该是5;
也就是说,如果使用八进制数来表示该文件的权限,应该是775。
明白了数值表示权限的方法,例如将目录qiuri的权限修改为:属主对目录qiuri有可读可写可执行权限,属组和其他人有可读和可执行权限。
[root@qiuri ~]# ls -l #修改前查看一下
total 4
drwxrwxr-x 2 user user 4096 07-13 15:17 qiuri
-rw-rw-r-- 1 user user 0 07-13 15:17 xifeng
[root@qiuri ~]#chmod 755 qiuri #修改权限为755
[root@qiuri ~]# ls -l #修改后验证
total 4
drwxr-xr-x 2 user user 4096 07-13 15:17 qiuri
-rw-rw-r-- 1 user user 0 07-13 15:17 xifeng
[root@qiuri ~]#chmod –R 755 qiuri
[root@qiuri tmp]# touch xifeng #创建空文件
[root@qiuri tmp]# chmod u+x xifeng # 给文件的拥有者添加执行权限
[root@qiuri tmp]# chmod go-r xifeng # 给文件的属组和其它用户减去读取权限
[root@qiuri tmp]# chmod a-rwx xifeng # 所有人都拒绝访问
[root@qiuri tmp]# chmod a+rw xifeng # 所有人都具有读写权限
[root@qiuri tmp]# chmod o=rw #其它人的权限为读写
注意:每修改一次,别忘了使用ls -l 命令查看权限的变化。
第二个部分:硬链接数 一般文件创建硬链接的时候这个数值会发生变化。
第三个部分:文件的属主,就是说这个文件是那个用户的。这里是user用户的目录。我们可以通过chown来修改文件或文件夹的所有者。例如:
[root@qiuri ~]# ls -l /home/user #修改前查看一下属性
total 4
drwxrwxr-x 2 user user 4096 07-13 15:17 qiuri
-rw-rw-r-- 1 user user 0 07-13 15:17 xifeng
[root@qiuri ~]#chown root /home/user/qiuri #使用命令修改属主
[root@qiuri ~]# ls -l /home/user #验证修改结果
Total 4
drwxrwxr-x 2 root user 4096 07-13 15:17 qiuri
-rw-rw-r-- 1 user user 0 07-13 15:17 xifeng
第四个部分:文件属组:也就是说,对于这个文件,它归属于哪个用户组,在这里是user 用户组。可以通过命令chgrp修改文件或文件夹组用户。例如:
[root@qiuri ~]# ls -l /home/user #修改前查看一下属性
total 4
drwxrwxr-x 2 root user 4096 07-13 15:17 qiuri
-rw-rw-r-- 1 user user 0 07-13 15:17 xifeng
[root@qiuri ~]#chgrp root /home/user/qiuri
#修改文件属组,同理如果想修改当前目录和子目录的话,使用选项-R。
[root@qiuri ~]# ls -l /home/user #验证结果
total 4
drwxrwxr-x 2 root root 4096 07-13 15:17 qiuri
-rw-rw-r-- 1 user user 0 07-13 15:17 xifeng
第五个部分:文件的大小,这里是4096个字节。
第六个部分:创建或修改时间,这里是7月13号15:17。这个值的变化和修改或访问文件有关。
第七个部分:文件或目录的名称。这里是qiuri这个目录。
另外我们在修改文件的属主和属组的时候可以使用一下命令同时修改:
[root@qiuri ~]# ls -l /home/user #修改前查看一下属性
total 4
drwxrwxr-x 2 root root 4096 07-13 15:17 qiuri
-rw-rw-r-- 1 user user 0 07-13 15:17 xifeng
[root@qiuri ~]#chown root.root /home/user/xifeng
#同时修改文件的属主和属组,如果想修改目录和子目录下的所有文件属性使用选项-R。
[root@qiuri ~]# ls -l /home/user #验证结果
total 4
drwxrwxr-x 2 root root 4096 07-13 15:17 qiuri
-rw-rw-r-- 1 root root 0 07-13 15:17 xifeng
助记语法中将属主(user)使用u表示、属组(group)使用g表示、其它用户(other)使用o来表示,而所有人(all)使用a来表示。使用“+”来表示添加权限、“-”表示减少权限、“=”表示授予的权限。当然使用r、w、x来表示权限。在使用的时候,可以组合使用。例如:如果想同时修改目录和子目录中所有文件的权限执行如下命令:
我们拿qiuri这个目录分析一下输出的结果的含义,首先将它从左边开始分为7个部分,如下图所示:
分享到:
相关推荐
### Linux邮件服务器详解 #### 一、Linux邮件服务器基本概念 ##### 1.1 电子邮件服务 电子邮件(E-mail)是互联网上最基本且重要的服务之一,它的应用非常广泛。发送电子邮件类似于传统邮寄书信的方式,但更为...
### Linux网络服务配置详解知识点概览 #### 一、Linux操作系统概述 - **定义与特点**:Linux是一种基于POSIX和UNIX标准的操作系统,它具备安全性高、稳定性强、源代码开放等特点,使得其在服务器领域有着广泛的应用...
【知识点详解】 1. **文件系统与i节点** i节点是Linux文件系统中用于存储文件元数据的数据结构,包括文件的大小、创建时间、修改时间、权限、所有者等信息,以及文件在磁盘上的物理位置。题目中提到的文件长度从...
Linux操作系统服务器日志管理是系统运维中至关重要的环节,它为系统安全提供了强大的保障。日志文件记录了系统运行过程中的各种活动,包括错误信息、系统事件、用户登录记录以及网络服务交互等,使得管理员能追踪...
**一、用户管理** 1. **用户账户创建** - 命令格式:`useradd [选项] 用户名` - 示例:`useradd –d /home/user01 -m user01`,此命令用于创建一个新用户`user01`,并设置其主目录为`/home/user01`。其中`-d`指定...
### Linux网络属性配置详解 #### 一、网络属性概述 在网络通信中,为了使一台主机能够成功接入并参与网络通信,通常需要配置一系列的关键网络属性,包括但不限于IP地址、子网掩码、网关以及DNS服务器地址等。这些...
### Linux Proc 文件系统详解 #### 0. 绪言 ##### 0.1 简介 本文档最初是作为 SUSE Linux 的一部分而编写的,随着时间的发展,它逐渐成为了 Linux 官方文档的一部分,并随 2.4 版本后的内核广泛发布。这份文档的...
RADIUS(Remote Authentication Dial-In User Service)作为一种成熟的AAA解决方案,在Linux平台上构建RADIUS服务器能够极大地简化网络设备的用户管理,并提升整体安全性。 #### 二、RADIUS协议简介 RADIUS协议最初...
- 常用命令的学习,如文件和目录操作、文件压缩、用户管理、网络管理和进程管理等。 - **DHCP服务器**: - DHCP协议的概念与优势。 - DHCP服务的工作原理。 - 在Linux环境中安装、配置DHCP服务器的方法。 - ...
- **“一步一扣”精讲Linux磁盘管理视频教程**:详细介绍Linux下的磁盘管理技术。 - **RedHat服务器部署视频教程**:Red Hat Enterprise Linux是企业级Linux发行版之一。 #### 老男孩: - **企业shell常见面试题及...
- **权限管理**:确保`.ssh`目录及`authorized_keys`文件的权限设置正确,避免非授权用户访问。 - **定期审核**:定期检查`authorized_keys`文件中的公钥列表,移除不再使用的公钥,确保系统的安全性。 #### 结论 ...
### Linux Sendmail配置详解 #### 一、电子邮件系统概述 在深入探讨Sendmail配置之前,我们首先了解一下电子邮件系统的几个核心组件及其作用。 1. **MUA(Mail User Agent,邮件用户代理)**:MUA是用户与邮件...
Linux版Tableau Server的详解涉及了从基础的安装配置到高级的架构管理和安全性设置的全方位指南。接下来,我们将详细探讨该文档所覆盖的知识点。 首先,Linux版Tableau Server的管理员指南强调了部署规划的重要性。...
### Linux管理员手册知识点详解 #### 一、Linux系统概述 **1.1 操作系统的主要服务** - **文件管理:** 跟踪磁盘上的文件。 - **进程管理:** 启动程序并运行它们。 - **内存管理:** 分配内存和其他资源给不同的...
### Linux管理员手册知识点详解 #### 一、Linux系统概述 **1.1 操作系统的主要服务** - **核心(Kernel)**: Linux的核心是操作系统的心脏,它负责跟踪磁盘上的文件、启动和运行程序、分配内存给不同进程、管理...
总的来说,配置一个在Linux环境下支持虚拟用户的Postfix和Dovecot邮件服务器涉及到数据库的创建和管理、Postfix和Dovecot的配置,以及安全性和功能测试。通过这种方式,我们可以为多个邮件域提供服务,同时保持高效...
在Linux操作系统中,命令行工具是日常管理和操作系统的基石。...了解和熟练使用这些命令是每个Linux用户,尤其是系统管理员必备的技能。通过深入学习和实践,你将能够更有效地在Linux环境中执行各种任务。
### Windows+Linux-DNS:基于Linux环境下的DNS服务器配置详解 #### 一、概述 在当前网络环境中,DNS(Domain Name System,域名系统)扮演着至关重要的角色,它能够将易于记忆的域名转换成计算机可以识别的IP地址...