linux卸载openjdk_Linux系列(七)——linux其他指令【rpm、yum、sudo】

1、rpm和yum

1.1、介绍

rpm: rpm 是由 Red Hat 公司开发的一种软件包管理方式,使用 rpm 我们可以方便的进行软件的安装、查询、卸载等工作,但是使用 rpm 命令安装 rpm 软件包,不能自己解决软件包之间的依赖性问题,需要自己一个一个去安装依赖的软件包。yum: Yum(全称为 Yellow dog Updater, Modified):是一个在 RedHat、Fedora 以及 CentOS中的一种软件包管理器,它基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且进行安装,可以自动处理软件包之间的依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

区别?

rpm只能安装一个指定的软件包,如果该软件包存在依赖性关系,比如安装A包,需要先安装B包,采用rpm就要先安装B,再安装A;
而采用yum则能自动检测软件包之间的依赖关系,可以直接yum安装A包,yum能检测到A与B的依赖关系,自动安装B包;

1.2、rpm总结

安装rpm包的软件:rpm -ivh xxx.rpm查看是否安装了某个rpm包:rpm -qa | grep xxx
例如:rpm -qa | grep java ,查看有关 java 程序的安装包.

1da2ea0ba1b984c8944425a4e0c9986b.png删除某个 rpm 安装包:rpm -e xxx.rpm

1.3、yum总结

①查找软件包命令:yum search 安装包名称中的部分关键字
例如:yum search java | grep JDKab17fd54bc045eec134eb73298c61a7a.png②安装指定的软件命令:yum install 安装包名称
安装 openJdk ,开源的 java 虚拟机。
例如:yum install java-1.7.0-openjdk

③删除软件包命令:yum remove 安装包名称
删除 openJdk
例如:yum remove java-1.7.0-openjdk

④列出所有已安装的软件包命令:yum list installed15ceae5536667b7b462490e00b639191.png⑤清除已安装软件包的下载文件命令:yum clean all(yum 命令下载的安装包都放在/var/cache/yum 目录)

⑥指令总结:

yum常用命令:1.列出所有可更新的软件清单命令:yum check-update2.更新所有软件命令:yum update3.仅安装指定的软件命令:yum install 4.仅更新指定的软件命令:yum update 5.列出所有可安裝的软件清单命令:yum list6.删除软件包命令:yum remove 7.查找软件包 命令:yum search 8.清除缓存命令:yum clean packages: 清除缓存目录下的软件包yum clean headers: 清除缓存目录下的 headersyum clean oldheaders: 清除缓存目录下旧的 headersyum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的headers

1.4、使用yum安装jdk

①、查找jdk版本:

yum -y list Java*

be108b04ca4359fdd0ab523888de2fac.png

②、根据需要,安装需要的jdk版本,这里安装jdk1.8

yum install -y java-1.8.0-openjdk-devel.x86_64

安装完毕,查看版本

java -version

yum安装的jdk目录位置为:usr/lib/jvm

③、配置环境变量
切换目录:cd /usr/lib/jvm
将jdk的位置配置到/etc/profile即可。

vim /etc/profile

JAVA_HOME的位置换成自己的路径即可。931183299e3828e2538c3727c8471ae3.png
环境变量立即生效。

source /etc/profile

2、sudo指令

2.1、sudo介绍

sudo是linux下常用的允许普通用户使用超级用户权限的工具,允许系统管理员让普通用户执行一些或者全部的root命令,如halt,reboot,su等等。这样不仅减少了root用户的登陆和管理时间,同样也提高了安全性。Sudo不是对shell的一个代替,它是面向每个命令的。它的特性主要有这样几点:

1、sudo能够限制用户只在某台主机上运行某些命令。
2、sudo提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志服务器。
3、sudo使用时间戳文件–日志 来执行类似的“检票”系统。当用户调用sudo并且输入它的密码时,用户获得了一张存活期为5分钟的票(这个值可以在编译的时候改变)。
4、sudo的配置文件是/etc/sudoers,属性必须为0440,它允许系统管理员集中的管理用户的使用权限和使用的主机。

2.2、语法

sudo [ -Vhl LvkKsHPSb ] │ [ -p prompt ] [ -c class│- ] [ -a auth_type ] [-u username│#uid ] command

参数:

-V 显示版本编号
-h 会显示版本编号及指令的使用方式说明
-l 显示出自己(执行 sudo 的使用者)的权限
-v 因为 sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过 N 分钟,也会问密码
-k 将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)
-b 将要执行的指令放在背景执行
-p prompt 可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称, %h 会显示主机名称
-u username/#uid 不加此参数,代表要以 root 的身份执行指令,而加了此参数,可以以 username 的身份执行指令(#uid 为该 username 的使用者号码)
-s 执行环境变数中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell
-H 将环境变数中的 HOME (家目录)指定为要变更身份的使用者家目录(如不加 -u 参数就是系统管理者 root )
command 要以系统管理者身份(或以 -u 更改为其他人)执行的指令

2.3、测试案例一

定义一个用户(user1)使其拥有添加用户的特殊权限,并进行创建用户操作。

①、创建用户user1创建密码e81baeee28418bcb7ef41579596fb9d0.png

②、修改配置文件,为user1添加特殊权限useradd

vim /etc/sudoers

添加下面一行:9ac7b17a36373fbed7903be511e83685.png

这里的/usr/sbin/useradd表示普通用户执行时必须使用全路径

③、切换到用户user1,验证特殊权限

[root@centos7 user1]# su user1[user1@centos7 ~]$ sudo -l[sudo] user1 的密码:匹配 %2$s 上 %1$s 的默认条目:    !visiblepw, always_set_home, match_group_by_gid, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2    QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME    LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin用户 user1 可以在 centos7 上运行以下命令:    (root) /usr/sbin/useradd[user1@centos7 ~]$

user1执行useradd操作:

[user1@centos7 ~]$ sudo /usr/sbin/useradd user2 #添加用户user2[user1@centos7 ~]$ tail -1 /etc/passwd user2:x:1005:1006::/home/user2:/bin/bash  # 添加成功[user1@centos7 ~]$

④、切换回root查看日志/vat/log/secure

[root@centos7 user1]# tail /var/log/secureNov 19 11:34:24 centos7 unix_chkpwd[33386]: password check failed for user (user1)Nov 19 11:34:24 centos7 sudo: pam_unix(sudo:auth): authentication failure; logname=root uid=1004 euid=0 tty=/dev/pts/0 ruser=user1 rhost=  user=user1Nov 19 11:34:28 centos7 sudo:   user1 : command not allowed ; TTY=pts/0 ; PWD=/home/user1 ; USER=root ; COMMAND=listNov 19 11:35:01 centos7 su: pam_unix(su:session): session opened for user root by root(uid=1004)Nov 19 11:35:27 centos7 su: pam_unix(su:session): session opened for user user1 by root(uid=0)Nov 19 11:35:34 centos7 sudo:   user1 : TTY=pts/0 ; PWD=/home/user1 ; USER=root ; COMMAND=listNov 19 11:36:45 centos7 sudo:   user1 : TTY=pts/0 ; PWD=/home/user1 ; USER=root ; COMMAND=/usr/sbin/useradd user2##user1以管理员身份执行了useradd命令,添加用户user2Nov 19 11:36:45 centos7 useradd[33547]: new group: name=user2, GID=1006Nov 19 11:36:45 centos7 useradd[33547]: new user: name=user2, UID=1005, GID=1006, home=/home/user2, shell=/bin/bashNov 19 11:37:56 centos7 su: pam_unix(su:session): session opened for user root by root(uid=1004)

⑤、-k参数示例

[root@localhost ~]# su - tom[tom@localhost ~]$ sudo -k    ##结束密码有效期[tom@localhost ~]$ sudo /usr/sbin/useradd test2[sudo] password for tom:     ##有效期结束后,执行特殊命令,需重新验证密码[tom@localhost ~]$ tail -1 /etc/passwdtest2:x:502:502::/home/test2:/bin/bash    #添加test2成功

2.4、测试案例二【配置别名】

①、visudo指令可以在在配置文件中定义别名

[root@localhost ~]# visudoHost_Alias USERHOSTS = 172.16.0.0/16,127.0.0.0/8,192.168.0.0/24    ##定义主机别名,可以在哪些机器执行特殊命令Cmnd_Alias    USERADMIN=/usr/sbin/useradd,/usr/sbin/usermod,/usr/sbin/userdel    ##定义命令别名root    ALL=(ALL)       ALLtom     ALL=(root)      USERADMIN    ##此处定义tom可以执行别名USERADMIN中的所有命令tom     USERHOSTS=(ROOT)        USERADMIN    ##可以在别名USERHOSTS中机器上执行别名USERADMIN中的命令

a3e4941a6d1569b4bada069eac4a4c67.png

595ea76a2d042c2e0be5c34c08bff4cf.png

