Ⅰ linux 如何启动/关闭 X 服务
1、利用ntsysv命令进行设置。
Ⅱ linux如何禁止某个ip连接服务器
两个文件是控制远程访问设置的,通过设置这个文件可以允许或者拒绝某个ip或者ip段的客户访问linux的某项服务。
如 果请求访问的主机名或IP不包含在/etc/hosts.allow中,那么tcpd进程就检查/etc/hosts.deny。看请求访问的主机名或 IP有没有包含在hosts.deny文件中。如果包含,那么访问就被拒绝;如果既不包含在/etc/hosts.allow中,又不包含在/etc /hosts.deny中,那么此访问也被允许。
文件的格式为:<daemon list>:<client list>[:<option>:<option>:...]
daemon list:服务进程名列表,如telnet的服务进程名为in.telnetd
client list:访问控制的客户端列表,可以写域名、主机名或网段,如.python.org或者192.168.1.
option:可选选项,这里可以是某些命令,也可以是指定的日志文件
文件示例:hosts.deny文件
in.telnetd:.python.org
vsftpd:192.168.0.
sshd:192.168.0.0/255.255.255.0
第一行vpser.net表示,禁止python.org这个域里的主机允许访问TELNET服务,注意前面的那个点高老(.)。
第二行表示,禁止192.168.0这个网段的用户允许访问FTP服务,注意0后面的点(.)。
Ⅲ Linux服务管理(如何关闭或禁用不需要的服务
在安装Linux操作系统时,一些不必要的数据包和应用程序会在用户不注意的情况下自动安装。在本文中,我们将讨论如何将Linux系统中一些不必要的应用程序和服务禁用,以保护你的系统资源。
首先让我们来看看系统中正在运行哪些服务。使用以下命令:
输出结果
现在让我们使用下面的netstat命令快速浏览接受连接的进程(端口)。
输出结果
从上面的输出结果中,你会发现一些不需要在服务器上运行的应用程序,如:
1. smbd and nmbd
smbd和nmbd是Samba的后台进程。你真的需要在Windows或其他机器上输出smb分享吗?如果不是,为什么运行这些进程呢?
你可以在下一次机器启动时关闭开机启动设置,这样就能安全地关闭或禁用这些进程。
2. Telnet
你需要通过互联网或者局域网进行适合文本形式的通讯吗?如果不是的话,在机器启动时关闭这个进程吧。
3. rlogin
你需要通过网络登录到另一个主机吗?如果不需要的话,那么在机器启动时关闭这个进程的开启启动功能。
4. rexec
远程进程执行rexec允许你在远程计算机上执行shell命令。如果你不需要在远程机器上执行shell命令,请关闭该进程。
5. FTP
你需要将一个主机上的文件通过网络转移到另一个主机上吗?如果不需要,你可以停止FTP服务。
6. automount
你需要自动挂载不同的文件系统,弹出网络文件系统吗?如果不是,为什么要运行这个进程,为什么要让这个应用程序占用你的资源呢?关闭它的自动启动功能吧。
7. named
你需要运行域名服务器(DNS)吗?如果不是,你应该关掉这个进程,释放你的资源。先关闭正在运行的进程,然后关闭开机启动设置。
8. lpd
lpd是打印机的后台进程。如果你不需要从服务器打印,该进程会消耗你的系统资源。
9. Inetd
你运行inetd服务吗?如果你正在运行独立应用程序,如ssh,ssh会使用其他独立的应用程序,比如Mysql、Apache等。如果你不需要inetd,最后在下次自动启动时关闭掉。
10. portmap
Portmap是一个开放网络计算远程过程调用(ONC RPC),启用后台进程rpc.portmap和rpcbind。如果这些进行运行,意味着你正在运行NFS服务器。如果你没有注意到NFS服务器运行的话,意味着你的系统资源正在消耗。
如何在Linux系统中杀死一个进程
可以使用“Kill PID”命令杀死一个在Linux中运行的进程。但是在运行Kill命令之前,我们必须了解进程的PID。例如,我想找“cupsd”进程的PID。
那么“cupsd”进程的PID是1511。运行下面的命令杀死该PID。
如何禁用Linux服务
对于红帽发行版如Fedora和CentOS,利用“chkconfig”脚本来启用和禁用Linux系统中运行的服务。
例如,在系统启动时禁用Apache web服务器。
对于基于Den的发行版如Ubuntu、Linux Mint和其他Debian发行版,使用一个叫做update-rc.d的脚本。
例如,在系统启用时使用下面的命令禁用Apache服务。这里“- f”选项代表强制性。
做了这些变更之后,系统下次启动时不会再运行这些没有必要的进程,从而为我们节约了系统资源。服务器将会更实用、快速、安全。
Ⅳ linux关闭服务命令
在linux中关闭一些没有的服务可以释放系统资源,那么我们要怎么关闭服呢?下面由我为大家整理了linux关闭服务的相关命令,希望对大家有所帮助。
1.linux关闭服务原因
服务器的本质是为各种服务提供访问功能。使服务器只运行所需的服务,关闭没有使用的服务。这样做不仅会释放一些系统资源,而且也会使服务器变得更加安全。比如,如果只是运行一个简单的服务器,显然不需要X显示或者桌面环境。如果不需要Windows网络共享功能,则可以放心关闭Samba。
2.linux关闭服务命令
使用下面的命令能查看伴随系统启动而启动的服务:
代码如下:
chkconfig --list | grep "3:on"
如果系统运行了systemd,执行这条命令:
代码如下:
systemctl list-unit-files --type=service | grep enabled
然后使用下面的命令关闭服务:
代码如下:
chkconfig service off
或
代码如下:
systemctl disable service
在上面的例子中,把“service”替换成真正想要停止的服务名称。实例如下:
代码如下:
chkconfig httpd off
或
代码如下:
systemctl disable httpd
Ⅳ Liunx系统下如何禁止telnet、FTP等服务
1.
编辑/etc/inetd.conf文件,在其中就可以禁用包括telnet、FTP、imap、talk及finger等在内的服务。
2.
用chmod 600 /etc/inetd.conf命令修改该文件的权限。
3.
再运行killall –HUP inet使修改生效。
另一种方法就是使用TCP会绕程度来限制对本机上述服务的访问:
1.
修改/etc/hosts.deny为“ALL: ALL”拒绝所有对本机的访问。
2.
然后在/etc/hosts.allow中分别添加允许访问的服务与对应主机的IP行。如:telnet:192.168.1.2/255.255.255.0 liuyuan。
3.
可以用tcpdchk来检查这两个文件设置的正确性。还有不会的请参考《linux就该这么学》,针对各种linux疑难杂症,帮助linux学习者。
Ⅵ Linux命令
快照功能:记录当前的硬盘的状态。刚建快照时快照占用内存为0,标记了当前硬盘的存储状态。当虚拟机对快照标记的内容改写时,会将改写的内容存储进快照,与未改写的部分整合得到完整的快照。当快照标记的部分被完全改写,那么快照存储空间完整记录了当时拍摄时的内存状态。
参数形式
第一种:参数用一横的说明后面的参数是字符形式。
第二种:参数用两横的说明后面的参数是单词形式。
第三种:参数前有横的是 System V风格。
第四种:参数前没有横的是 BSD风格。
cat、more、less、head、tail命令的比较:
cat命令可以一次显示整个文件,如果文件比较大,使用不是很方便;
more命令可以让屏幕在显示满一屏幕时暂停,按空格往前翻页,按b往后翻页。
less命令也可以分页显示文件,和more命令的区别就在于: 支持上下键卷动屏幕、查找;不需要在一开始就读取整个文件,打开大文件时比more、vim更快。
head命令用于查看文件的前n行。
tail命令用于查看文件的后n行,加上-f命令,查看在线日志非常方便,可以打印最新增加的日志。
一般模式:
编辑模式:
命令模式:
编码
多行操作(列编辑模式)
插入:ctrl+v进入列编辑模式,上下移动光标选择需要插入的位置,然后输入大写I,输入需要文本,最后按esc键退出,就会发现文本会在选择的多行中插入。
删除:ctrl+v进入列编辑模式,上下移动光标选中需要删除的部分,然后按d,就会删除选中的内容。
①head:显示文件头部内容
②tail:输出文件尾部内容
注意:用vim和vi修改内容会删除源文件并生成新文件,所以tail -f会失效。需要用到
追加和覆盖语句(>或>>),才能被tail -f监视到。
一般用于查看小文件
查看压缩文件中的文本内容
例:
①more:文件内容分屏查看器
②less:分屏显示文件内容,效率比more高
1、简单读取
运行脚本如下
测试结果为:
2、-p 参数,允许在 read 命令行中直接指定一个提示。
运行脚本如下
测试结果为:
echo [选项] [输出内容] (输出内容到控制台)
输出给定文本的sha256加密后的内容
①显示当前时间信息
②显示当前时间年月日
③显示当前时间年月日时分秒
④显示昨天
⑤显示明天时间
⑥显示上个月时间
需要注意的是取下个月的命令存在bug,执行如下命令会得到21-10,但是正常应该得到21-09,需要注意
date -d "2021-08-31 +1 month" +%y-%m
⑦修改系统时间
⑧获取当前时间戳
获取秒时间戳: date +%s
获取毫秒时间戳:$[ (date +%s%N) /1000000]
查看日历
(1)查看当前月的日历
(2)查看2017年的日历
例:
对比gzip/gunzip,zip/unzip可以压缩文件和目录且保留源文件。
①zip:压缩
②unzip:解压缩
只能压缩文件不能压缩目录,不保留原来的文件。
gzip 文件 (只能将文件压缩为*.gz文件)
gunzip 文件.gz (解压缩文件命令)
例: crontab -e
(1)进入crontab编辑界面。会打开vim编辑你的工作。
(2)每隔1分钟,向/root/longma.txt文件中添加一个11的数字
*/1 * * * * /bin/echo ”11” >> /root/longma.txt
(3)可以用tail -f 目标文件来实施监控追加的内容
查看日志
可以用tail -f /var/log/cron.log观察
Cron表达式见文章: https://www.jianshu.com/writer#/notebooks/46619194/notes/75177408
ls [选项] [目录或是文件]
cd [参数]
例: cd -P $(dirname $p1) ; pwd 先跳转到文件的所在目录,再打印$p1文件的实际路径
概述
①cp():只能在本机中复制
②scp(secure ):可以复制文件给远程主机
scp -r test.sh hxr@hadoop102:/root
③rsync(remote sync):功能与scp相同,但是不会改文件属性
rsync -av test.sh test.sh hxr@hadoop102:/root
④nc(netcat):监听端口,可以实现机器之间传输文件。
nc -lk 7777 (-l表示listen,-k表示keep)
强制覆盖不提示的方法:cp
例:scp -r test.sh hxr@bigdata1:/root
例:rsync -av test.sh hxr@bigdata1:/root
例:
nc -lp 10000 > nc_test.txt
nc -w 1 hadoop102 < nc_test.txt
远程登录时默认使用的私钥为~/.ssh/id_rsa
生成密钥对
将公钥发送到本机
将密钥发送到需要登录到本机的服务器上
修改密钥的权限
远程登陆
如果有多个节点需要远程登陆,可以在.ssh下创建config并输入
再次登陆
①正向代理:
②反向代理:
所谓“反向代理”就是让远端启动端口,把远端端口数据转发到本地。
HostA 将自己可以访问的 HostB:PortB 暴露给外网服务器 HostC:PortC,在 HostA 上运行:
那么链接 HostC:PortC 就相当于链接 HostB:PortB。
使用时需修改 HostC 的 /etc/ssh/sshd_config 的一条配置如下,不然启动的进程监听的ip地址为127.0.0.1,即只有本机可以访问该端口。
相当于内网穿透,比如 HostA 和 HostB 是同一个内网下的两台可以互相访问的机器,HostC是外网跳板机,HostC不能访问 HostA,但是 HostA 可以访问 HostC。
那么通过在内网 HostA 上运行 ssh -R 告诉 HostC,创建 PortC 端口监听,把该端口所有数据转发给我(HostA),我会再转发给同一个内网下的 HostB:PortB。
同内网下的 HostA/HostB 也可以是同一台机器,换句话说就是 内网 HostA 把自己可以访问的端口暴露给了外网 HostC。
例: 比如在我的内网机192.168.32.244上有一个RabbitMQ的客户端,端口号为15672。现在我希望在外网上访问固定ip的云服务器chenjie.asia的6009端口,通过跳板机192.168.32.243来转发请求到192.168.32.244:15672,从而实现在外网访问内网服务的功能,即内网穿透。
①在192.168.32.244上启动RabbitMQ服务
②将chenjie.asia云服务器的私钥复制到跳板机192.168.32.243的~/.ssh下,并重命名为id_rsa。通过如下命令看是否可以远程登陆到云服务,可以登陆则进行下一步。
③修改chenjie.asia服务器的ssh配置文件 /etc/ssh/sshd_config ,允许其他节点访问
然后重启sshd服务
④在跳板机192.168.32.243启动ssh反向代理
这个进程在关闭session时会停止,可以添加启动参数 -CPfN
例:
以 root 身份执行的程序有了所有特权,这会带来安全风险。Kernel 从 2.2 版本开始,提供了 Capabilities 功能,它把特权划分成不同单元,可以只授权程序所需的权限,而非所有特权。
例如:linux不允许非root账号只用1024以下的端口,使用root启动命令nginx,会导致nginx权限过高太危险。所以用setcap命令
sudo setcap cap_net_bind_service=+eip /bigdata/nginx/sbin/nginx
正确的关机流程为 :sync > shutdown > reboot > halt
(1)sync (功能描述:将数据由内存同步到硬盘中)
(2)halt (功能描述:关闭系统,等同于shutdown -h now 和 poweroff)
(3)reboot (功能描述:就是重启,等同于 shutdown -r now)
(4)shutdown [选项] [时间]
安装
yum install -y telnet-server telnet
ls -i 显示文件的节点号
find -inum 节点号 -delete 删除指定的节点即可删除对应的文件
启动一个服务: systemctl start postfix.service
关闭一个服务: systemctl stop postfix.service
重启一个服务: systemctl restart postfix.service
显示一个服务的状态: systemctl status postfix.service
在开机时启用一个服务: systemctl enable postfix.service
在开机时禁用一个服务: systemctl disable postfix.service
注:在enable的时候会打印出来该启动文件的位置
列出所有已经安装的服务及状态:
systemctl list-units
systemctl list-unit-files
查看服务列表状态:
systemctl list-units --type=service
查看服务是否开机启动: systemctl is-enabled postfix.service
查看已启动的服务列表: systemctl list-unit-files | grep enabled
查看启动失败的服务列表: systemctl --failed
查看服务日志: journalctl -u postfix -n 10 -f
命令类似systemctl,用于操作native service。
添加脚本为服务(需要指定启动级别和优先级): chkconfig --add [脚本]
删除服务: chkconfig --del [脚本]
单独查看某一服务是否开机启动的命令 : chkconfig --list [服务名]
单独开启某一服务的命令 : chkconfig [服务名] on
单独关闭某一服务的命令: chkconfig [服务名] off
查看某一服务的状态: /etc/intd.d/[服务名] status
启用服务就是在当前"runlevel"的配置文件目录 /etc/systemd/system/multi-user.target.wants 里,建立 /usr/lib/systemd/system 里面对应服务配置文件的软链接;禁用服务就是删除此软链接,添加服务就是添加软连接。
su 用户名称 (切换用户,只能获得用户的执行权限,不能获得环境变量)
su - 用户名称 (切换到用户并获得该用户的环境变量及执行权限)
echo $PATH 打印环境变量
设置普通用户具有root权限
修改 /etc/sudoers 文件,找到下面一行(91行),在root下面添加一行,如下 所示:
或者配置成采用sudo命令时,不需要输入密码
修改完毕,现在可以用hxr 帐号登录,然后用命令 sudo ,即可获得root权限进行操作。
以azkaban用户执行引号中的命令
gpasswd -d [username] [groupname] 将用户从组中删除
gpasswd -a [username] [groupname] 将用户加入到组中
用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对 /etc/group文件的更新。
0首位表示类型 - 代表文件 d 代表目录 l 链接文档(link file)
三种特殊权限suid、sgid、sticky
例子:
变更文件权限方式一
例:chmod u-x,o+x houge.txt
变更文件权限方式二
例:chmod -R 777 /mnt/ 修改整个文件夹的文件权限
在linux中创建文件或者目录会有一个默认权限的,这个默认权限是由umask决定的(默认为0022)。umask设置的是权限的“补码”,而我们常用chmod设置的是文件权限码。一般在/etc/profile 、~/.bashprofile 或者 ~/.profile中设置umask值。
umask计算
如root用户的默认umask为0022(第一个0 代表特殊权限位,这里先不考虑),创建的文件默认权限是644(即默认666掩上umask的022),创建的目录是755(即默认777掩上umask的022)。
对于root用户的umask=022这个来说,777权限二进制码就是(111)(111)(111),022权限二进制码为(000)(010)(010)。
上面就是一个umask的正常计算过程,但是这样实在是太麻烦了。我们使用如下的简单的方法快速计算。
上面的这个方法计算是非常方便的, 为何得到奇数要+1呢?
文件的最大权限是666,都是偶数,你得到奇数,说明你的umask有奇数啊,读为4,写为2,都是偶数,说明你有执行权限的。
就按照上面的umask=023为例,在计算其他用户权限的时候6-3=3 ,6是读写,3是写和执行,其实应该是读写权限减去读权限的得到写权限的,相当于我们多减去了一个执行权限。所以结果加1。
umask修改
如果想单独修改某个文件夹的新建文件的权限,可以使用setfacl命令。
例:递归改变文件所有者和所有组 chown -R hxr:hxr /mnt
例: