1.文件详细信息
134319695 -rw------- . 1 root root 1.7 K Dec 8 12 : 08 anaconda-ks . cfg
2.inode编号
Linux系统中文件的唯一标号 .
3.链接
软链接 : 相当于windows中的快捷方式 . 只要是指向对应文件的路径 .
硬链接 : 硬链接直接指向 index node编号 .
硬链接和源文件操作文件是对同一个文件进行的操作 .
3.1创建链接
ln 命令 默认创建硬链接
ln [ 参数 ] [ 操作对象 1 ] [ 创建的链接对象 ]
-s 创建软链接
1.软链接创建
[ root@kid ~]
[ root@kid ~]
-rw-r--r--. 1 root root 0 Dec 14 19 :12 a.txt
[ root@kid ~]
[ root@kid ~]
lrwxrwxrwx. 1 root root 5 Dec 14 19 :13 a1.txt -> a.txt
-rw-r--r--. 2 root root 0 Dec 14 19 :12 a.txt
2.硬链接创建
[ root@kid ~]
硬链接数加1
[ root@kid ~]
-rw-r--r--. 1 root root 0 Dec 14 19 :12 a2.txt
-rw-r--r--. 2 root root 0 Dec 14 19 :12 a.txt
3.2删除文件
底层原理 :
删除文件 , 删除的是硬链接数 , 当硬链数为 0 的时候 ,
文件从磁盘中删除 , 如果不为 0 硬链接数- 1.
[ root@kid ~]
lrwxrwxrwx. 1 root root 5 Dec 14 19 :13 a1.txt -> a.txt
-rw-r--r--. 1 root root 0 Dec 14 19 :12 a2.txt
3.文件类型
符号 含义 f(-) 普通文件 d 文件夹/目录 l 链接文件 b 设备文件 - 磁盘文件 c 设备文件 - 字符文件 s 套接字文件 p 管道文件
* 不能以文件的颜色区分文件的类型
* 文件的后缀名只能辅助识别文件的类型 , 不绝对的判断这个文件输入哪一种类型 .
4.用户和用户组
用户 : 一个用户为一个登入账户 .
用户组 : 某些具有相同数据的账户的集合 .
4.1用户的创建
useradd 命令 创建新的用户
user [ 用户名xxx ] 创建xxx用户
-g : 指定系统用户组 ( 用户必须存在 )
-r : 创建系统用户
-M : 不创建家目录
-u : 指定创建用户的ID
1.系统用户
系统用户 : uid 在 0 - 999 之间 ,
系统用户一般不需要直接登入系统 . 用于启动应用程序上 .
2.普通用户
普通用户 : uid 在 1000 及以上的用户 , 用于登入 .
4.2切换用户
su - [ 用户名 ]
su [ 用户名 ]
[ root@kid ~]
[ root@kid ~]
[ qq@kid root] $
4.3创建用户组
groppadd 命令创建用户组
-g : 指定用户组ID
4.4用户详情文件
/etc/passwd
[ qq@kid root] $ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
qq:x:1000:1000::/home/qq:/bin/bash
.. .
5.文件大小
文件占用的硬盘资源大小 .
6.文件修改时间
文件有改动 , 会跟新时间 .
7.文件名称
文件的名称 , 在用一个文件中一般不能重名 .
再老的Linux版本中 : 如果文件类型不一样 , 可以存在同名 .
5.文件权限
在 Linux 系统中,所有的操作实质都是在进行进程访问文件的操作。
我们访问文件需要先取得相应的访问权限,而访问权限是通过 Linux 系统中的安全模型获得的。
6.权限的组成
通过 ls -l ( ll ) 可以查看到其文件类型及权限 .
[ root@kid ~]
[ root@kid ~]
-rw-r--r--. 1 root root 0 Dec 15 19 :47 a.txt
三组权限 :
1. user 文件属主的权限
2. group 文件属组的权限
3. others 其他者的权限
权限分为 4 个部分 十进制编号 ( 设置权限可以使用标号代替 )
1. 可读 ( r ) 4
2. 可写 ( w ) 2
3. 可执行 ( x ) 1
4. 没有对应权限(-) 0
rw- r-- r-- 等价于 6 4 4
代表的意思 :
属主 : 可读 可写 不可执行
属组 : 可读 不可写 不可执行
其他 : 可读 不可写 不可执行
7.权限测试
* 测试权限对于用户的意义
1 、普通用户是严格遵守权限的
2 、root用户是高于权限
# 首先创建一个新的用户用于测试 .
[ root@localhost ~ ] # useradd qq
[ root@localhost ~ ] # passwd qq
Changing password for user qq .
New password :
BAD PASSWORD : The password is a palindrome
Retype new password :
passwd : all authentication tokens updated successfully .
7.1可写权限
[ root@localhost ~]
-bash: ce: command not found
[ root@localhost ~]
[ root@localhost tmp]
[ root@localhost tmp]
-rw-r--r--. 1 root root 0 Dec 15 21 :26 a.txt
[ root@localhost ~]
[ root@localhost ~]
[ qq@localhost root] $ cd /tmp
[ qq@localhost tmp] $ ll a.txt
-rw-r--r--. 1 root root 0 Dec 15 21 :26 a.txt
[ qq@localhost tmp] $ echo 'xxx' >> a.txt
bash: a.txt: Permission denied --> bash:a.txt:权限被拒绝
对文件做访问操作 , 不具备相应的权限是无法操作的 .
7.2设置权限
chmod 命令设置文件权限
格式: chmod [ 参数 ] [ 权限表达式 ] [ 操作对象 ]
参数:
-R : 递归增加权限
权限表达式 :
字母组合 :
u + r 属组添加 可读权限
u + w
u + x
+ x 每个组都加
案例 1 :将xxx文件添加属主 : 可读可写可执行、属组 :可读可写、其他人:没有任何权限
chmod 760 xxx
案例 2 :将xxx下的所有文件设置rwxr--r--
chmod -R 744 xxx / xxx
案例 3 :将xxx这个文件的属组增加一个可执行权限。
chmod g + x xxx
chmod g + x , o-r xxx
1.添加写权限
[ root@localhost tmp]
[ root@localhost tmp]
-rw-r--rw-. 1 root root 4 Dec 15 21 :46 a.txt
[ qq@localhost tmp] $ echo 'xxx' >> a.txt
[ qq@localhost tmp] $ cat a.txt
xxx
2.删除可读属性
[ root@localhost tmp]
[ root@localhost tmp]
-rw-r---w-. 1 root root 4 Dec 15 21 :52 a.txt
[ qq@localhost tmp] $ cat a.txt
cat: a.txt: Permission denied
3.可执行权限
[ root@localhost ~]
echo 'hello word'
[ root@localhost ~]
-bash: ./a.txt: Permission denied
[ root@localhost ~]
[ root@localhost ~]
hello word
4.删除全部权限
[ root@localhost tmp]
[ root@localhost tmp]
----------. 1 root root 4 Dec 15 21 :52 a.txt
[ root@localhost tmp]
xxx
其他用户无法读 无法写 无法执行
5.执行权限
测试权限对于目录的意义
1 、文件可读,路径的最小权限是必须拥有可执行权限。
2 、文件可写,路径的最小权限是必须拥有可执行权限。
3 、文件可执行,路径的最小权限是必须拥有可读可执行权限。
[ root@localhost tmp]
[ root@localhost tmp]
[ root@localhost tmp]
[ root@localhost tmp]
[ root@localhost tmp]
.. ..
d---------. 2 root root 19 Dec 15 22 :23 test
[ qq@localhost tmp] $ cd test
[ qq@localhost test] $
[ root@localhost ~]
[ qq@localhost root] $ cd /tmp/
[ qq@localhost tmp] $ ll
.. ..
d---------. 2 root root 19 Dec 15 22 :23 test
[ qq@localhost tmp] $ cat test/a.txt
cat: test/a.txt: Permission denied
[ root@localhost tmp]
[ root@localhost tmp]
.. .
d--------x. 2 root root 19 Dec 15 22 :23 test
[ qq@localhost tmp] $ cat test/a.txt
xxx
[ root@localhost tmp]
[ root@localhost tmp]
.. .
d-------w-. 2 root root 19 Dec 15 22 :23 test
[ qq@localhost tmp] $ cat test/a.txt
cat: test/a.txt: Permission denied
[ root@localhost tmp]
[ root@localhost tmp]
.. .
d------r--. 2 root root 19 Dec 15 22 :23 test
[ qq@localhost tmp] $ cat test/a.txt
cat: test/a.txt: Permission denied
7.4默认权限
ps : shell中的特殊符号的意思 & & 与 and | | 或 or
在Linux中,常用的文件的权限是 666 , 目录的权限是 777 。
默认权限设置是由umask变量控制 .
* umask 变量存放再 / etc / profile文件中 .
1 、文件的权限是跟 umask 值相减,遇到奇数加一;遇到偶数则不变。
2 、文件夹的权限只要跟 umask 值相减即可。
if [ $UID -gt 199 ] & & [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ] ; then
umask 002
else
umask 022
[ root@localhost ~]
0022
[ root@localhost ~]
[ root@localhost ~]
drwxr-xr-x. 2 root root 6 Dec 15 23 :14 a
rwxr-xr-x -- > 755
root 用户创建目录 :
777 - 022 = 755
[ root@localhost ~]
[ root@localhost ~]
-rw-r--r--. 1 root root 0 Dec 15 23 :16 a.txt
rwxr-xr-x -- > 644
root 用户创建文件 :
666 - 022 = 644
[ qq@localhost ~] $ umask
0002
[ qq@localhost ~] $ mkdir a
[ qq@localhost ~] $ ll
drwxrwxr-x. 2 qq qq 6 Dec 15 23 :23 a
qz普通用户创建目录 :
rwx rwx r-x -- > 775
777 - 002 = 775
[ qq@localhost ~] $ touch a.txt
[ qq@localhost ~] $ ll
-rw-rw-r--. 1 qq qq 0 Dec 15 23 :28 a.txt
qz普通用户创建文件 :
rw- rw- r-- -- > 664
666 - 002 = 664
[ qq@localhost ~] $ umask 123
[ qq@localhost ~] $ umask
0123
[ qq@localhost ~] $ mkdir b
[ qq@localhost ~] $ touch b.txt
[ qq@localhost ~] $ ll
drw-r-xr--. 2 qq qq 6 Dec 15 23 :31 b
-rw-r--r--. 1 qq qq 0 Dec 15 23 :31 b.txt
目录 drw-r-xr-- 777 - 123 = 654
# 遇到奇数加一
文件 rw-r--r-- 666 - 123 = 644
7.4主属组修改
chown 命名修改属主和属组
chown 属主 [ 参数 ] [ 对象 ]
chown : 属组 [ 参数 ] [ 对象 ]
chown 属主 : 属组 [ 参数 ] [ 对象 ]
-R 递归修复
useradd命令详解
创建用户涉及的文件 :
1. /etc/passwd 存放用户详细信息
2. /etc/shadow 存放用户密码
3. /etc/group 存放用户组
4. /etc/gshadow 存放用户组密码
5. /etc/skel 创建用户家目录需要复制的的模板
使用useradd 创建文件会做以下几件事 :
1. 在 / etc / passwd文件末尾添加用户详细信息
qq : x : 1000 : 1000 : : / home / qq : / bin / bash
用户名
: 分隔符
x密码占位符 , 密码会拆分存储到 / etc / shadow 文件中
1000 用户 uid
1000 用户组id
/ home / qq 用户登入后所在的路径
/ bin / bash 使用的解释器
2. /etc/shadow 存放用户加密后的密码
qq : $ 6 $GeJcPm2Q$ 6 YynuO . 2 g96igvG71pKnJFJp9FbLKdWoQf6doEdOn4 . WrUOTHB / FzoBsA9nhK60ZI3qOdF99CP64gzNH . IJBm / : 18976 : 0 : 99999 : 7 : : :
3. /etc/group 存放用户组的信息
qq : x : 1000 :
用户名 : 用户组密码占位符 : 用户组id
4. /etc/gshadow 存放用户组密码
qq : ! : :
5. 将 / etc / skel 目录和文件复制到 / home / 下并以用户名名命这个目录
6. 修改用户目录的属主和属组 . ( 使用root用户复制的文件默认属于root )
[ root@localhost ~]
qz:x:1001:1000::/home/qz:/bin/bash
[ root@localhost ~]
qz:$6 $GeJcPm2Q $6YynuO .2g96igvG71pKnJFJp9FbLKdWoQf6doEdOn4.WrUOTHB/Fzo
999 :7:::
[ root@localhost home]
qz:x:1001:
[ root@localhost home]
qz:! ::
[ root@localhost ~]
[ root@localhost ~]
[ root@localhost home]
[ root@localhost home]
drwxr-xr-x. 2 qz qz 83 Dec 16 15 :29 qz
8.时间属性
stat 命令
显示文件或文件系统状态
[ root@localhost ~]
Access: 2021 -12-16 15 :55:09.631988358 +0800
Modify: 2021 -12-16 15 :55:09.631988358 +0800
Change: 2021 -12-16 15 :55:09.631988358 +0800
Access 文件访问时间
Modify 文件修改时间
Change 属性修改时间
编辑文件 文件修改时间 属性修改时间 改变
访问文件 文件访问时间 改变
修改属性 属性修改时间 改变
[ root@localhost ~]
[ root@localhost ~]
Access: 2021 -12-16 16 :04:32.186075700 +0800
Modify: 2021 -12-16 15 :55:09.631988358 +0800
Change: 2021 -12-16 15 :55:09.631988358 +0800
[ root@localhost ~]
[ root@localhost ~]
Access: 2021 -12-16 16 :07:45.841975752 +0800
Modify: 2021 -12-16 16 :07:45.841975752 +0800
Change: 2021 -12-16 16 :07:45.844986166 +0800
[ root@localhost ~]
[ root@localhost ~]
Access: 2021 -12-16 16 :07:45.841975752 +0800
Modify: 2021 -12-16 16 :09:38.520757431 +0800
Change: 2021 -12-16 16 :09:38.520757431 +0800
[ root@localhost ~]
[ root@localhost ~]
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2021 -12-16 16 :07:45.841975752 +0800
Modify: 2021 -12-16 16 :09:38.520757431 +0800
Change: 2021 -12-16 16 :12:57.182975482 +0800