Linux基础介绍【第三篇】,linux基础第三篇


更改SSH服务端远程登录的配置

windows服务端的默认远程管理端口是3389,管理员用户是administrator,普通用户是guest。Linux的管理用户是root,普通用户默认有很多个,远程连接默认端口是22。

修改配置文件/etc/ssh/sshd_config,13行Port 22(默认端口22),改为Port 52113(范围0——65535);15行ListenAddress 0.0.0.0 (监听ip地址),改为ListenAddress 192.168.131.1;43行PermitRootLogion yes(root用户远程连接),改为PermitRootLogion no;122行UseDNS yes(DNS解析),改为UseDNS no;GSSAPIAuthentication yes(SSH连接慢),改为GSSAPIAuthentication no;

cat –n:查看行号

vim à:set nu à显示行号

diff比较2个文件的不同之处。

[root@oldboy66 ssh]# diff sshd_config sshd_config.oldboy.20161204

vimdiff以高亮方式比较2个文件的不同之处。

[root@oldboy66 ssh]# vimdiff sshd_config sshd_config.oldboy.20161204

sed替换:

重启生效:/etc/init.d/sshd restart(可能影响用户)或/etc/init.d/sshd reload(平滑重启)。

查看端口:

netstat -lntup|grep sshd

利用sudo控制用户对系统命令的使用权限

管理sudo命令:

visudo或vi /etc/sudoers,visudo更好。vi命令模式直接输入行数+gg到固定的行数,显示行号:set nu,yy(复制)+p(粘贴)复制当前行到下一行,shift+a到结尾处于编辑状态。

98+gg: 98 root ALL=(ALL) ALL

给oldboy授予root权限:

oldboy ALL=(ALL) ALL

oldboy ALL=(ALL) NOPASSWD:ALL(不提示输入密码)

用oldboy添加一个用户oldgirl:

给oldboy授予固定权限:

oldboy ALL=(ALL) /bin/touch,/usr/sbin/useradd

注意:需要命令的全路径,查看命令全路径which 命令,例如:

find查找:find / -type f -name "useradd"

whereis查找:whereis -b useradd

locate查找:locate useradd

环境变量:

PATH系统路径变量,执行ls、cp等非内置命令时,系统会查找PATH里对应的路径是否存在,如果没有就报告找不到该命令。当执行which cp来查看命令所在路径的时候,也就是从PATH变量去搜索。

PATH变量的临时修改 export PATH="/tmp:$PATH",永久生效将命令放到/etc/profile下,使用source /etc/profile 使得立刻生效。

Linux中文显示设置

查看当前字符编码:

操作前先进行备份:cp /etc/sysconfig/i18n /etc/sysconfig/i18n.oldboy.20161205

注意:客户端字符集需改为UTF-8。

设置Linux服务器时间同步

显示时间:date

修改时间:date –s "时间" àhwclock

显示日历:cal

同步互联网时间:

定时任务执行同步:

下面三种方法是等价的:

/dev/null 空设备(黑洞)

错误和正确都输出到/dev/null:

1、1>/dev/null 2>/dev/null

2、1>/dev/null 2&1

3、&>/dev/null

时间同步架构

小规模时间同步架构:

大规模时间同步架构:

设置Linux默认历史记录数

命令如下,注意此时的配置仅临时生效。

把配置参数放入配置文件,使得永久生效。

TMOUT=10:连接的超时时间控制变量。

HISTSIZE=5:命令行的历史记录数量变量。

HISTFILESIZE=10:历史记录文件的命令行数量变量(~/.bash_history)。

历史记录清空:history -c。

删除指定历史记录:history -d 10(删除10号历史记录)。

加大服务器文件描述符

文件描述符的概念

1、表示形式为整数数字(0——65535)。

2、进程使用的时候会占用文件描述符(标识打开的文件)。

查看默认文件描述符

3、调整文件描述符

方法一:

直接把ulimit -SHn 65535命令加入到/etc/rc.local,然后每次开机启动的时候生效。

写入rc.local:

方法二:

在/etc/sercurity/limits.conf里面配置。

调整内核参数文件/etc/sysctl.conf