[root@centos7 user1]# su user1[user1@centos7 ~]$ sudo /usr/sbin/userdel -r user2[sudo] user1 的密码:[user1@centos7 ~]$ tail -1 /etc/passwduser1:x:1004:1005::/home/user1:/bin/bash # 说明user1继承了USERADMIN组中的权限。

②、设禁止某用户执行某操作

vim /etc/sudoers

363f6cb146b0d095a2b235968a8a3a45.png

[user1@centos7 ~]$ sudo passwd test1   # 更改普通用户密码,成功更改用户 test1 的密码 。新的 密码:重新输入新的 密码:passwd:所有的身份验证令牌已经成功更新。[user1@centos7 ~]$ sudo passwd root # 更改root用户密码失败。对不起,用户 user1 无权以 root 的身份在 centos7 上执行 /bin/passwd root。

③、设置某些权限,无需输入密码

vim /etc/sudoers

09d37aea26b27bb5ab41ff19acba1f32.png

[root@localhost ~]# su - tom[tom@localhost ~]$ sudo /usr/sbin/useradd test3[sudo] password for tom:[tom@localhost ~]$ sudo -k[tom@localhost ~]$ sudo /usr/sbin/useradd test4[sudo] password for tom:     ##useradd每次都需要输入密码[tom@localhost ~]$ sudo -k[tom@localhost ~]$ sudo /usr/sbin/userdel test3    ##执行userdel没有要求输入密码,NOPASSWD设置生效[tom@localhost ~]$ tail -3 /etc/passwdtom:x:500:500::/home/tom:/bin/bashtest1:x:501:501::/home/test1:/bin/bashtest4:x:503:503::/home/test4:/bin/bash

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/501919.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql 为数据表添加字段_MySQL数据表添加字段实例

MySQL 允许在开头、中间和结尾处添加字段。针对不同的位置,MySQL数据表添加字段的方式也有所不同,下面我们一起来看MySQL数据表添加字段的实例,方便我们理解MySQL数据表添加字段的方式。MySQL数据表添加字段分为开头、 中间和末尾三种情况&am…

postgresql 客户端_一款功能强大的数据库客户端:DataGrip

前言在我们日常的程序开发中,很大一部分时间是在与数据库打交道。查数据,导数据,检查SQL执行计划,优化SQL等,是我们数据库开发工作的重要组成部分,而且很多时候我们会使用到多款数据库,如Oracle…

mysql主从同步报错_mysql主从同步报错

主从不同步,经查看发现如下报错Last_Errno: 1666​Last_Error: Error executing row event: Cannot execute statement: impossible to write to binary log since statement is in row format and BINLOG_FORMAT STATEMENT.问题原因:主从复制&#xff…

java 等待几秒_问懵逼:请站在 JVM 角度谈谈 Java 的锁?

存在的问题自旋锁自适应自旋Java 对象的内存布局(重要)synchronized 锁升级流程偏向锁轻量级锁重量级锁可重入悲观锁(互斥锁、排他锁)《Java 2019 超神之路》《Dubbo 实现原理与源码解析 —— 精品合集》《Spring 实现原理与源码解析 —— 精品合集》《MyBatis 实现原理与源码解…

python定义test方法_向python/django失败的测试方法的详细信息中添加自定义/调试消息的任何方法unittest.TestCase?...

通常,您希望从django的unittest类TestCase继承,可以从django.测试. 也就是说,您可以将msg参数传递给您要评估的任何内容,其中包含失败消息。在以下是“人性化”的一个例子:class HumanizeTests(TestCase):def humanize…

mysql 创建新用户权限_MySQL创建新用户以及权限授予

1.通过mysql数据库的user表查看用户相关信息mysql> use mysql;mysql> select host,user from user;查看用户相关信息2.创建数据库mysql> create database [databasename] default character set utf8 collate utf8_general_ci;3.创建新用户mysql> create user user…

中秋祝福网页_中秋客户维系关怀,该送客户什么礼品?

企业节日礼品是企业间或者商务伙伴之间相互传达美好情意的一种体现,无论是送领导、送员工、还是送合作伙伴,礼品定制都需要根据不同赠送对象来细心选择。如果想要礼品有创意同时又能表达企业理念,进而达到宣传推广或者品牌认知提升的效果&…

ubuntu php mysql5.6_Ubuntu16.04搭建php5.6Web服务器环境

Ubuntu 16.04默认安装php7.0环境,但是php7目前对某些旧系统的兼容性并不是很好,如果自行安装php5需要清除php7的已安装包,否则会报错。移除默认及已安装的PHP包sudo dpkg -l | grep php| awk {print $2} |tr "\n" " "sud…

