本篇博客详细介绍了Linux的基础知识,从CentOS 7.6 的手把手安装,到用户组和权限的管理,每一步都有非常详细的截图和理论解释。适合新手快速入门Linux,也适合老手用来复习巩固。整理不易,望您支持。
本文是基于CentOS 7.6 版本讲解的,至于文中代码截图中出现的 CentOS68,只是我将这台Linux命名为 CentOS 68,并不是6.8版本,至于为什么这么命名,各位脑补吧♂️。害~
不出意外,这篇博客就是2020年的最后一篇了。心疼这一年中那些离我而去的秀发。
Linux的后续内容,大概将会在年后上传。
关注✨✨博主
学习资料:
链接:https://pan.baidu.com/s/1Mp3nZJOxINhD6s_SqKJ14Q
提取码:0pcu
(1)学习 linux 流程为:
(2)Linux学习方法:
1、Linux是一款操作系统,免费、开源、安全、高效、稳定、稳定、处理高并发强悍。
2、Linux是基于Unix开发的,Linux是一种自由和开放源码的操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。
3、Linux的历史:
4、Linux创始人:Linus Torvalds
5、Linux吉祥物:
6、Linux主要发行版:
7、Linux和Unix的关系:
1)两个创始人:
2)Linux发展历程
比较 | Window | Linux |
---|---|---|
收费与否 | 收费且很贵 | 免费开源 |
软件与支持 | 大部分为收费软件 | 软件开源免费 |
安全性 | 不安全 | 安全 |
使用习惯 | 图形化界面 | 图像化和命令行 |
可定制性 | 封闭,不可定制 | 开源,可定制 |
应用场景 | 桌面操作系统 | 服务器 |
学习 Linux 需要一个环境,我们需要创建一个虚拟机,然后在虚拟机上安装一个 Centos 系统来学习。
第一步:先安装虚拟机软件,VM
第二步:通过VM软件创建一个虚拟机空间。
第三步:在创建好的虚拟机空间上安装CentOS系统。
第四步:学习使用CentOS。
CentOS下载地址:https://www.centos.org/download/
下载DVD版本即可。
(1)安装VM。
默认安装即可。
虚拟机的网络连接有三种模式:桥接、NAT、主机模式。
(2)安装Linux系统
在安装之前呢,建议先拜一拜Linus Torvalds,祈祷安装顺利……
1、创建虚拟机空间。
2、使用向导,创建典型即可。
3、选择稍后安装操作系统。现在只是创建一个虚拟机空间。
4、选择对应版本。
5、给虚拟机起个好听的名字,这个并不是主机名,只是在VMware中标识这个虚拟机的名字。并选择安装位置,建议安装在非系统盘。(家里有矿的随意……)
6、指定磁盘容量。
7、编辑硬件,网卡,内存,处理器等
8、编辑虚拟机,挂载镜像文件。
9、选择下载的镜像文件
10、开启虚拟机,正式安装CentOS 7.6
11、鼠标在这个界面点一下,并使用上下键选择。
正在安装,稍等片片刻。
12、选择语言
13、自定义安装,选择我们需要的软件。
14、选择以下内容,点击完成,退出这个界面之后,系统会检查软件依赖关系,需要等一会。建议不要乱点,防止机器卡死。
15、编辑磁盘分区。
Linux创建分区,最少需要创建三个分区:
16、创建分区。
17、配置网络连接
18、开始安装
19、设置root用户密码,创建普通用户。
然后就是漫长的等待过程了……。♂️♂️♂️♂️♂️
20、安装完成之后,重启,完成最后的配置即可。
21、接受许可
22、完成最后的配置
至此,大功告成。
欣赏一下吧,美丽的Linux。
23、在桌面右键,打开终端,查看IP地址。
(3)安装vmtools工具
介绍:
安装vmtools
在Windows母机和Linux之间设置共享文件夹
共享文件夹会默认放在Linux的 /mnt/hgfs/下。
问题:CentOS的hgfs中没有出现共享文件夹。
解决:
mount -t vmhgfs .host:/ /mnt/hgfs
,显示如下内容:提示错误:无法挂载文件系统,没有这样的设备。那现在就不可以用mount工具进行挂载,那我们用vmhgfs-fuse,但是需要安装工具包,下面的命令为下载安装包。
yum install open-vm-tools-devel -y
vmhgfs-fuse .host:/ /mnt/hgfs
注意:如果使用的CentOS 6 ,在上面安装过程中会报错:
YumRepo Error: All mirror URLs are not using ftp, http[s] or file. Eg. Invalid release/repo/arch combination/removing mirrorlist with no valid mirrors: /var/cache/yum/x86_64/6/base/mirrorlist.txt Error: Cannot find a valid baseurl for repo: base
原因:CentOS 6 yum源停止更新。
解决:换源。
在终端中输入:
wget -O /etc/yum.repos.d/CentOS-Base.repo http://file.kangle.odata.cc/repo/Centos-6.repo wget -O /etc/yum.repos.d/epel.repo http://file.kangle.odata.cc/repo/epel-6.repo yum makecache
如果你已经安装了一台 linux 操作系统,你还想再更多的,比如想做一个集群,则必要再重新安装,你只需要克隆就可。
如果在使用虚拟机系统的时候(比如 linux),想回到原先的某一个状态,也就是说你担心可能有些误操作造成系统异常,需要回到原先某个正常运行的状态,vmware 也提供了这样的功能,就叫快照管理。
在VMware左侧的虚拟机处右键,拍摄快照。
选择一个快照,转到。切换快照时,虚拟机会重启。
linux 的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此 目录下再创建其他的目录。
在Linux中,一切皆是文件。
具体的目录结构:
useradd tom
指令之后,该目录下就会多一个 tom 文件。总结:
Linux中的目录只有一个根目录,/
Linux的各个目录存放的内容是规定好的,我们不能随意放置。
Linux系统中,一切皆是文件。
(1)Xshell
Xshell 是目前最好的远程登录到 Linux 操作的软件,流畅的速度并且完美解决了中文乱码的问题, 是目前程序员首选的软件。
Xshell 是一个强大的安全终端模拟软件,它支持 SSH1, SSH2, 以及 Microsoft Windows 平台的TELNET 协议。
Xshell 可以在 Windows 界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的。
特别说明:如果希望安装好 XShell 就可以远程访问 Linux 系统的话,需要有一个前提,就是Linux 启用了 SSHD 服务,该服务会监听 22 号端口。
在Linux终端中输入:setup
选择“系统服务”
查看已经启动的服务,标星号的表示已经启动。
XShell官网
(2)XFtp
XFtp是一个基于 windows 平台的功能强大的 SFTP、FTP 文件传输软件。使用了 Xftp 以后,windows 用户能安全地在 UNIX/Linux 和 Windows PC 之间传输文件。
这里使用 SFTP 协议。
登录成功之后显示如图:
(1)介绍
所有的 Linux 系统都会内建 vi 文本编辑器。
Vim 具有程序编辑的能力,可以看做是 Vi 的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用
(2)vi 和 vim 的三种常见模式
正常模式
编辑模式
命令行模式
三种模式的相互转换:
(3)Vi和Vim的快捷键
拷贝当前行 yy , 拷贝当前行向下的 5 行 5yy,并粘贴(p)。在正常模式下。
删除当前行 dd , 删除当前行向下的 5 行 5dd
在文件中查找某个单词,在命令行下输入 /关键字 , 回车 查找 , 输入 n 就是查找下一个。
设置文件的行号,取消文件的行号.[命令行下 : set nu 和 :set nonu
编辑 /etc/profile 文件,使用快捷键到底文档的最末行[G]和最首行[gg],注意这些都是在正常模式下执行的。
在一个文件中输入 “hello” ,然后又撤销这个动作,再正常模式下输入 u
将光标移动到 第 20 行 shift+g
第一步:设置行号,set nu
第二步:在正常模式下输入:20
再按 Shift+g
# 表示立即关机
shutdown -h now
# 表示 1 分钟后关机
shutdown -h 1
# 立即重启
shutdown -r now
# 就是直接使用,效果等价于关机
halt
# 直接重启系统
reboot
# 把内存的数据同步到磁盘,即:将没有保存的东西保存一下,以防关机丢失。(目前的 shutdown/reboot/halt 等命令均已经在关机前进行了 sync)
sync
注意:当我们关机或者重启时,都应该先执行以下 sync 指令,把内存的数据写入磁盘,防止数据丢失。
可以利用普通用户登录,登录后再用 su 用户名
命令来切换成系统管理员身份。
在提示符下输入 logout 即可注销用户
使用细节: logout 注销指令在图形运行级别无效,在 运行级别 3 下有效。
Linux 系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个 账号,然后以这个账号的身份进入系统
1、添加一个用户
useradd 用户名
创建用户之后,默认会在 /home/
下创建一个和用户同名的目录。例:/home/Tom
。
使用该用户登录的话,会默认进入该目录。
2、给用户指定密码
passwd 用户名
3、指定用户目录
useradd -d 指定目录 用户名
会在 /home/
下创建一个指定的目录。
4、删除用户
# 不删除用户目录
userdel 用户名
# 删除用户的同时删除用户目录
userdel -r 用户名
5、切换用户
# 使用 - 会显示上次登录的时间,如果不写 - 就不显示上次登录时间。
su - 用户名
注意:低权限用户切换到高权限用户时,要输入密码,反之,则不需要。
当需要返回到原来用户时,使用 exit/logout
指令。
6、查询用户信息
id 用户名
7、查询当前登录用户
who am i
这条指令显示第一次登陆到这个系统的用户,例如:使用root登陆到系统,然后又使用 su - 用户名
,这时使用 who am i
显示的仍然是root的信息。
定义:类似于角色,系统可以对有共性/权限的多个用户进行统一的管理。可以将多个用户划分到一个组,然后给这个组授予某权限,那么这一组中的所有用户都将拥有该权限。
如果在创建用户的时候,没有创建组,则默认会创建一个和用户同名的组,并把该用户归于该组下。
1、新增一个组
groupadd 组名
2、删除一个组
groupdel 组名
3、创建用户时将其归于某个组
useradd -g 组名 用户名
4、修改用户的组
usermod -g 组名 用户名
用户和组相关的文件
(1)/etc/passwd
文件
用户的配置文件,记录用户的各种信息。
每行的含义:
用户在XShell中发起指令:cd /home
,Linux内核是无法识别的,需要一个翻译官,这个翻译官就是Shell,常用的Shell是Bash。
(2)/etc/shadow 文件
口令的配置文件
每行的含义:
(3)/etc/group 文件
(1)运行级别说明:
常用运行级别是 3 和 5 ,也可以指定默认运行级别。
在 centos7 以前,运行级别是在/etc/inittab
文件中设置的。
使用init
指令切换运行级别。
init 0 :表示关机
(2)指定运行级别:
1、运行级别
# 运行级别3
multi-user.target
# 运行级别5
graphical.target
2、查看当前默认的运行级别:
systemctl get-default
3、设置默认的运行级别(重启后生效)
systemctl set-default xxx.target
每个版本的指令有所差异,这里以CentOS 7.6为例。
具体步骤如下:
1、先重启系统,进入开机界面后(这里一定要快,在这个界面只有5秒的时间就会切换到用户登录界面),在开机界面中按 e
进入编辑模式。
2、 进入编辑界面,使用键盘上的上下键把光标往下移动,找到以 Linux16
开头内容所在的行数,在行的最后面输入:init=/bin/sh
。
3、输入完成后,直接按快捷键:Ctrl+x 启动系统,进入单用户模式
4、接着,在光标闪烁的位置中输入:mount -o remount,rw /(注意:各个单词间有空格),完成后按键盘的回车键(Enter)。如图
5、然后输入 passwd
,完成后按键盘的回车键(Enter)。输入密码,然后再次确认密码即可( 密码长度最好8位以上,但不是必须的),密码修改成功后,会显示passwd…的样式,说明密码修改成功。(注意:这里不能使用小键盘的数字键!!!)
6、接着,在鼠标闪烁的位置中(最后一行中)输入:touch /.autorelabel
(注意:touch与 /后面有一个空格),完成后按键盘的回车键(Enter)
7、 继续在光标闪烁的位置中,输入:exec /sbin/init
(注意:exec与 /后面有一个空格),完成后按键盘的回车键(Enter),等待系统自动修改密码(这个过程时间可能有点长,耐心等待),完成后,系统会自动重启, 新的密码生效了。
8、然后使用修改后的密码登录到系统,可以选择使用指令 passwd root
修改刚才改好的密码,改为好记的。
在Linux中,隐藏文件是以 .
开头的。
# 列出所有文件,包括隐藏文件
ls -a
指令可以组合使用:
# 单列显示所有文件,等同于 ll
ls -l
# 单列显示所有文件,包括隐藏文件。
ls -al 或 ls -la
# 查看指定目录下的内容
ls /root -al
# 加个选项 h 表示显示的时候按人类便于阅读的方式展示
ls -lh
man 指令获得帮助信息
# 查看 ls 指令的帮助信息
man ls
help 指令,获得 shell 内置命令的帮助信息(英文显示)
help cd
1、显示当前工作目录的绝对路径
pwd
/
出发。2、切换目录指令,cd
# 切换到自己的家目录
cd ~
# 回到当前目录的上一层
cd ..
# 使用绝对路径切换到 root 目录
cd /root 案例
# 使用相对路径到/root 目录, 比如在 /home/tom
cd ../../root
3、创建目录指令,mkdir
# mkdir 不加参数,默认只能创建一个mul。
mkdir 目录
例:mkdir /home/dog :在home目录下创建dog目录
# 创建多级目录
mkdir -p 目录
例:mkdir -p /home/animal/dog :在home下创建animal,再再animal下创建dog目录。
4、删除空目录
# 删除空目录,如果不是空目录,则不能使用该指令
rmdir [选项] 目录
# 删除非空目录,rf 表示递归强制删除
rm -rf 目录
5、创建空文件,touch
touch 文件名称
例:touch A.txt
6、拷贝指令,cp
# source代表拷贝的是哪个文件。 dest代表把文件拷贝到哪个地方。
# -r 选项表示递归复制整个文件夹
cp [选项] source dest
例:cp A.txt test/ : 表示将A.txt 文件复制到test目录下
例:cp -r test test01 :表示将当前目录下的test目录和test目录中的所有内容拷贝到 当前目录下的test01目录下。
# 强制覆盖不提示的方法:\cp
\cp -r test test01
7、删除文件或目录指令,rm
# -r 递归删除整个文件夹
# -f 强制删除不提示
rm [选项] 目录或文件
8、移动或重命名文件或目录,mv
# 重命名。(同一目录下)
mv oldFileName newFileName
例:mv A.txt AA.txt
# 移动文件(剪切)
mv 源路径 目的路径
例: mv AA.txt ../test : 将当前目录下AA.txt文件移动到和当前目录同级的test目录下。
例:mv B.txt ../test01/BB.txt : 移动并且重命名
9、查看文件内容,cat
# -n 显示行号
cat [选项] 文件
管道命令,将前一个指令的结果,再交给下一个指令去处理。格式 前一个指令 | 指令
。
# 将 cat -n /etc/profile 指令的处理结果,再交给 more去处理
cat -n /etc/profile | more
more 指令:
操作 | 功能描述 |
---|---|
space | 向下翻页 |
q | 立刻离开more,不再显示文件内容 |
Ctrl+F | 向下滚动一屏 |
Ctrl+B | 返回上一屏 |
= | 输出当前行的行号 |
Enter | 向下翻一行 |
:f | 输出文件名和当前行的行号 |
10、查看大文件内容,less。
less 文件
less 指令用来分屏查看文件内容,它的功能与more 指令类似,但是比more 指令更加强大,支持各种显示终端。
less 指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
基本语法如下:
操作 | 功能描述 |
---|---|
space | 向下翻页 |
pagedown | 向下翻页 |
pageup | 向上翻页 |
/字串 | 向下搜索 字串 的功能;n:向下查找。N:向上查找 |
?字串 | 向下搜索 字串 的功能;n:向上查找。N:向下查找 |
q | 离开当前程序 |
11、输出指令,echo。
echo [选项] [输出内容]
# 输出 Hello,Linux 到控制台
echo "Hello,Linux"
# 输出内容到文件
echo "Hello,Linux" > test.txt
# 输出环境变量
echo $PATH
# 输出主机名
echo $HOSTNAME
12、查看文件开头,head指令
head 用于显示文件的开头部分内容,默认情况下 head 指令显示文件的前 10 行内容。
# 语法
head [选项] 文件
# 查看指定行数的文件,比如:查看前5行
head -n 5 /etc/profile
# 查看 /etc/profile 文件的前10行
head /etc/profile
13、tail 指令
tail 用于输出文件中尾部的内容,默认情况下 tail 指令显示文件的后 10 行内容。
# 语法,默认查看文件尾 10 行内容
tail 文件
# 查看文件尾5行
tail -n 5 文件
实时监控该文档的所有更新
tail -f 文件
14、输出重定向>
和 追加 >>
指令
# echo 指令本来是将内容输出到终端,使用重定向指令 > ,之后,就可以将内容重定向输出到文件 MyFile.txt 中。 如果指定文件不存在就会先创建该文件。
echo "Hello,World" > MyFile.txt
指令 >
是覆盖写,指令 >>
是追加写。
# 将列表的内容重定向写入文件中
ls -l > 文件
例:ls -l > a.txt
# 列表的内容追加到文件的末尾
ls -l >> 文件
例:ls -l >> a.txt
# 将文件 1 的内容覆盖到文件 2,可以实现文件的复制粘贴
cat 文件1 > 文件2
# 显示当前日历显示到终端
cal
15、软链接指令,ln。
ln,软链接也称为符号链接,类似于windows 里的快捷方式,主要存放了链接其他文件的路径。
创建软链接:
# 给原文件创建一个软链接
ln -s [原文件或目录] [软链接名]
例:ln -s /root myRoot
删除软链接:(后面不要写 / ,否则会认为它是一个目录)
rm /home/myRoot
16、查看历史执行指令,history
# 查看历史执行的所有文件(默认显示所有)
history
# 只查看最近的 10 条记录
history 10
# 执行曾经执行过的指令
!指令序号
1、显示或设置日期
# 显示当前时间
date
# 显示当前年份
date +%Y
# 显示当前月份
date +%m
# 显示当前是一月中的哪一天
date +%d
# 显示年月日时分秒
date "+%Y-%m-%d %H:%M:%S"
# 设置时间
date -s 字符串时间
例:date -s “2020-11-03 20:02:10”
# 显示日历,不加选项,显示本月日历
cal [选项]
# 显示 2020 年日历
cal 2020
1、find指令
find 指令将从指定目录向下递归遍历其各个子目录,将满足条件的文件或者目录显示在终端。
可以使用通配符。
#
find [搜索范围] [选项]
选项:
选项 | 功能 |
---|---|
-name | 按照指定的文件名查找模式查找文件 |
-user | 按照属于指定用户查找模式查找文件 |
-size | 按照指定文件大小查找模式查找文件 |
# 查找 /home 目录下名字为 A.txt 的文件
find /home -name A.txt
# 查找 /home 目录下以 txt 结尾的文件
find /home -name *.txt
# 查找 /opt 目录下,属于用户root的文件,这里可以使用管道命令来显示。
find /opt -user root | more
# 查找整个 linux 系统下大于 200M的文件(+n大于n, -n小于n ,n等于n, 单位有 k,M,G)
find / -size +200M
2、locate 指令
locate 指令可以快速定位文件路径。locate 指令利用事先建立的系统中所有文件名称及路径的 locate 数据库实现快速定位给定的文件。
Locate 指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更 新 locate 时刻。
由于 locate
指令基于数据库进行查询,所以第一次运行前,必须使用 updatedb
指令创建 locate
数据库。
locate 要查询的文件
# 查看某个指令在哪个目录下,比如 ls 指令在哪个目录
which 指令
例:which reboot
3、grep指令和管道符号 |
grep 过滤查找。
管道符 |
,表示将前一个命令的处理结果输出传递给后面的命令处理。
# 语法
grep [选项] 查找内容 源文件
选项:
选项 | 功能 |
---|---|
-n | 显示匹配行及行号 |
-i | 忽略字母大小写进行匹配 |
# 查看 MyFile.txt 中关键字 Hello。
# 就是将 cat MyFile.txt 指令的结果,交给 grep "Hello" 指令再处理。
cat MyFile.txt | grep "Hello"
grep -n "Hello" MyFile.txt
1、gzip/gunzip
指令
gzip
:压缩gunzip
:解压# 压缩文件,只能将文件压缩为 *.gz 文件。会替换原有文件
gizp 文件
# 解压文件,只能解压 *.gz 文件
2、zip/unzip
指令
zip
:用于压缩文件或目录。unzip
: 用于解压的。#
zip [选项] xxx.zip 要压缩的文件
#
unzip [选项] xxx.zip
# 将 /home 目录压缩为 myhome.zip ,并放在当前目录下
zip -r myhome.zip /home
# 将当前目录下的 myhome.zip 解压到 /opt/temp 目录下
unzip -d /opt/temp myhome.zip
3、tar
指令
# 打包文件或目录,压缩后的文件格式是 xxx.tar.gz,
tar [选项] xxx.tar.gz 要打包的文件或目录(多个文件用空格隔开)
选项:
选项 | 功能 |
---|---|
-c | 产生 .tar 打包文件 |
-v | 显示详细信息 |
-f | 指定压缩后的文件名 |
-z | 打包同时压缩 |
-x | 解压 .tar 文件 |
# 压缩当前目录下的 dog.txt 和 cat.txt 为 dc.tar.gz
tar -czvf dc.tar.gz dog.txt cat.txt
# 解压当前目录下的 dc.tar.gz
tar -zxvf dc.tar.gz
# 将当前目录下的 dc.tar.gz 解压到指定目录 /opt/temp下。(大写C)
tar -zxvf dc.tar.gz -C /opt/temp
在 linux 中的每个用户必须属于一个组,不能独立于组外。
在 linux 中每个文件有所有者、所在组、其它组的概念。
1、查看文件所有者:
2、修改文件或目录所有者,chown
chown 用户名 文件名
# 修改所有者和所属组
chown 用户:组名 文件或目录
# 递归修改目录下的所有文件的所有者
chown -R 用户 目录
3、创建组
groupadd 组名
useradd -g 组名 用户
用户创建文件之后,这个文件的所在组就是该用户的所在组。
4、修改组
# 改变文件或目录的所在组
chgrp 组名 文件/目录
# 递归修改目录的所有文件的所属组
chgrp -R 组名 目录
5、改变用户所在组。
注意:使用root用户改变用户的组之后,用户再已登录的情况下,并不能立即拥有改变后组的权限。该用户退出重新登录,即可拥有修改后组的权限。
# 改变用户所在组
usermod -g 新组名 用户
# 改变用户登录的是初始目录(默认用户登录时会进入自己的组目录),前提是用户需要有进入到新目录的权限
usermod -d 目录名 用户
# 查看某个组是否存在
cat /etc/group | grep 组名
1、权限介绍
ll
显示信息如下:
这一列共有10位,每一位都有其含义:
2、rwx
权限详解
作用到文件
r
:read,可读。w
:write,可修改,但不代表可以删除。删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件x
:execute,可执行。作用到目录:
r
:read,可读。ls 查看目录内容。w
:write,可修改,可以在目录内创建、删除文件和重命名目录。x
:execute,可进入该目录。rwx
也可以用数字来表示:r=4,w=2,x=1
文件的读写权限和目录的读写权限独立。
3、其他说明
4、修改权限
# 该文件或目录赋予权限
chmod u=rwx,g=rx,o=x 文件或目录
# 给文件添加权限
chmoe [u|g|o][+|-] 文件或目录
# 例:给 abc.txt 文件的所有者读写执行权限,给所在组读执行权限,给其他用户读权限。
chmod u=rwx,g=rx,o=x abc.txt
# 例:给 abc.txt 文件的所有者去掉执行权限,增加组的写权限
chmod u-x,g+w abx.txt
# 例:给 abc.txt 文件的所有用户添加读闲暇
chmod a+r abc.txt
chmod u=rwx,g=rx,o=x 文件或目录
# 相当于
chmod 751 文件或目录
(1)练习权限相关指令
groupadd fruit
groupadd animal
useradd -g animal cat
useradd -g animal dog
useradd orange
useradd apple
usermod -g fruit orange
usermod -g fruit apple
pwsswd xxx
1、使用 cat 登录,创建一个文件,file.txt,并写入:”I am cat"
2、查看 fruitFile.txt 的权限。
可以看到权限为:
3、现在将该文件的写权限给 dog 。即:给同组用户赋予 w 权限。
4、dog登录,尝试写file.txt 文件。
ls
之类的指令列出目录下的内容,这是因为我们并没有给 同组用户 r 的权限。6、现在再次使用 cat 或root 用户,赋予 /home/cat 目录同组用户的 r 权限。
7、dog用户可以使用 ll 指令展示目录下的内容。并且可以修改 /home/cat 目录下的 file.txt 文件。
8、dog 用户尝试在 /home/cat 目录下创建文件 dogFile.txt。
rx
,权限,并没有 w
权限。w
权限才可以在目录中创建、删除文件。9、再次赋予 dog 用户 w
的权限。
10、dog 用户现在可以创建 dogFile.txt 文件。
11、apple用户尝试进入 /home/cat 目录,发现并不能进入。
12、现在将 apple 用户修改组到 animal组中,尝试进入 /home/cat 目录,修改 file.txt 文件。
(2)验证文件和目录的权限的独立性
1、查看 /home/cat 目录和该目录下 file.txt 文件的权限。
2、修改 /home/cat 目录对同组用户的权限仅为 x。file.txt文件的权限不变。
3、dog 用户登录,并进入到 /home/cat 目录。
rw
权限,但是却不影响它查看和修改 file.txt 文件。这便是文件和目录的权限的独立性
【系列文章】
1. Git&GitHub(基础)
2. Git&GitHub(进阶)
3. java多线程
4. JavaScript 总结
5. SpringMVC(一)
6. SpringMVC(二)
……
关注博主