vim编辑:shift+g切换到文件结尾

优化参数:

执行生效:sysctl -p

查看网络状态:netstat -an

隐藏Linux版本信息

控制Linux显示版本信息的文件

清空这个两个文件就可以了。

锁定关键系统文件,防止提权被篡改

命令:

解除锁定:chattr -i

为grub菜单加密码

为grub菜单加密码的目的是防止他人修改grub做内核等启动设置。

1、先用/sbin/grub-md5-crypt产生一个MD5密码串。

2、修改grub.conf文件添加

password --md5 $1$T2zU4/$KmlABHIkQGczWjh1DdwWU.。

注意:password要加在splashimage和title之间,否则可能不生效。

禁止Linux系统被ping

命令:

升级具有典型漏洞的软件版本

首先查看相关软件的版本号

执行升级已知漏洞的软件版本到最新。

配置yum源

查看当前yum源

配置阿里云的yum源

wget:下载,wget http://url;-O:下载到指定路径并改名;--spider:爬虫,检查网站是不是好的,不会下载只是检查;-T(--timeout):指定超时时间(--timeout=seconds);--tries:指定重试的次数(--tries=2);-q(--quiet):后台下载,关闭输出;

总结:

1、不用root管理,以普通用户的名义通过sudo授权管理。

2、更改默认的远程连接SSH服务端口,禁止root用户远程连接,甚至要更改为只监听内网IP。

3、定时自动更新服务器时间,使其和互联网时间同步。

4、配置yum更新域,从国内更新源下载安装软件包。

5、关闭SELinux及iptables(在生产场景中,如果有外部IP一般要打开)

6、调整文件描述符的数量,进程及文件的打开都会消耗文件描述符。

7、定时自动清理邮件目录垃圾文件,防止inodes节点被占满。

8、精简并保留必要的开机自启动服务(如crond、sshd、network、rsyslog、stsstat)。

9、Linux内核参数优化/etc/sysctl.conf,执行sysctl -p 生效。

10、更改字符集,使其支持中文。

11、锁定关键系统文件如/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow、/etc/inittab,处理后把chattr、lasttr改名。

12、清空/etc/issue、/etc/issue.net,去除系统及内核版本登录前的屏幕显示。

13、清楚多余的系统虚拟账号。

14、为grub菜单加密码。

15、禁止被ping。

16、升级漏洞软件。

 

less:按屏(空格、page up/page down)或按行(回车)查看文件。

more:按屏(空格)或按行(回车)查看文件,不能向上翻。

Linux目录结构

linux只有一个顶点/(根),其他所有目录都在根下。根下面的所有目录是一个有层次的树状结构,像一颗倒挂着的大树。

tree:显示目录结构,-L:指定显示多少层;-d:只显示目录。

linux的目录结构和磁盘分区是分离的,可以自由组合。

/

├── bin    àEssential command binaries

├── boot    àStatic files of the boot loader

├── dev    àDevice files

├── etc    àHost-specific system configuration

├── home    àUser home directories(optional)

├── lib    àEssential shared libraries and kernel modules

├── lib64

├── lost+found

├── media

├── mnt    àMount point for mounting a filesystem temporarily

├── oldboy

├── opt    àAdd-on application software packages

├── proc    à进程信息及内核信息(cpu、硬盘分区、内存信息等)

├── root    àHome directory for the root user(optional)

├── sbin    àEssential system binaries

├── selinux

├── srv

├── sys

├── tmp    àTemporary files

├── usr    àSecondary hierarchy

└── var    àVariable data

cat /proc/meminfo    à内存信息

cat /proc/cpuinfo àcpu信息

cat /proc/mounts     à挂载信息

cat /proc/loadavg à负载(系统繁忙程度)

小结:

1、linux系统的所有目录时一个有层次的倒着的树状目录结构,/根是所有目录的起点。

2、不同的目录数据可以跨越不同的磁盘分区或不同的磁盘设备。

/dev/ 设备目录

/etc/ 系统配置即服务配置文件、启动命令的目录

/proc 显示内核及进程信息的虚拟文件系统

/tmp 临时文件目录

