Linux随学随记
README
- 划掉的意思就是:考试可能不考,
但理解了可能更好更多时候是我不太准确的理解
- 可能有错,欢迎指正
- 能力有限,整理不全,不喜就喷,尽快改
系统目录结构
前置
Linux下,一切皆为文件- Linux中不以文件后缀名判断文件类型
- 文件名前带点,一般为隐藏文件,例如
/.autorelabel
- 区分
./
和/.
- 每个文件夹自带两个特殊的隐藏文件夹
./
代表当前文件夹../
代表上一文件夹,父文件夹
- 区分
- 任意目录下
cd ~
来到当前用户的家目录- 登录用户
urName
,会来到/user/urName
- 登录用户
root
,会来到/root
- 登录用户
- 任意目录下
cd -
,回到上一工作目录- 区别于
cd ..
..
来到当前工作目录的父目录
- 区别于
目录作用
# tree -L 1 /
/
├── bin -> usr/bin
├── boot
├── data
├── dev
├── DevKit
├── etc
├── home
├── lib -> usr/lib
├── lib64 -> usr/lib64
├── lost+found
├── media
├── mnt
├── opt
├── proc
├── root
├── run
├── sbin -> usr/sbin
├── srv
├── sys
├── tmp
├── usr
└── var
-
Linux下路径用正斜杠
/
分隔,例如/usr/lib
- Windows反着来,用反斜杠
\
,例如C:\Windows\system32
斜率为正是正斜杠/
,斜率为负是反斜杠\
- Windows反着来,用反斜杠
-
/
目录也称为根目录,在目录结构的最顶端- 类似于
C:\
- 类似于
-
/root
— root的家目录- 类似于Windows下的
C:\Users\Administrator
root
账户就是Windows下的Administrator
账户(管理员账户,权限最高)
- 类似于Windows下的
-
/home
— 用以存放普通用户的目录-
在Linux中,每个用户都有一个自己的目录,一般以用户的账号命名
- 例如
/home/urName
- 例如
-
类似于Windows下的
C:\Users
- 例如
C:\Users\urName
- 例如
-
-
/boot
— 启动Linux时使用的内核文件和引导程序文件,如vmlinuz
- 开机的时候引导程序会读取该目录下的文件
-
/bin
— bin是Binaries (二进制文件)的缩写,用来存放用户命令文件- 指向
/usr/bin
- 指向
-
/sbin
— s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序- 指向
/usr/sbin
- 指向
-
/dev
— dev,Device(设备)的缩写,设备目录,该目录下存放的是设备文件-
在Linux中访问外部设备的方式和访问文件的方式是相同的
Linux下,一切皆为文件
-
类似Windows中的设备管理器
-
-
/etc
— 存放配置文件- 多数软件的
.conf
存放至此
- 多数软件的
-
/lib
— 库文件目录- 指向
/usr/lib/
- 指向
-
/media
— 系统设置的自动挂载点,例如CD、DVD、软盘、磁带的自动挂载点- 系统自动挂载
- 不太准确地理解为Windows的文件资源管理器
-
/mnt
— 暂时挂载使用- 手动挂载
- 临时挂载点
-
/opt
— 可选文件和程序的贮存目录- 第三方程序通常安装在这个目录
- 类似
C:\Program Files
-
/proc
— 一个虚拟的文件系统(不是实际贮存在磁盘上的),存放硬件和进程运行的信息 -
/tmp
— 用来存放一些临时文件的,定时删除 -
/var
— 存放着在不断更新的东西- 习惯将那些经常被修改目录放在这个目录下
- 各种缓冲区、日志文件
-
/run
是一个临时文件系统- 自上一次系统启动以来,启动的进程运行时的数据,此目录中的内容在重启时重新创建
-
/usr
— 包括与系统用户直接有关的文件和目录,我们要用到的很多应用程序和文件几乎都存放在usr目录下,例如应用程序及支持它们的库文件。(unix shared resources)- 理解为
C:\Windows
/usr/bin
存放着许多应用程序/usr/sbin
:存放root超级用户使用的管理程序/usr/share
:帮助说明文档所在的目录/usr/lib
:存放一些常用的动态链接共享库和静态档案库/usr/src
:系统级的源码目录/usr/local
本地程序安装默认路径/usr/local/src
:用户级的源码目录
- 理解为
附
/mnt
和/media
有什么不一样:前者通常为手动挂载点,后者是自动挂载点,简单来说就是规范问题
/mnt : Mount point for a temporarily mounted filesystem
Purpose
This directory is provided so that the system administrator may temporarily mount a filesystem as needed. The content of this directory is a local issue and should not affect the manner in which any program is run.
This directory must not be used by installation programs: a suitable temporary directory not in use by the system must be used instead/media : Mount point for removeable media
Purpose
This directory contains subdirectories which are used as mount points for removeable media such as floppy disks, cdroms and zip disks.
SSH链接
- 在Windows自带终端(
Powershell、cmd
)中敲ssh root@${ip}
即链接到虚拟机(服务器)- 首次登录会验证公钥,敲
yes
即可 Windows 10 1809后默认打开openSSH服务,即不用设置即可使用ssh
命令使用Windows 10 1809之前的系统,可以下载第三方ssh工具
- 首次登录会验证公钥,敲
该窗口可以理解为shell
网络基操
systemctl stop firewalld
,禁用防火墙,d means daemon,守护进程,类似Windows中的服务setenforce 0
,变更SELinux
策略getenforce
获取当前策略
更改GNU超时(-)
- 进入
/etc/default
- 找到
grub
,修改GRUB_TIMEOUT
为期望值- 这里可以用
vim
也可以用gedit
,前提是图形界面启动
- 这里可以用
grub2-mkconfig –o /etc/grub2.cfg
重新编译生成grub
文件
更改运行级别
-
systemctl get-default
查看默认运行级别 -
systemctl set-default multi-user.target
更改运行级别为3,命令行systemctl set-default graphical.target
更改运行级别为5,图形
基本操作&文件操作
mv
,move,移动文件,可用于重命名文件mv /a.txt /b
将根目录下的a.txt
移动至/b
下mv ./a.txt /b.txt
将当前目录下的a.txt
重命名为b.txt
cp
,copy,拷贝(复制)文件cp /a.txt /b
将根目录下的a.txt
拷贝至/b
下
Ctrl + C
跳出当前进程lsblk
,listing block devices,列出块设备信息,并显示其间的依赖关系man
后跟某个命令,显示该命令怎么用- 命令后边的
-Xx
是选项,同一条命令配合不同的选项会有截然不同的效果- 一般来说,选项的顺序并不影响最终效果,比如
ls -hla
和ls -lah
是一样的- 这里的不一般特指
tar
的-f
选项,这个选项后必须跟真实路径,一般放在最后
- 这里的不一般特指
- 请亲手体验
rm -rf /
和rm -rfv /
的区别- 还是不要体验吧
- 一般来说,选项的顺序并不影响最终效果,比如
ls
会把文件类型以颜色的形式标识出来,dir
不会- 二者均为显示当前目录下的目录与文件,full form is list and directory
ll
是ls -l
的别名,二者等效,-l
,long,长,长格式输出pwd
: print working direction,懂得都懂mkdir -p ./dir/of/such/folder
递归创建目录 ,-p means parents目录就是文件夹,文件夹就是目录- no error if existing, make parent directories as needed
- 人话就是,加上
-p
能一层层地创建本来不存在的文件夹,不加上就不能一层层创建 -p
,parent,父母双亲,子母结构,创建子母文件夹
cat -n
参数可以显示行号,-n
,number,数字more
可以逐页显示,b
上一页,space
下一页less
和more
类似,但可以随意浏览,拍q
退出head -n 5 /etc/passwd
显示/etc/passwd
前5行的内容tail -n 2 /etc/passwd
显示/etc/passwd
尾5行的内容rm -rf dir
强制删除目录dir
,-rf
,recursion&force,递归&强制ls -li
using long listing format and print the index number of each file- same as
ll -i
,-i
,index,索引
- same as
|
管道运输符,把前一段命令的输出作为后一段命令的输入history|less
将history
的执行结果传入less
touch aa
新建一个名为aa
的文件
ln
指令,概念大于操作
- 软链接
symbolic link
,象征性链接,实质是快捷方式,原文件删除会影响链接使用,软连接链接文件 - 硬链接
hard link
,实质是文件,指向内存中的同一个文件,被链接文件删除不会影响硬链接使用,硬链接地址
# 创建硬连接
ln sourceFile linkFile
# 创建软连接,助记:-s soft,软,软连接
ln -s sourceFile linkFile
which
指令
which
能在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果- 可以用于检查命令是否存在
find
指令
-
在指定文件夹中查找文件
-
find / -name grub
在根目录及其子目录下寻找名为grub的文件或者文件夹 -
find / -name '*grub*'
在根目录及其子目录下寻找名含有grub的文件或者文件夹 -
find -name '*grub*'
在当前工作目录(pwd
)下寻找名含有grub的文件或者文件夹 -
find / -name '*grub*' -type d
在当前工作目录(pwd
)下寻找名含有grub的文件夹 -
find -size +2M
在当前工作目录下寻找大小大于2M的文件 -
find /etc -perm 755
在/etc
下寻找权限设置为755的文件或文件夹-prem
,permissions,许可(权限)
-
使用
-a
链接两个不同的条件 -
-type
后跟查找目标类型,
f
,file,文件;
d
,directory,目录,文件夹
find
高级
-exec
后面跟的是command命令,它的终止是以转义后的分号为结束符的(\;
){}
表示前边find命令找到的文件名列表find / -name '*grub*' -type f -exec ls -l {} \;
在根目录及其子目录下寻找名含有grub的文件,并以长格式输出
grep
指令
- 过滤,print lines matching a pattern
grep 'root' /etc/passwd
在/etc/passwd
文件中查找包含root
的行-v
,invert,反转,反向过滤grep ‘root' -v /etc/passwd
在/etc/passwd
文件中查找不包含root
的行
netstat
指令
net status
,网络状态管理器
-l
,listening,监听,显示监控中的服务器的 Socket-n
,numeric,数值,直接使用 IP 地址,而不通过域名服务器-t
,tcp,显示 TCP 传输协议的连线状况-p
,programs,显示正在使用 Socket 的程序识别码和程序名称- 一般用
netstat -lntp
查看被占用端口
systemctl
指令
系统服务管理器
systemctl status dhcpd
查看dhcpd
服务状态systemctl start mysqld
启动mysql
服务systemctl stop firewalld
关闭firewall
服务
一点必要进阶
- Linux命令区分大小写
- 随时利用 Tab 键补齐命令
uname
显示系统信息,unix name
之意,print system information-r
,kernel release,内核版本-a
, all,显示所有信息
who
显示当前登录的用户,who am i
显示有效用户信息echo
东西有点多,但可以简单理解成输出(其实也不太可以)echo "print" > a.txt
会在当前目录下创建一个文件a.txt
,内写着print
cat
简单理解成显示某个文件里的内容history
显示历史命令clear
清屏,等效于Ctrl + L
stat
显示系统或文件详细状态信息
tar
命令 - 压缩工具
先记住两个常用的
tar -xzvf beingExclude.tar.gz # 解压
tar -czvf beingCompressed.tar.gz ./folderName # 压缩
够用了
不详细的详解
tar压缩工具
-c
建立压缩档案,人话就是压缩-x
解压-t
查看内容-r
向压缩归档文件末尾追加文件-u
更新原压缩包中的文件
这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。
下面的参数是根据需要在压缩或解压档案时可选的。
-z
有gzip属性的-j
有bz2属性的-Z
有compress属性的-v
显示所有过程-O
将文件解开到标准输出,人话就是解压到…(某个目录),
下面的参数-f
是必须的
-f
使用档案(压缩包)名称,这个参数是最后一个参数,后面只能接压缩包名,记得
-
tar -xzvf beingExclude.tar.gz
解压beingExclude.tar.gz
-
tar -xzvf beingExclude.tar.gz -O /folder/fd2
解压beingExclude.tar.gz
到文件夹/folder/fd2
下 -
tar -czvf beingCompressed.tar.gz *.sh
将当前目录下的所有以.sh
为后缀的文件压缩为beingCompressed.tar.gz
输出/输入重定向
输出重定向
-
>
和>>
,
前者覆盖后者追加 -
输出重定向就是把本来输出到屏幕上的内容重新输出到某个文件中 -
echo aaa > a.txt
将输出的内容**aaa
输出到当前工作目录下的a.txt
**文件中,会覆盖原来的内容 -
cat b.txt > a.txt
将b.txt
的内容追加写入a.txt
中 -
2>
对命令的错误信息进行重定向理解为对抛出错误的输出
-
&>
或>&
命令结果和错误同时重定向
输入重定向
-
<
将后面文件作为前面命令的输入cat a.txt
与cat < a.txt
效果相同类似管道符
-
<<
带命令作用全文匹配某个字符串后结束
人话就是输入某个字符串就结束,这个字符串(分界符)是自己设置的-
cat << eol
,会一直读取输入的字符串,直到输入eol
时才终止输入,随后输出eol
前输入的字符串[root@centos ~]# cat << eol > line1 > line2 > line3 > eol # 输出如下 line1 line2 line3
-
文件系统与磁盘基本知识
文件系统
- Windows常用的文件系统有
ntfs
、fat32
- Linux 常用的文件系统有
ext3
、ext4
、xfs
、NFS
、vfat
、swap
磁盘
- 硬盘常见的接口有
SATA
、IDE
、SCSI
- IDE - HD
- SCSI - SD
- Linux中的第一个IDE硬盘称为
hda
,第二个IDE硬盘称为hdb
- Linux中的第一个SCSI硬盘称为
sda
,第二个SCSI硬盘称为sdb
- 第一个分区为
sdX1
- 第三个分区为
sdX3
- 以此类推
- 第一个分区为
- Linux光盘的称为
cdrom
- U盘在Linux被看作是
SCSI
接口的硬盘
分区
- 磁盘的分区分为主分区、扩展分区、逻辑分区,扩展分区分区不能直接存放数据
- 传统的磁盘最多有4个主分区,1个扩展分区,逻辑分区数量不受限制
- 现有n个主分区,m个扩展分区,则n+m <= 4
- Linux分区的编号1-4是留给主分区和扩展分区的,而编号5及以后是给逻辑分区使用的
/dev/sda
的第1个主分区称为sda1
/dev/sda
的第1个逻辑分区称为sda5
- 光盘的文件系统格式是
iso
mount
命令与磁盘分区
mount
命令
-
挂载点
-
与Windows的
C:\ D:\ E:\
完全不一样 -
某磁盘分区后,需要挂载到其他目录下,才能访问
-
# 将设备 sr0 挂载到 /sr0_mnt_point 上 #(/sr0_mnt_point 应为真实存在的文件夹,不存在就 mkdir) # 此后,访问 /sr0_mnt_point 即可认为是在访问 sr0 mount /dev/sr0 /sr0_mnt_point
-
# 卸载sr0 umount /dev/sr0
-
-
-
VMware中挂载光盘*(略)
-
lsblk
,listing block devices,列出块设备信息,并显示其间的依赖关系(基本)- (高级)在块设备信息中可以找到外设自动挂载点,
挂载点一般以文件夹的形式存在,可以用来访问外设
- (高级)在块设备信息中可以找到外设自动挂载点,
磁盘分区与格式化
利用fdisk
工具
-
fdisk /dev/sdb
对磁盘sdb
进行分区操作 -
按提示操作即可,全中文,不再赘述
-
按
m
回车查看帮助
格式化可以理解为创建文件系统
-
mkfs.xfs /dev/sdb1
,make file system XFS,创建文件系统
将sdb
的第一个分区格式化为xfs
分区
重温一下- Linux中的第一个SCSI硬盘称为
sda
,第二个SCSI硬盘称为sdb
,三sdc
,四d,以此类推sde
的第一个分区为sde1
sdX
的第三个分区为sdX3
- 以此类推
- Linux中的第一个SCSI硬盘称为
-
扩展分区无法格式化
-
三者从属关系:{ 主分区 { 拓展分区 {逻辑分区} } }
磁盘命令
lsblk
和df
命令输出类似,但输出的是两个层面的信息
lsblk
,listing block,面向硬件,管理逻辑设备(真实硬盘),简单理解成Windows中的磁盘管理器df
,disk filesystem,面向文件系统,也就是软件层面上的磁盘分区fdisk -l
,format disk tools --list,类似lsblk
,能看见块设备信息
du
,disk usage,查看磁盘使用情况
/etc/fstab
文件
/etc/fstab
文件- 系统启动时读取
/etc/fstab
,根据文件里面的配置挂载磁盘 - 可以配置启动自动挂载点,编辑该文件加入相应的挂载项和挂载点即可
用户&进程&权限
top
来动态显示进程,在top
中- 输入大写P,按CPU占用降序排序
- 输入大写M,按内存占用降序排序
kill 114
退出PID为114
号的进程Ctrl + Z
暂停进程,将进程转为后台
-
useradd newuser
添加一个新用户newuser
-
id userName
查看用户userName
的组id和用户id -
passwd userName
给userName
添加或更改密码 -
usermod userName
,user mode,用户模式-L
,lock,锁定用户,锁定后该用户无法使用-U
,unlock,解锁用户
-
删除用户
userdel
-
useradd xxx
添加用户时,Linux
完成了哪几项和xxx
用户有关的工作?- 在
/home
下添加了用户目录,在/etc/passwd
和/etc/shadow
添加了用户相关的条目
- 在
-
ls -ld /abc
,查看文件夹/abc
的权限-d
,查看该文件的信息,而不是它的内容stat /abc
也能查看权限
-
chown you /abc
,change owner,更改属主,
更改文件夹/abc
的属主为you
chmod
指令
- change mode,更改模式,用于更改权限
# 为filename、owner添加执行权限
chmod u+x filename
# 为filename、owner添加执行、读取权限
chmod u+rx filename
# 为filename、所有用户(a - all)添加执行权限
chmod a+x filename
# owner读写,group、other无权限,空格表示无权限
chmod u=rw,go= filename
# 将目前目录下的 所有文件与子目录 皆设为任何人可读取
# -R 代表递归添加
chmod -R a+r *
# 删除所有用户的执行权限
chmod a-x filename
# 更改/abc权限为777
chmod 777 filename
权限表示
# 权限表示 数字表示
rwxrwxrwx, 777
rwx---rwx, 707
rwxrwxr-x, 775
r-xrwxr-x, 575
r-xrw-r-x, 565
三组 rwx
分别代表:
- owner(u - user)权限
- group(g - group)权限
- other-user(o - other)权限
r - read
w - write
x - execute
数字表示:二进制转八进制
rwx -> 111 -> 4+2+1 -> 7
r-x -> 101 -> 5
rw- -> 6
以此类推
特殊权限
-
作用见P89
2.suid/sgid程序
UNIX实际上有两种类型的用户ID:realuserID
是在登录过程中建立的用户ID;
effectiveuser ID
在录后的会话程中通UIDID位来修改用户ID。当一个用户运行一条命令时,进程继承了用户登录Shell的权限,
这时realuser ID
和effective user ID
是相同的。当SUID位被设置时,进程继承了命令拥有者的权限。
例如,普通用户运行passwd命令时,他能够修改/etc/passwd
文件,尽管文件是属于root的。
这是因为passwd命令以root的SUID 权限运行。要严格设置这种权限,避免破坏性,因为如果
suid
程序是/bin/bash
的话,则会导致严重后果。在Red Hat Linux9及其之前的版本,一个普通用户若在某个短时间取得过root权限,他就能设置一个suid程序/bin/bash
来取得根特权。简单来说就是为了安全性
-
rwsrwsrwt
- 属主的s代表用户置位,八进制为
4000
,修改权限为u±s
- 属组的s代表组置位,八进制为
2000
,修改权限为g±s
- 其他用户的t代表粘着置位,八进制为
1000
,修改权限为o±t
- 属主的s代表用户置位,八进制为
进程进阶
-
在命令最后加
&
,cat &
,可以将该命令转为后台运行 -
bg
,background,后台
将一个在后台暂停的命令,变成继续执行 -
fg
,foreground,前台
将后台中的命令调至前台继续运行 -
jobs
,工作
查看当前有多少在后台运行的命令,任务管理查看器 -
Ctrl + z
暂停进程,将进程转为后台
vim
编辑器
-
vim /abc.txt
,编辑根目录下的abc.txt
文件- 若该文件不存在,
vim
会创建该文件
- 若该文件不存在,
-
vim +5 /abc.txt
,
打开文件并定位到第五行 -
vim +5 /abc.txt
,
打开文件并定位到最后一行 -
在
vim
中-
按
i
进入编辑模式 -
按
ESC
进入命令模式 -
按
:
进入末行模式 -
命令模式下输
:wq
并回车,保存并退出:q!
,强制退出,不保存:w!
,强制保存, 忽略权限警告
-
末行模式下输入
set nu
显示行号 -
命令模式下输入
o
,另起一行 -
输入
G
,快速跳到最后一行 -
输入
gg
,快速跳到第一行 -
输入
$
快速跳到本行的末端,^
本行首端 -
输入
dd
快速删除本行5dd
删掉5行
-
输入
yy
,yank,复制本行5dd
复制5行
-
p
,paste,黏贴 -
u
,undo,撤销Ctrl + R
,redo,重做(撤销掉撤销,取消撤销)
-
末行模式下输入
/ababab
,并回车,
在文件中搜索 “ababab”- 按下
n
定位到下一个匹配结果 Shift + n
定位到上一个匹配结果
- 按下
-
:r!cal
将命令cal
的结果输出到缓冲区
-
yum
与rpm
指令
yum
与rpm
指令yum
理解为Linux的应用商店rpm -qa | grep mysql
,-query all,查询全部
在全部已安装的包中查询mysql- 通常情况下,使用yum前,需要将yum源更换为任一国内镜像源
yum list mysql
列出可以安装的mysql
软件yum install dhcp*
安装所有dhcp开头的软件
系统救援
重置root账户密码
-
进入单用户模式:
GRUB(GNU, GRand Unified Bootloader)
中按b,找到quiet
,在它后边后rd.break
随后敲
Ctrl - X
进入centOS
的单用户模式-
类似Windows的安全模式
-
进入单用户模式有两种方法,两种方法的区别?:(TODO)
-
What is the difference between using
init
andrd.break
for reset the root password?method A:
Grub > e init=/bin/sh (Remove rhgb and quiet tags if necessary) > Ctrl+x /usr/sbin/load_policy -i mount -o remount,rw / passwd root or passwd mount -o remount,ro /
**method B: * **
Grub > e rd.break > Ctrl+x mount -o remount,rw /sysroot/ chroot /sysroot/ passwd root or passwd touch /.autorelabel
Second method is recommend.
For GRUB2/RHEL7 single/emergency mode should not work since it will use
sulogin
to authenticate you before presenting the command prompt.So lets mark off different methods.
-
For RHEL5, RHEL6, append
1
,s
orinit=/bin/bash
tokernel cmdline
-
For RHEL7, RHEL8, CentOS7, CentOS8, append
rd.break
orinit=/bin/bash
tokernel cmdline
It appears that the second method is not available on RHEL5 and RHEL6.
But for RHEL7 or later I will prefer the first because adding
init=/bin/bash
is a bit tricky when single mode is password protected and may be appendingrd.break
is a way to standardize it. -
-
-
**挂载
sysroot
分区为可读可写:**默认sysroot
分区仅可读。mount -o remount,rw /sysroot
重新挂载分区rw
:read & write,读写ro
:read only,仅读
-
设置根目录为
/sysroot
:chroot /sysroot
-
设置密码:
passwd
后按指示拍新密码 -
保存:touch ./autorelabel
-
原因:为了让
SELinux
生效SELinux
它是一个安全增强系统, 其内部有许多安全策略针对一些操作, 如果你做了这些操作, 没有得到策略的放行, 它会给你禁止掉
比如你使用单用修改root密码是不被策略放行的
怎么让
SELinux
策略放行呢?-
touch /.autorelabel
创建这样一个文件其实就是在告诉SELinux
放行这个策略,就是通知一下
SELinux
-
直接关闭掉
SELinux
-
-
-
退出重启:
exit
,reboot
-
然后密码就改好了
网络服务
重温网络基操
-
systemctl stop firewalld
,禁用防火墙- firewall,防火墙
- d 为 daemon,守护进程,类似Windows中的服务
-
setenforce 0
,变更SELinux
策略getenforce
获取当前策略
samba
服务
- 利用
yum
和rpm
查询是否安装samba服务,不再赘述 systemctl start smb
启动samba服务netstat -tlnp | grep smbd
查看服务占用端口smbpasswd -a xxx
添加samba访问用户xxx- 注意该用户名应是已经存在的Linux用户名其中之一
pdbedit -L
查看已经添加的用户
配置文件
/etc/samba/smb.conf
[global]
#所要加入的工作组或者域
workgroup = WORKGROUP
#用于在 Windows 网上邻居上显示的主机名
netbios name = changNsigin_svr
#定义安全级别
security = user
#将所有samba系统主机所不能正确识别的用户都映射成guest用户
map to guest = bad user
#是否开启dns代理服务
dns proxy = no
#端口
smb ports = 4455
[testshare]
# 我们要分享的文件夹路径
path = /home/user4test
# 是否允许浏览
browseable = yes
# 是否可写
writable = yes
# 是否允许匿名(guest)访问,等同于public
guest ok = yes
# 客户端上传文件的默认权限
create mask = 0777
# 客户端创建目录的默认权限
# 注意共享文件在系统本地的权限不能低于以上设置的共享权限。
directory mask = 0777
小结
- 启动samba服务 命令 systemctl start smb
- 修改samba配置文件 vim /etc/samba/smb.conf
- 添加共享,其中comment为共享说明,path为共享路径,read only为只读
- 关闭防火墙与selinux, systemctl stop firewalld.service && setenforce 0
- 添加samba用户,该用户必须是本地系统已经存在的账户,smbpasswd –a cc
- 为samba用户添加密码,smbpasswd cc
- 重启samba服务,systemctl restart smb
- 尝试访问samba共享目录,使用smbclient,-L选项查看共享目录列表
- 隐藏共享:在期望隐藏条目中添加配置项browseable=no
ftp
服务
- 一般自带该服务,不带就用
yum
装 vsftp
,very secure ftp- 配置文件
/etc/vsftpd/vsftpd.conf
systemctl start vsftpd
,启动服务- 默认情况下,匿名用户不能离开匿名服务目录
/var/ftp
,并且只能下载不能上传文件 - 用哪个用户登录ftp服务,访问哪个用户的用户目录
apache
服务
-
利用
yum
和rpm
查询是否安装apache服务,不再赘述 -
systemctl start httpd
,启动服务 -
etc/httpd/
下,conf
和conf.d
目录的区别是什么?
基本配置和附属配置文件目录 ,基本配置文件和附属配置文件作用相同,更多时候基本配置是模板,基本不去修改 -
修改端口:
vim /etc/httpd/conf/httpd.conf
,找到Listen 80
,即此时apache服务正在监听80端口,80改为其他数字即可 -
添加虚拟目录
-
vim /etc/httpd/vhost/xxx1.conf
,编辑配置文件并设置虚拟目录 -
添加如下条目
<VirtualHost 192.168.43.100> DocumentRoot "/var/www/xxx1" DirectoryIndex index.html </VirtualHost>
即为配置192.168.43.100对应的虚拟目录为
/var/www/xxx1
-
vim + /etc/httpd/conf/httpd.conf
,
最后一行加上IncludeOptional vhost/*.conf
,把虚拟主机的配置文件包含到主配置文件中
-
DHCP
服务
DHCP(动态主机配置协议)是一个局域网的网络协议。
指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。
- 利用
yum
和rpm
查询是否安装DHCP服务,不再赘述 systemctl start dhcpd
,启动服务- 配置文件为
/etc/dhcp/dhcpd.conf
cat /var/lib/dhcpd/dhcpd.leases
,查看哪些IP已经被租用(即查看租约文件)
NFS
服务
-
network file system,nfs,网络文件系统
-
利用
yum
和rpm
查询是否安装NFS服务,不再赘述 -
systemctl start nfs-server
,dddd -
vim /etc/exports
,配置文件(导出路径)# 将根目录下的文件夹a设置为所有人可读 /a *(ro)
-
exportfs -r
,使配置文件生效,或者重启nfs服务也可 -
mount 127.0.0.1:/ /textxxx
挂载网络文件夹
127.0.0.1改为目标IP