Linux的档案属性和目录配置
一、用户与用户组
当组1内的用户文件设置为-rwxrwx---时,组2内的用户4不可以读写执行组1内的任何文件和档案
当组1内的用户文件设置为-rwxrwxrwx时,组2内的用户4可以读写执行组1内的任何文件和档案
当组1内的用户文件设置为-rwx------时,组1内的其他用户和组2内的用户不可以读写执行组1内任何用户的文件和档案
二、Linux文件权限
2.1 文件的一般权限
文件的执行者 执行文件的用户
文件的所有者 默认为创建文件的用户
文件的所有组 默认为创建文件的用户所属的用户组
相同权限对于文件与目录所代表的含义会有不同
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | read 读取权限 对于一般文件 有此权限用户就可以读取文件内容(例如 cat命令) 对于目录 有此权限的用户就可以显示目录下的文件列表,表示具有读取目录结构清单的权限,当用户具有读取一个目录的权限时,使用ls这个指令就能将目录的内容列表显示出来(例如 ls命令) write 写入权限 对于一般文件 有此权限用户就可以编辑文件的内容(例如 vim命令) 对于目录 有此权限用户就可以在目录下新建、剪切、删除文件(例如touch、mv、rm等命令)( 1 )建立新的文档与目录( 2 )删除已存在的档案和目录(不论该文档或目录属于谁)( 3 )将已存在的档案或目录重命名( 4 )改变该目录内的档案、目录位置 execute 执行权限,与能否进入该目录有关 对于一般文件 有此权限用户就可以执行这个脚本文件(例如 . / 脚本名 运行脚本) 对于目录 有此权限用户就能够进入到目录(例如cd命令 进入目录) 注意事项 W权限可以单独设置,只对文件进行写入操作 (通过重定向实现) |
1 2 3 | drwxr - xr - x 2 zk zk 4096 4 月 11 16 : 48 Desktop / [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [档案属性] [连结数] [档案拥有者] [档案所属群组] [文件容量] [修改时间] [文件名] |
read属性值为4,write属性值为2,execute属性值为1
档案权限
1、第一栏包含文件的档案类型。文件的权限
第一个属性代表这个档案是[目录、档案或者连结文件等]
-当为[d]则是目录
-当为[-]则是普通文件
-当是[l]则表示为连接档(link file)
-若是[b]则表示为装置文件里面的可供储存的接口设备(块设备文件)
-若是[c]则表示为装置文件里面的串行端口设备(字符设备文件),例如键盘、鼠标
2、第二栏表示连结占用的节点(i-node):这个跟连结档(link file)比较有关系。如果是目录的话,第二栏的这个数字与该目录下有多少目录有关(这个数字包括当前目录,上一级目录和当前目录所包含的目录所占的节点数的总和)
1 2 | ls -l ls -la #可以显示隐藏文档 |
可以更改链接文档的链接点数量,注意使用touch创建文件,而不是mkdir创建目录,会产生无法link的错误,文件的档案类型是无法修改的:比如
链接数会随着连接建立增加
链接的命令行为
1 2 | ln [选项] 目标 [链接名] ln login.txt login1.back2 |
分软连接和硬链接:
软链接与硬链接的区别(通俗):
硬链接可认为是一个文件拥有两个文件名;
而软链接则是系统新建一个链接文件,此文件指向其所要指的文件
若源文件改名,则软连接不可用(找不到源文件);硬链接可正常访问到源文件;
修改软连接、硬链接和源文件,访问三者都是同步变化的。
软链接:
软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
软链接可以跨文件系统 ,硬链接不可以。
软链接可以对一个不存在的文件名进行链接
软链接可以对目录进行链接
硬链接:
硬链接,以文件副本的形式存在。但不占用实际空间。
不允许给目录创建硬链接
硬链接只有在同一个文件系统中才能创建
针对于目录,如果目录的目录数为2,则表示该目录下面没有其他目录
3、第三栏表示档案(或目录)的[拥有者]
1 2 3 | chgrp:改变档案的所属群组 chown:改变档案所属人 chmod:改变档案的属性 |
如果要连目录下的所有次目录或档案同时更改档案属性的话,直接加上-R的参数
更改文件权限
可以分别使用'a','g','o'更改文件属性,分别代表文件拥有者、文件所属组和其他用户
添加用户组
1 2 3 4 5 6 | root@zk- virtual -machine:/etc#sudo groupadd testgroup root@zk- virtual -machine:/etc#sudo useradd test1 -g testgroup root@zk- virtual -machine:/etc#sudo useradd test2 -g testgroup root@zk- virtual -machine:/# cat etc/ group root@zk- virtual -machine:/# cat etc/passwd root@zk- virtual -machine:/# sudo usermod -G root test1 #删除用户 |
设置用户密码:
1 2 3 4 | zhangkun@zhangkun- virtual -machine:/etc$ sudo passwd test1 New password: Retype new password: passwd: password updated successfully |
在/home目录下创建test1和test2隶属于不同的用户,但是是同一用户组(先创建目录,再使用chown更改文件权限)
更改目录属性
切换至test2用户,访问test1,此时,没有权限访问
此时给test1文档添加读取权限R,切换至test2用户,读取test1
此时给test1文档添加执行权限X,切换至test2用户,可读取test1,可切入test1目录,但是无法新建文件
此时给test1文档添加写入权限以及同组用户写入权限W,切换至test2用户,可读取test1,可切入test1目录,可新建文件
可创建目录,可更改文件名,也可移动文件至文件夹下
4、第四栏表示拥有者的群组
5、第五栏表示这个档案的容量大小
6、第六栏为这个档案的建档日期或者是最近的修改日期,分别是月份,日期和时间
7、第七栏为这个档案的档名,如果档名之前多一个[.],则代表这个档案为隐藏文件
三、Linux目录配置
Linux文件类型与扩展名
第一个属性代表这个文档的类型
(1)若为[d]是目录
(2)若为[-]是普通文件(ascii,binary,data),使用last命令读取
(3)若是[l]为连结档(link file)
(4)若是[b]为存储数据以供系统访问的接口设备
(5)若是[c]为串行接口的端口设备,例如键盘、鼠标
(6)若是[s]套接字(sockets)(var/run),通常用在数字链接当中,客户端通过套接字进行通信。
(7)若是[p]管道(FIFO,pipe)(var/run),主要作用是解决多个程序同时访问一个文件的错误。
管道文件
通常套接字文件和管道文件在/var/run文件夹下
last指令(特定2进制文件用last读取,若为[-]是普通文件(ascii,binary,data))
last指令主要用于检索和展示系统中用户的登录信息。
显示所有用户的登录记录:
1 | last |
该命令将列出所有用户的登录记录,包括登录时间、持续时间、登录来源等信息。
显示特定用户的登录记录:
1 | last [用户名] |
通过指定用户名,可以仅显示该用户的登录记录。
显示最近的N条登录记录:
1 | last -n [数量] |
该命令将显示最近的指定数量(N)的登录记录。
显示登录记录的详细信息:
1 | last -f / var /log/wtmp |
通过使用"-f"选项,可以指定读取的日志文件,从而查看更详细的登录信息。
Linux档案能否执行,与文件的第一栏的十个属性和文件内容有关,与文件名无关
Linux文件后缀名与文件名
-*.sh:批文件处理文档(scripts),因为它使用shell编写,所以后缀名就编成.sh
-*Z,*tar,*tar.gz,*.zip,*,tgz:经过打包的压缩档。这是因为压缩软件分别为gunzip,tar等,由不同的压缩软件,而取其相关的后缀名。
-*.html,*.php:网页相关档案,分别代表HTML语法与PHP语法的网页档案,.html的档案可以使用网页浏览器来直接开启,至于.php的文档,则可通过client端的浏览器来浏览server端,以得到运算后的网页结果。
-程序语言perl的档案,其后缀名也可能取成.pl这种档案名。
单一文档或目录的最大允许文件名为255个字符;
包含完整路径名称及目录(/)的完整路径名为4096个字符。
Linux文件名的限制(1)一般来说,设置Linux文件名时,最好避免一些特殊字符(*?<>;&![]|\'"(){}),这些符号在命令行下有特殊的含义
Linux的目录配置
- /bin目录:用来存放二进制可执行命令的目录,用户常用的命令都存在该目录下。系统预设的执行文件目录放置位置,放置可执行文件
- /sbin目录:用来存放二进制可执行文件,这里面的命令只供系统管理员,管理系统使用(root用户)。系统预设的执行文件放置位置,放置可执行文件
- /dev目录:设备文件存放的目录,因为linux中一切皆文件,所以就像鼠标、键盘、光驱,对linux来说也都是一个个的文件。例如/dev/cdrom(光驱)、/dev/sda1(硬盘)等。
- /tmp:类似windows中的垃圾回收站
- /home:普通用户的家目录,用来存放普通用户的文件。
- /boot目录:存放内核文件和系统引导程序
- /lib目录:存放二进制库文件,库文件一般以
.so|lib*|ld*
。 - /mnt目录:临时挂载临时存储设备的目录
- /opt目录:下载目录,一般是给第三方厂家开发的程序的安装目录,一般用不了
- /media目录:用于挂载可移动设备的临时目录。
- /root目录:系统管理员的家目录。
- /sys目录:与/proc一样,存放系统运行过程中的信息文件。
- /etc目录:yum/rpm安装的软件配置文件所在的目录,开机和系统数据文件放置路径。存放配置文件
- /usr目录:安装除操作系统本身外的一些应用程序或组件的目录,一般可以认为是linux系统上安装的应用程序默认都安装在此目录中,放置共享数据。
- /usr/local目录:这是系统预设的安装升级的套件的目录。
- /var目录:放置系统服务。
- /usr/share/man,/usr/local/man:这两个目录为放置各类套件说明档的地方。
1 | cat /proc/cpuinfo |
1 | ls -l /usr |
Linux支持的文件系统放置在目录/lib/modules/'uname -r'/kernel/fs
EXT 文件系统
EXT -- 扩展文件系统,是于 1992 年 4 月发表的一种文件系统,是为 Linux 核心所做的第一个文件系统,最大可支持 2GB 的文件系统。
EXT2:是 EXT文件系统的升级版,最大支持 16TB 的分区和最大 2TB 的文件;
EXT3:是 EXT2文件系统的升级版,最大的区别是带有日志功能,以在系统突然崩溃时提高文件系统的可靠性,最大支持 16TB 的分区和最大 2TB 的文件;
EXT4:是 EXT3文件系统的升级版,EXT4在性能、伸缩性、可靠性上进行了大量的改进。它向下兼容 EXT3,最大支持 1EB(1024 * 1024TB) 的分区和 16TB 文件,更快,更安全。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步