/home 普通用户家目录

/root 超级管理员的家目录

/var 变化的目录,一般是日志文件,cache的目录

/usr 用户程序及数据、帮助文件、二进制命令等的目录

/bin、/sbin、/usr/sbin 用户命令的目录

Linux重要目录路径

/etc/sysconfig/network-scripts/ifcfg-eth0:配置网络地址及GW等。

IPADDR=10.0.0.7 #addr是IP地址

NETMASK=255.255.255.0 #子网掩码,划分网络位和主机位10.0.0.0/24

GATEWAY=10.0.0.254 #网关地址,路由器的地址

修改配置生效命令:

ifup:启动

ifdown:关闭

/etc/resolv.conf:DNS管理

小结:

1、客户端DNS可以在网卡配置文件里设置(ifcfg-eth0)。

2、客户端DNS也可以在/etc/resolv.conf里设置。

3、网卡里的设置DNS优先于/etc/resolv.conf。

/etc/hosts:设定用户IP与域名的对应解析表

对应windows的文件C:\Windows\System32\drivers\etc\hosts。

hosts在企业里的作用:

1、开发、产品、测试等人员,用于通过正式的域名测试产品。

2、服务器之间的调用可以用域名(内部的DNS),方便迁移。

/etc/sysconfig/network:修改机器名及网卡启动,网关等配置。

更改主机名:

1、vi /etc/sysconfig/network

2、hostname 主机名

同时修改。

/etc/fstab:设置文件系统挂载信息的文件,使得开机能够自动挂载磁盘分区

 

fsck:磁盘检查(不要检查好磁盘),卸载的状态

挂载方式:

1、命令挂载

mount -t ext4 -o noexec /dev/sda1 /mnt

2、/etc/fstab

 

测试手动挂载:

1、创建一个虚拟的块设备。

dd if=/dev/zero of=/dev/sdb1 bs=4906 count=100

2、格式化

mkfs.ext4 /dev/sdb1

3、挂载

mount -t ext4 -o loop,noatime,noexec /dev/sda1 /mnt

4、查看

df -h

第一列挂载的设备可以是设备名或UUID、磁盘标签。

fstab出问题,修复方式:

1、开机提示输入密码修复。

2、救援模式rescue修改/etc/fatab只读状态,mount -o rw,remount /。

/etc/rc.local:用于存放开机自启动程序命令的文件

让一个程序开机启动:

1、chkconfig(/etc/init.d/sshd)。

2、放入/etc/rc.local。

选择建议:/etc/rc.local,工作中把/etc/rc.local作为服务器档案文件,所有程序开机启动放入/etc/rc.local并加注释。

rc.local与fstab区别:rc.local在系统启动完成最后加载。

NFS网络文件系统挂载是,网卡还没启动,就已经加载fstab。(mount -t nfs 10.0.0.7:/data /mnt)

/etc/inittab:设定系统启动时init进程将把系统设置成什么样的runlevel运行级别及加载相关的级别对应启动文件设置

Linux启动过程:

1、开机BIOS自检

2、MBR引导

硬盘0柱面0磁盘1扇区的前446byte。

3、grub引导菜单

cat /etc/grub.conf

4、加载内核kernel

5、启动init进程

ps -ef|grep init

/etc/init.d

/etc/profile:系统全局环境变量永久生效的配置文件

/etc/profile.d:登录后执行的脚本所在地

/etc/motd:登录后显示的字符串

/etc/issue:记录用户登录前显示的系统版本等信息

/etc/group:设定用户的组名与相关信息

/etc/passwd:账号信息文件

/etc/shadow:密码信息文件

/etc/gshadow:组密码信息文件

/etc/sudoers:可以执行使用sudo命令的配置文件

visudo -c:检查语法

yum remove tree -y:yum删除(会删除依赖,慎用)

/var/log/messages:系统日志,自动轮询按周(rsyslog)

/var/log/secure:安全日志,SSH连接日志

dmesg:内核打印的错误信息,例如硬件故障

/var/spool/cron/root:定时任务crond配置文件

/proc/mounts:设备挂载信息与df -h类似

相关内容

    暂无相关文章