linux卸载openjdk_Linux系列(七)——linux其他指令【rpm、yum、sudo】
1、rpm和yum
1.1、介紹
rpm:?rpm 是由 Red Hat 公司開發(fā)的一種軟件包管理方式,使用 rpm 我們可以方便的進(jìn)行軟件的安裝、查詢、卸載等工作,但是使用 rpm 命令安裝 rpm 軟件包,不能自己解決軟件包之間的依賴性問題,需要自己一個(gè)一個(gè)去安裝依賴的軟件包。yum:?Yum(全稱為 Yellow dog Updater, Modified):是一個(gè)在 RedHat、Fedora 以及 CentOS中的一種軟件包管理器,它基于 RPM 包管理,能夠從指定的服務(wù)器自動(dòng)下載 RPM 包并且進(jìn)行安裝,可以自動(dòng)處理軟件包之間的依賴性關(guān)系,并且一次安裝所有依賴的軟件包,無須繁瑣地一次次下載、安裝。
區(qū)別?
rpm只能安裝一個(gè)指定的軟件包,如果該軟件包存在依賴性關(guān)系,比如安裝A包,需要先安裝B包,采用rpm就要先安裝B,再安裝A;
而采用yum則能自動(dòng)檢測(cè)軟件包之間的依賴關(guān)系,可以直接yum安裝A包,yum能檢測(cè)到A與B的依賴關(guān)系,自動(dòng)安裝B包;
1.2、rpm總結(jié)
安裝rpm包的軟件:rpm -ivh xxx.rpm查看是否安裝了某個(gè)rpm包:rpm -qa | grep xxx
例如:rpm -qa | grep java ,查看有關(guān) java 程序的安裝包.
刪除某個(gè) rpm 安裝包:rpm -e xxx.rpm
1.3、yum總結(jié)
①查找軟件包命令:yum search 安裝包名稱中的部分關(guān)鍵字
例如:yum search java | grep JDK②安裝指定的軟件命令:yum install 安裝包名稱
安裝 openJdk ,開源的 java 虛擬機(jī)。
例如:yum install java-1.7.0-openjdk
③刪除軟件包命令:yum remove 安裝包名稱
刪除 openJdk
例如:yum remove java-1.7.0-openjdk
④列出所有已安裝的軟件包命令:yum list installed⑤清除已安裝軟件包的下載文件命令:yum clean all(yum 命令下載的安裝包都放在/var/cache/yum 目錄)
⑥指令總結(jié):
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) :清除緩存目錄下的軟件包及舊的headers1.4、使用yum安裝jdk
①、查找jdk版本:
yum -y list Java*②、根據(jù)需要,安裝需要的jdk版本,這里安裝jdk1.8
yum install -y java-1.8.0-openjdk-devel.x86_64安裝完畢,查看版本
java -versionyum安裝的jdk目錄位置為:usr/lib/jvm
③、配置環(huán)境變量
切換目錄:cd /usr/lib/jvm
將jdk的位置配置到/etc/profile即可。
JAVA_HOME的位置換成自己的路徑即可。
環(huán)境變量立即生效。
2、sudo指令
2.1、sudo介紹
sudo是linux下常用的允許普通用戶使用超級(jí)用戶權(quán)限的工具,允許系統(tǒng)管理員讓普通用戶執(zhí)行一些或者全部的root命令,如halt,reboot,su等等。這樣不僅減少了root用戶的登陸和管理時(shí)間,同樣也提高了安全性。Sudo不是對(duì)shell的一個(gè)代替,它是面向每個(gè)命令的。它的特性主要有這樣幾點(diǎn):
1、sudo能夠限制用戶只在某臺(tái)主機(jī)上運(yùn)行某些命令。
2、sudo提供了豐富的日志,詳細(xì)地記錄了每個(gè)用戶干了什么。它能夠?qū)⑷罩緜鞯街行闹鳈C(jī)或者日志服務(wù)器。
3、sudo使用時(shí)間戳文件–日志 來執(zhí)行類似的“檢票”系統(tǒng)。當(dāng)用戶調(diào)用sudo并且輸入它的密碼時(shí),用戶獲得了一張存活期為5分鐘的票(這個(gè)值可以在編譯的時(shí)候改變)。
4、sudo的配置文件是/etc/sudoers,屬性必須為0440,它允許系統(tǒng)管理員集中的管理用戶的使用權(quán)限和使用的主機(jī)。
2.2、語法
sudo [ -Vhl LvkKsHPSb ] │ [ -p prompt ] [ -c class│- ] [ -a auth_type ] [-u username│#uid ] command
參數(shù):
-V 顯示版本編號(hào)
-h 會(huì)顯示版本編號(hào)及指令的使用方式說明
-l 顯示出自己(執(zhí)行 sudo 的使用者)的權(quán)限
-v 因?yàn)?sudo 在第一次執(zhí)行時(shí)或是在 N 分鐘內(nèi)沒有執(zhí)行(N 預(yù)設(shè)為五)會(huì)問密碼,這個(gè)參數(shù)是重新做一次確認(rèn),如果超過 N 分鐘,也會(huì)問密碼
-k 將會(huì)強(qiáng)迫使用者在下一次執(zhí)行 sudo 時(shí)問密碼(不論有沒有超過 N 分鐘)
-b 將要執(zhí)行的指令放在背景執(zhí)行
-p prompt 可以更改問密碼的提示語,其中 %u 會(huì)代換為使用者的帳號(hào)名稱, %h 會(huì)顯示主機(jī)名稱
-u username/#uid 不加此參數(shù),代表要以 root 的身份執(zhí)行指令,而加了此參數(shù),可以以 username 的身份執(zhí)行指令(#uid 為該 username 的使用者號(hào)碼)
-s 執(zhí)行環(huán)境變數(shù)中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell
-H 將環(huán)境變數(shù)中的 HOME (家目錄)指定為要變更身份的使用者家目錄(如不加 -u 參數(shù)就是系統(tǒng)管理者 root )
command 要以系統(tǒng)管理者身份(或以 -u 更改為其他人)執(zhí)行的指令
2.3、測(cè)試案例一
定義一個(gè)用戶(user1)使其擁有添加用戶的特殊權(quán)限,并進(jìn)行創(chuàng)建用戶操作。
①、創(chuàng)建用戶user1創(chuàng)建密碼
②、修改配置文件,為user1添加特殊權(quán)限useradd
vim /etc/sudoers添加下面一行:
這里的/usr/sbin/useradd表示普通用戶執(zhí)行時(shí)必須使用全路徑
③、切換到用戶user1,驗(yàn)證特殊權(quán)限
[root@centos7 user1]# su user1[user1@centos7 ~]$ sudo -l[sudo] user1 的密碼:匹配 %2$s 上 %1$s 的默認(rèn)條目: !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 上運(yùn)行以下命令: (root) /usr/sbin/useradd[user1@centos7 ~]$user1執(zhí)行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以管理員身份執(zhí)行了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參數(shù)示例
[root@localhost ~]# su - tom[tom@localhost ~]$ sudo -k ##結(jié)束密碼有效期[tom@localhost ~]$ sudo /usr/sbin/useradd test2[sudo] password for tom: ##有效期結(jié)束后,執(zhí)行特殊命令,需重新驗(yàn)證密碼[tom@localhost ~]$ tail -1 /etc/passwdtest2:x:502:502::/home/test2:/bin/bash #添加test2成功2.4、測(cè)試案例二【配置別名】
①、visudo指令可以在在配置文件中定義別名
[root@localhost ~]# visudoHost_Alias USERHOSTS = 172.16.0.0/16,127.0.0.0/8,192.168.0.0/24 ##定義主機(jī)別名,可以在哪些機(jī)器執(zhí)行特殊命令Cmnd_Alias USERADMIN=/usr/sbin/useradd,/usr/sbin/usermod,/usr/sbin/userdel ##定義命令別名root ALL=(ALL) ALLtom ALL=(root) USERADMIN ##此處定義tom可以執(zhí)行別名USERADMIN中的所有命令tom USERHOSTS=(ROOT) USERADMIN ##可以在別名USERHOSTS中機(jī)器上執(zhí)行別名USERADMIN中的命令[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組中的權(quán)限。②、設(shè)禁止某用戶執(zhí)行某操作
vim /etc/sudoers[user1@centos7 ~]$ sudo passwd test1 # 更改普通用戶密碼,成功更改用戶 test1 的密碼 。新的 密碼:重新輸入新的 密碼:passwd:所有的身份驗(yàn)證令牌已經(jīng)成功更新。[user1@centos7 ~]$ sudo passwd root # 更改root用戶密碼失敗。對(duì)不起,用戶 user1 無權(quán)以 root 的身份在 centos7 上執(zhí)行 /bin/passwd root。③、設(shè)置某些權(quán)限,無需輸入密碼
vim /etc/sudoers[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 ##執(zhí)行userdel沒有要求輸入密碼,NOPASSWD設(shè)置生效[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總結(jié)
以上是生活随笔為你收集整理的linux卸载openjdk_Linux系列(七)——linux其他指令【rpm、yum、sudo】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python递归_python3之递归
- 下一篇: 中国大学moocpython笔记_中国大