浏览器svg插件_Archer-svgs: 异步加载svg方案

Github地址: ShanaMaid/archer-svgs哇哦!无限的svgs!你可以使用archer-svgs去异步加载svg并将它缓存在localStorage里,当你再次使用已经加载过的svg时将不需要再发起http请求。将svgs从你的js-bunlde里移除,并且永远减小js-bunlde的体积。&am…

php打开网页执行即执行bat程序_CVE202011107:XAMPP任意命令执行漏洞复现

0x00简介XAMPP是一个把Apache网页服务器与PHP、Perl及MariaDB集合在一起的安裝包,允许用戶可以在自己的电脑上轻易的建立网页服务器。该软件与phpstudy类似。2020年4月1日ApacheFriends官方发布了XAMPP新版本,该更新解决了Windows Platforms CVE-2020-11…

阿里云rocketmq_云原生时代消息中间件的演进路线

作者 | 周礼(不铭) 阿里巴巴集团消息中间件架构师导读:本文整理自作者于 2020 年云原生微服务大会上的分享《云原生时代的消息中间件演进》,主要探讨了传统的消息中间件如何持续进化为云原生的消息服务。关注阿里巴巴云原生公众号…

mongodb mysql配置_Nosql_MongoDB数据库配置以及基本指令

数据库(database)-数据库的服务器-服务器用来保存数据-mongod用来启动服务器-数据库的客户端-客户端用来操作服务器,对数据进行增删改查的操作-mongo用来启动客户端(不能关闭启动的服务器,否则新开的客户端无法连接)扩展:将mongodb设置为系统…

python的pygame库使用方法_python基础教程使用Python第三方库pygame写个贪吃蛇小游戏...

今天看到几个关于pygame模块的博客和视频,感觉非常有趣,这里照猫画虎写了一个贪吃蛇小游戏,目前还有待完善,但是基本游戏功能已经实现,下面是代码:# 导入模块import pygameimport random# 初始化pygame.ini…

mysql爱吃鱼油_鱼油or磷虾油,多油饮食的国人心血管健康如何拯救?

作为美食大国,高油重口的饮食生活习惯直接导致我国心血管病患病率处于逐年上升的阶段,据统计我国现有心血管病患者已达3.3亿人,占总人口的40%以上。许多年轻人心血管健康已经呈现过度损害状况,心血管疾病也不再是中老年专利。因此…

python如何实现选项功能_python几种常用功能如何实现 python几种常用功能实现代码实例...

本篇文章小编给大家分享一下python几种常用功能实现代码实例,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。1、python 程序退出的几种方式import syssys.exit()sys.exit(0)sys.exit(1)或者os._exit()该方法中包含…

小程序promise封装post请求_Promise封装微信小程序的Request请求

回调地狱一向是影响开发和维护的症结所在,无数个success()的嵌套再嵌套,导致代码层级颇深,盘一次逻辑都要费劲千辛万苦,ES6语法中的Promise,便是专为解决JS中异步请求回调的信任问题而存在的,结合小程序目前…

kafka学习_Kafka 学习笔记01

Kafka概念和基本架构概述以下内容来自拉勾课程学习拉勾教育 - 拉勾旗下教育平台一、Kafka介绍Kafka是最初由 Linkedin 公司开发,是一个 分布式、分区的、多副本的、多生产者、多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统&a…

mysql 删除另一个表中的_mysql – 在一个查询SQL中删除两个表中的记录

我有两张桌子EMPGROUP_TBLSEQID | MASTERID | BUSINESS_UNIT | DIVISION | SUB_DIVISION | CLASSIFICATION | SUB_CLASSIFICATION和EMP_MASTERTBLMASTERID | EMPNO | LASTNAME | FIRSTNAME | JOBTITLE | LOCATION |在我的ASP.NET JOBTITLE表中,BUSINESS_UNIT,DIVISION,SUB_DIVI…

python小车行驶路线图_基于python的小车走黑线

【实例简介】一个简单的基于python的小车走黑线项目,结合了OpenCV【实例截图】【核心代码】工科创II-B└── 工科创II-B├── guaidian.jpg├── 草稿│ ├── TT.PY│ ├── huatu.py│ ├── img.png│ └── ss.py├── 编译.py├── 最终版│ …

python tcl smb_python操作samba

最近在部署完xxl-job后,陆续将一些日常性执行的python脚本迁移到上面去;其中部分脚本涉及到对samaba的操作,先后尝试了pysmb、fs.smbfs、pysmbclientpysmb安装:sudo pip2 install pysmb使用from smb.SMBConnection import *class …