Linux中每個用戶都要屬于一個或多個組,有了用戶組,就可以將用戶添加到組中,這樣就方便管理員對用戶的集中管理。 Linux系統(tǒng)中用戶組分為root組、系統(tǒng)組、普通用戶組三類。當(dāng)一個用戶屬于多個組時,這些組中只能有一個作為該用戶的主屬組,其他組就被稱為此用戶的次屬組。 組基本信息在文件/etc/group中;組密碼信息在文件/etc/gshadow中。通過命令:cat /etc/group、cat /etc/gshadow可查看文件內(nèi)容。
創(chuàng)新互聯(lián)建站專注于企業(yè)網(wǎng)絡(luò)營銷推廣、網(wǎng)站重做改版、宜川網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)、購物商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為宜川等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
各用戶組中,以 ":" 作為字段之間的分隔符,分為 4 個字段,每個字段對應(yīng)的含義為:
組名:密碼:GID:該用戶組中的用戶列表
而在gshadow文件中,每行代表一個組用戶的密碼信息,各行信息用 ":" 作為分隔符,分為 4 個字段,每個字段的含義如下:
組名:加密密碼:組管理員:組附加用戶列表
root用戶可以直接修改/etc/group文件達(dá)到管理組的目的,也可以使用以下命令:groupadd、groupdel、groupmod -n、gpasswd -a、gpasswd -d、newgrp。
下面使用案例分別講解這些命令:
添加用戶組的命令是 groupadd,命令格式如下:
groupadd? [ -g gid? [ -o ] ]? [ -r ]? [ -f ]? group
參數(shù)說明:
-g:指定新建工作組的 id;
-r:創(chuàng)建系統(tǒng)工作組,系統(tǒng)工作組的組ID小于 500;
-K:覆蓋配置文件 "/ect/login.defs";
-o:允許添加組 ID 號不唯一的工作組。
-f,--force: 如果指定的組已經(jīng)存在,此選項將失明了僅以成功狀態(tài)退出。當(dāng)與 -g 一起使用,并且指定的GID_MIN已經(jīng)存在時,選擇另一個唯一的GID(即-g關(guān)閉)。
示例:創(chuàng)建一個新的組,并添加組 ID。
[root@VM-4-4-centos ~]# groupadd? -g? 888? newgroup
此時在/etc/group文件中產(chǎn)生了一個id為888的項目:
刪除用戶組時,可用groupdel(group delete)指令來完成。倘若該組中仍包括某些用戶,則必須先刪除這些用戶后,方能刪除組。 注意:刪除的組不能為主屬組! 命令格式:
groupdel? [組名]? ? ? ? ?
示例:刪除用戶組 newgroup
[root@VM-4-4-centos ~]# groupdel? newgroup
此時再查看/etc/group文件時可以看到用戶組newgroup已經(jīng)不存在,刪除成功!
要更改用戶組識別碼或名稱可使用 groupmod 來完成。命令格式:
groupmod? [ -g? 群組識別碼? -o ] [ -n? 新群組名稱 ] [原群組名稱]
參數(shù)說明 :
-g 群組識別碼 設(shè)置欲使用的群組識別碼。
-o 重復(fù)使用群組識別碼。
-n 新群組名稱 設(shè)置欲使用的群組名稱。
示例:創(chuàng)建用戶組newgroup并修改其名稱為modifiedgroup
[root@VM-4-4-centos ~]# groupadd? newgroup
[root@VM-4-4-centos ~]# groupmod? -n? modifiedgroup? newgroup
查看/etc/group文件,只存在名稱為modifiedgroup的用戶組,修改成功!
gpasswd 是 Linux 下工作組文件 /etc/group 和 /etc/gshadow 管理工具,用于將一個用戶添加到組或者從組中刪除。命令格式:
gpasswd? [可選項]? 組名
可選項參數(shù) :
-a:添加用戶到組;
-d:從組刪除用戶;
-A:指定管理員;
-M:指定組成員和-A的用途差不多;
-r:刪除密碼;
-R:限制用戶登入組,只有組中的成員才可以用newgrp加入該組。
示例1:將用戶yangwei添加到組modifiedgroup中
[root@VM-4-4-centos ~]# gpasswd? -a? yangwei? modifiedgroup
此時查看/etc/group文件發(fā)現(xiàn)組?modifiedgroup中出現(xiàn)用戶yangwei
示例2:將用戶yangwei從組modifiedgroup中給刪除
[root@VM-4-4-centos ~]# gpasswd? -d? yangwei? modifiedgroup
再次查看/etc/group文件發(fā)現(xiàn)用戶yangwei已經(jīng)不存在。
當(dāng)需要在不同的群組下工作的時候我們需要進(jìn)行切換群組操作,這個操作由newgrp指令來完成。命令格式如下:
newgrp [群組名稱]
注意!當(dāng)前用戶必須都是兩個群組的成員,否則切換群組時需要輸入切換組的組密碼,這時候當(dāng)前用戶作為臨時成員在切換組下工作,所創(chuàng)建的文件全都屬于切換組。
示例1:用戶yangwei不屬于群組modifiedgroup,請將當(dāng)前工作組切換為modifiedgroup。
示例2:將用戶yangwei添加到組modifiedgroup中,并切換工作組為modifiedgroup。
總結(jié):Linux用戶組管理需要掌握最基本的幾個命令及其選項參數(shù): groupadd 、groupdel 、groupmod 、gpasswd 、newgrp !
Linux系統(tǒng)中的用戶是分角色的,用戶的角色是由UID和GID來識別的(也就是說系統(tǒng)是識別的是用戶的UID、GID,而非用戶用戶名),一個UID是唯一(系統(tǒng)中唯一如同身份證一樣)用來標(biāo)識系統(tǒng)的用戶賬號(用戶名)。
文件的用戶與用戶組分為超級管理員,普通用戶和系統(tǒng)用戶。
1)超級管理員的UID=0,GID=0,也可以這么說系統(tǒng)只要是識別出某個用戶的UID\GID都為0時,那么這個用戶系統(tǒng)就認(rèn)為是超級管理員。
2)普通用戶(管理員添加的),默認(rèn)它的UID\GID是從500-65535,權(quán)限很小,只能操作自己的家目錄中文件及子目錄(注:nobody它的UID\GID是65534)。
3)系統(tǒng)用戶,也稱虛擬用戶,也就是安裝系統(tǒng)時就默認(rèn)存在的且不可登陸系統(tǒng),它們的UID\GID是1-499。
我們可以通過cat /etc/passwd命令來查看所有的用戶信息,例如下圖,第三列是UID,第四列是GID:
創(chuàng)建用戶
useradd user1 創(chuàng)建用戶user1
useradd -e 12/30/2021 user2 創(chuàng)建用戶user2,有效期到2021-12-30
設(shè)置用戶密碼
passwd user1 設(shè)置密碼,有設(shè)置密碼的用戶不能用
這里設(shè)置密碼時可能會碰到密碼保護(hù)機(jī)制問題,這里需要注釋掉保護(hù)機(jī)制的問題
這個時候需要在編輯/etc/pam.d/system-auth文件,將其中的password requisite
和password sufficient兩行注釋掉,如下圖:
創(chuàng)建用戶組
groupadd –g 888 users 創(chuàng)建一個組users,其GID為888
groupadd users 不用g參數(shù),使用默認(rèn)的組ID
命令 gpasswd為組添加用戶
只有root和組管理員能夠改變組的成員:
gpasswd –a user1 users 把 user1加入users組
gpasswd –d user1 users 把 user1退出users組
命令groupmod修改組
groupmod –n user2 user1 修改組名user1為user2
groupdel刪除組
groupdel users 刪除組users
真正從安全性角度上來考慮的話,是要控制用戶一定執(zhí)行命令的權(quán)限,也就是哪些用戶可以執(zhí)行哪些命令,不可以執(zhí)行哪些命令,因此也就有了sudo這個應(yīng)用,對于sudo提權(quán),也就是修改/etc/sudoers的配置文件。
一、創(chuàng)建linux維護(hù)用戶
登錄root用戶
創(chuàng)建新用戶
useradd 新用戶名
設(shè)置用戶密碼
passwd 新用戶密碼
二、安裝jdk和配置環(huán)境變量
建議在root用戶下直接安裝jdk,并直接配置環(huán)境變量,同時給非root用戶設(shè)置讀和執(zhí)行權(quán)限
解壓包
tar xvf jdk包名.tar
配置全局變量
編輯/etc/profile文件
vi /etc/profile
按I鍵,切換成編輯模式。
在文件未加入一下配置
export JAVA_HOME=jdk的解壓文件目錄
export JRE_HOME=jdk的解壓文件目錄/jre
export?CLASSPATH=.:${JAVA_HOME}/lib:${?JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${?JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}
保存并退出
Esc ??
:wq
重載配置文件使其生效
source /etc/profile
檢查是否安裝成功
Javac
Java version
權(quán)限修改
讀4寫2執(zhí)行1,順序所有者、組成員、其他用戶
Chomd ?755 ?jdk的解壓文件目錄
三、安裝tomcat
安裝tomcat和放入war包使用非root的維護(hù)用戶
如果使用root安裝的話記得設(shè)置權(quán)限。( chomd -r 外層文件目錄 )
su - 用戶名
1、解壓包
tar ?xvf ?tomcat包名.tar
2、將war包放入tomcat/webapps目錄下
3、Tomcat啟動服務(wù)和停止服務(wù)
查看進(jìn)程
ps -ef | grep java
啟動應(yīng)用
Tomcat bin目錄下.startup.sh
停止應(yīng)用
建議使用
Kill -9 進(jìn)程號
注:解壓出應(yīng)用文件后,注意配置信息的修改
四、IBM MQ部署 (7.5之后的版本)
(以下是使用9.0版本的正確部署命令)
一、 卸載舊版本IBM MQ (可選)
因為部署環(huán)境沒有安裝過mq,卸載這部分命令我沒有親自測試過
設(shè)置環(huán)境
以用戶身份登錄到組mqm,找到mq的安裝位置 /opt/mqm
source ./setmqenv -s
查看隊列管理器的狀態(tài)
dspmq -o installation
停止與要卸載的安裝關(guān)聯(lián)的所有正在運(yùn)行的隊列管理器
endmqm SXRECV
停止與隊列管理器關(guān)聯(lián)的所有偵聽器。
endmqlsr -m SXRECV
查看系統(tǒng)上當(dāng)前安裝的軟件包(組件)
sudo rpm -qa | grep MQSeries
列出軟件包并一次性卸載
sudo rpm -qa | grep MQSeries | xargs rpm -ev
再將對應(yīng)的用戶及安裝目錄給刪除
rm -rf /opt/mqm
userdel -r mqm
檢查MQ license
license文件在安裝目錄中 /opt/mqm/lib 可以找到
amqtcert.lic - is a trial license
amqbcert.lic - is a beta license
amqpcert.lic - is the production license
——————————————————————————————————————
二、安裝新版本ibm mq
解壓,解壓文件都在MQServer中
tar –xzvf IBM_MQ_9.1.5_LINUX_X86-64.tar.gz
進(jìn)入MQServer文件夾中:
cd MQServer/
運(yùn)行MQ許可證程序
./mqlicense.sh
安裝WebSphere MQ for Linux服務(wù)器(Runtime、SDK 和 Server 軟件包):
rpm -U MQSeriesRuntime-9.1.5-0.x86_64.rpm
rpm -U MQSeriesSDK-9.1.5-0.x86_64.rpm
rpm -U MQSeriesServer-9.1.5-0.x86_64.rpm
安裝WebSphere MQ for Linux客戶機(jī):
rpm -U MQSeriesClient-9.0.0-0.x86_64.rpm
安裝WebSphere MQ樣本程序:
rpm -U MQSeriesSamples-9.0.0-0.x86_64.rpm
創(chuàng)建組和用戶
安裝過程創(chuàng)建了一個名為mqm的用戶和一個同樣名為 mqm 的組。設(shè)置一個密碼來解鎖。
passwd mqm
——————————————————————————————————————
三、 配置
(這部分隊列管理器、通道、隊列等根據(jù)實際情況自行配置)
切換用戶:
su mqm
創(chuàng)建隊列管理器
使用crtmqm命令來創(chuàng)建一個名為 SXRECV
的隊列管理器。我們把它作為缺省隊列,并且將不在創(chuàng)建時指定死信隊列。然后使用strmqm命令啟動隊列管理器。
crtmqm -q ?SXRECV
strmqm ?SXRECV
——————
如果執(zhí)行crtmqm命令時提示
-bash-3.2$ crtmqm
-bash: crtmqm: command not found
find / -name crtmqm
則需要配置mqm用戶的環(huán)境變量,編輯如下文件,并添加下面的內(nèi)容,如下:
第一種方法:相對第二種較安全僅對mqm用戶有效
方法一:
(1) -bash-3.2$ vi /var/mqm/.bash_profile --有可能會在文件夾下看不到這個文件,通過編輯即可看到
PATH=$PATH:/opt/mqm/samp/bin:/opt/mqm/bin:bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin
(2)執(zhí)行“.”命令,使這個文件生效
-bash-3.2$ source ?.bash_profile
(3)再次嘗試實行crtmqm或是dspmqm命令,即可發(fā)現(xiàn)已經(jīng)生效。
方法二:
( 1)
su ?root
[if !supportLists](2)[endif]
vim /etc/profile
[if !supportLists](3)[endif] 在最后面加上:
PATH=$PATH:/opt/mqm/samp/bin:/opt/mqm/bin:bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/bin
( 4)關(guān)閉遠(yuǎn)程終端重新打開,無需重啟服務(wù)器
——————
運(yùn)行隊列管理器
runmqsc SXRECV
創(chuàng)建通道和隊列
DEFINE QLOCAL (XYDATA) REPLACE USAGE (NORMAL) DEFPSIST (YES) MAXDEPTH (300000) DESCR('興業(yè)銀行')
DEFINE QLOCAL (XYTRANS) REPLACE USAGE (XMITQ) DEFPSIST (YES) MAXDEPTH (300000) DESCR('興業(yè)銀行')
DEFINE QREMOTE (XYACK) REPLACE DEFPSIST (YES) RQMNAME (SXSEND) ?RNAME (XYACK) XMITQ (XYTRANS) DESCR('XXXX')
DEFINE CHANNEL (XYDATA) CHLTYPE (RCVR) TRPTYPE (TCP) REPLACE DESCR('XXXX')
DEFINE CHANNEL (XYACK) CHLTYPE (SDR) CONNAME ('166.1.1.8(2214)') XMITQ (XYTRANS) TRPTYPE (TCP) DISCINT (0) CONVERT (NO) SHORTRTY (30) SHORTTMR (10) LONGRTY (999999999) LONGTMR (20) REPLACE DESCR('XXXX')
DEFINE CHANNEL (SVRCONN) CHLTYPE (SVRCONN) MCAUSER('mqm')
創(chuàng)建監(jiān)聽
DEFINE LISTENER (RECLISTENER) TRPTYPE (TCP) CONTROL(QMGR) PORT (2214)
啟動監(jiān)聽
start LISTENER(RECLISTENER)
啟動通道
start channel(SVRCONN)
start channel(XYDATA)
start channel(XYACK)
———————————————————————————————————————————————————
四、2035錯誤碼 說明
如果程序連接mq報錯2035,則需要對權(quán)限認(rèn)證做設(shè)置,則進(jìn)行以此操作
1、
ALTER QMGR CHLAUTH(DISABLED)
2、
ALTER CHL(通道名) CHLTYPE(SVRCONN) MCAUSER('mqm')
3、
ALTER AUTHINFO(SYSTEM.DEFAULT.AUTHINFO.IDPWOS) AUTHTYPE(IDPWOS) CHCKCLNT(OPTIONAL)
或者直接將連接認(rèn)證選項置為空,將其完全關(guān)閉,指令如下:
ALTER QMGR CONNAUTH('')
在執(zhí)行完上述兩條命令中的任一條后,都需要刷新連接認(rèn)證的緩存,指令如下:
REFRESH SECURITY TYPE(CONNAUTH)
五、mq操作命令
一、MQ的啟動與停止
1、MQ的啟動
strmqm QMgrName
如果啟動默認(rèn)隊列管理器,strmqm后可以忽略隊列管理器名稱。
2、MQ的關(guān)閉
endmqm?-i?QMgrName
停止mq
二、MQ運(yùn)行狀態(tài)查看與常用操作
1、 查看隊列管理器運(yùn)行狀態(tài)
su mqm
執(zhí)行如下命令檢查隊列管理器運(yùn)行狀態(tài):dspmq顯示結(jié)果中QMNAME表示MQ隊列管理器的名稱,STATUS表示當(dāng)前運(yùn)行狀態(tài)。運(yùn)行狀態(tài)有如下幾種:Starting正在啟動Running正在運(yùn)行Ending正在停止Ended normally已經(jīng)正常終止Ended immediately已經(jīng)立即終止Ended preemtively已經(jīng)強(qiáng)制終止Ended unexpectively異常終止
注意:停止MQ后必須使用dspmq命令進(jìn)行狀態(tài)檢查
2、查看通道運(yùn)行狀態(tài)與啟停通道
runmqsc
dis chl(*);查看所有通道定義
dis chs(*);查看所有通道狀態(tài),如果沒有查詢到通道狀態(tài),或報錯AMQ8420: Channel Status not found,請啟動通道
dis chs(ChannelName); 查看通道ChannelName的狀態(tài)
通道狀態(tài)有如下幾種:
STARTING正在啟動BINDING正在綁定INITIALIZING正在初始化RUNNING正常STOPPING?正在停止RETRYING重試PAUSED等待STOPPED已停止REQUESTING請求
start?chl(ChannelName);啟動通道
stop?chl(ChannelName);停止通道
* 重置通道
reset channel(ChannelName);?重置通道序號。當(dāng)本地與其他MQ隊列管理器的通道無法正常啟動的情況,檢查日志發(fā)現(xiàn)是通道序號不一致,此時就需要先停止發(fā)送方通道,清空隊列深度并在發(fā)送方和接收方進(jìn)行通道計數(shù)的重置,重置后啟動通道即可恢復(fù)通訊。
注意:重置成功mq序列號一般相同或相差1
3、查看通道監(jiān)聽狀態(tài)與啟停監(jiān)聽
runmqsc
dis listner(*);查看通道監(jiān)聽定義
dis lsstatu(listnerName);查看監(jiān)聽狀態(tài)
start?lstr(listnerName); 啟動監(jiān)聽
stop?lstr(listnerName); 停止監(jiān)聽?
4、查看隊列深度
runmqsc
dis q(*);查看所有各類隊列的屬性
dis?qlocal(QName);查看所有本地隊列的屬性
隊列深度屬性為:CURDEPTH
查看隊列深度display ql('隊列名') ?curdepth
*清空隊列深度
清空隊列深度
clear ql(‘隊列名’)
三、MQ發(fā)送和接收消息
su mqm
發(fā)送消息
amqsput ?隊列名 ?隊列管理器
獲取消息
amqsget ?隊列名 ?隊列管理器
可通過配合查看隊列深度命令,完成mq的聯(lián)調(diào)
六、其他維護(hù)中常用linux命令
1、測試端口連接
telnet ip port
2、查看已啟動的端口
netstat -an | grep 端口號
3、查看應(yīng)用進(jìn)程
ps -ef |grep java
4、修改權(quán)限
chomd ?XXX(對應(yīng)的權(quán)限) ?文件目錄
5、修改文件或目錄下所有文件所有者和組
Chomd -R 用戶名:組名 ?文件目錄
6、查看目錄內(nèi)容
ls 或者ls -l (簡寫ll)
7、查看文件輸出
cat 目錄/文件名
或者
Vi 目錄/文件名 按i可進(jìn)入編輯
按 G 到文檔末尾
按 gg 到文件首行
不保存退出
Esc ??:q!
保存退出
Esc ??:wq
vi 進(jìn)入文檔文檔后查找關(guān)鍵字
Esc 進(jìn)入命令行
/關(guān)鍵字
按n向下繼續(xù)查找
按N向上繼續(xù)查找
8、殺進(jìn)程
Kill -9 進(jìn)程號
9、復(fù)制
cp -r 源目錄 ?目標(biāo)目錄
10、移動
mv ?-i 源文件或目錄 目標(biāo)文件或目錄
11、刪除
rm -R 文件目錄
12、 切換工作目錄
cd ?相對路徑或絕對路徑
~也表示為 home 目錄 的意思, . 則是表示目前所在的目錄, .. 則表示目前目錄位置的上一層目錄。