真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

linux系統(tǒng)解鎖命令,linux用戶解鎖命令

《Linux下部分常用指令筆記》

一、創(chuàng)建linux維護(hù)用戶

創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供福州網(wǎng)站建設(shè)、福州做網(wǎng)站、福州網(wǎng)站設(shè)計(jì)、福州網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、福州企業(yè)網(wǎng)站模板建站服務(wù),10年福州做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

登錄root用戶

創(chuàng)建新用戶

useradd 新用戶名

設(shè)置用戶密碼

passwd 新用戶密碼

二、安裝jdk和配置環(huán)境變量

建議在root用戶下直接安裝jdk,并直接配置環(huán)境變量,同時(shí)給非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寫(xiě)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啟動(dòng)服務(wù)和停止服務(wù)

查看進(jìn)程

ps -ef | grep java

啟動(dòng)應(yīng)用

Tomcat bin目錄下.startup.sh

停止應(yīng)用

建議使用

Kill -9 進(jìn)程號(hào)

注:解壓出應(yīng)用文件后,注意配置信息的修改

四、IBM MQ部署 (7.5之后的版本)

(以下是使用9.0版本的正確部署命令)

一、 卸載舊版本IBM MQ (可選)

因?yàn)椴渴瓠h(huán)境沒(méi)有安裝過(guò)mq,卸載這部分命令我沒(méi)有親自測(cè)試過(guò)

設(shè)置環(huán)境

以用戶身份登錄到組mqm,找到mq的安裝位置 /opt/mqm

source ./setmqenv -s

查看隊(duì)列管理器的狀態(tài)

dspmq -o installation

停止與要卸載的安裝關(guān)聯(lián)的所有正在運(yùn)行的隊(duì)列管理器

endmqm SXRECV

停止與隊(duì)列管理器關(guān)聯(lián)的所有偵聽(tīng)器。

endmqlsr -m SXRECV

查看系統(tǒng)上當(dāng)前安裝的軟件包(組件)

sudo rpm -qa | grep MQSeries

列出軟件包并一次性卸載

sudo rpm -qa | grep MQSeries | xargs rpm -ev

再將對(duì)應(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)建組和用戶

安裝過(guò)程創(chuàng)建了一個(gè)名為mqm的用戶和一個(gè)同樣名為 mqm 的組。設(shè)置一個(gè)密碼來(lái)解鎖。

passwd mqm

——————————————————————————————————————

三、 配置

(這部分隊(duì)列管理器、通道、隊(duì)列等根據(jù)實(shí)際情況自行配置)

切換用戶:

su mqm

創(chuàng)建隊(duì)列管理器

使用crtmqm命令來(lái)創(chuàng)建一個(gè)名為 SXRECV

的隊(duì)列管理器。我們把它作為缺省隊(duì)列,并且將不在創(chuàng)建時(shí)指定死信隊(duì)列。然后使用strmqm命令啟動(dòng)隊(duì)列管理器。

crtmqm -q ?SXRECV

strmqm ?SXRECV

——————

如果執(zhí)行crtmqm命令時(shí)提示

-bash-3.2$ crtmqm

-bash: crtmqm: command not found

find / -name crtmqm

則需要配置mqm用戶的環(huán)境變量,編輯如下文件,并添加下面的內(nèi)容,如下:

第一種方法:相對(duì)第二種較安全僅對(duì)mqm用戶有效

方法一:

(1) -bash-3.2$ vi /var/mqm/.bash_profile --有可能會(huì)在文件夾下看不到這個(gè)文件,通過(guò)編輯即可看到

PATH=$PATH:/opt/mqm/samp/bin:/opt/mqm/bin:bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin

(2)執(zhí)行“.”命令,使這個(gè)文件生效

-bash-3.2$ source ?.bash_profile

(3)再次嘗試實(shí)行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)程終端重新打開(kāi),無(wú)需重啟服務(wù)器

——————

運(yùn)行隊(duì)列管理器

runmqsc SXRECV

創(chuàng)建通道和隊(duì)列

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)聽(tīng)

DEFINE LISTENER (RECLISTENER) TRPTYPE (TCP) CONTROL(QMGR) PORT (2214)

啟動(dòng)監(jiān)聽(tīng)

start LISTENER(RECLISTENER)

啟動(dòng)通道

start channel(SVRCONN)

start channel(XYDATA)

start channel(XYACK)

———————————————————————————————————————————————————

四、2035錯(cuò)誤碼 說(shuō)明

如果程序連接mq報(bào)錯(cuò)2035,則需要對(duì)權(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)證選項(xiàng)置為空,將其完全關(guān)閉,指令如下:

ALTER QMGR CONNAUTH('')

在執(zhí)行完上述兩條命令中的任一條后,都需要刷新連接認(rèn)證的緩存,指令如下:

REFRESH SECURITY TYPE(CONNAUTH)

五、mq操作命令

一、MQ的啟動(dòng)與停止

1、MQ的啟動(dòng)

strmqm QMgrName

如果啟動(dòng)默認(rèn)隊(duì)列管理器,strmqm后可以忽略隊(duì)列管理器名稱。

2、MQ的關(guān)閉

endmqm?-i?QMgrName

停止mq

二、MQ運(yùn)行狀態(tài)查看與常用操作

1、 查看隊(duì)列管理器運(yùn)行狀態(tài)

su mqm

執(zhí)行如下命令檢查隊(duì)列管理器運(yùn)行狀態(tài):dspmq顯示結(jié)果中QMNAME表示MQ隊(duì)列管理器的名稱,STATUS表示當(dāng)前運(yùn)行狀態(tài)。運(yùn)行狀態(tài)有如下幾種:Starting正在啟動(dòng)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),如果沒(méi)有查詢到通道狀態(tài),或報(bào)錯(cuò)AMQ8420: Channel Status not found,請(qǐng)啟動(dòng)通道

dis chs(ChannelName); 查看通道ChannelName的狀態(tài)

通道狀態(tài)有如下幾種:

STARTING正在啟動(dòng)BINDING正在綁定INITIALIZING正在初始化RUNNING正常STOPPING?正在停止RETRYING重試PAUSED等待STOPPED已停止REQUESTING請(qǐng)求

start?chl(ChannelName);啟動(dòng)通道

stop?chl(ChannelName);停止通道

* 重置通道

reset channel(ChannelName);?重置通道序號(hào)。當(dāng)本地與其他MQ隊(duì)列管理器的通道無(wú)法正常啟動(dòng)的情況,檢查日志發(fā)現(xiàn)是通道序號(hào)不一致,此時(shí)就需要先停止發(fā)送方通道,清空隊(duì)列深度并在發(fā)送方和接收方進(jìn)行通道計(jì)數(shù)的重置,重置后啟動(dòng)通道即可恢復(fù)通訊。

注意:重置成功mq序列號(hào)一般相同或相差1

3、查看通道監(jiān)聽(tīng)狀態(tài)與啟停監(jiān)聽(tīng)

runmqsc

dis listner(*);查看通道監(jiān)聽(tīng)定義

dis lsstatu(listnerName);查看監(jiān)聽(tīng)狀態(tài)

start?lstr(listnerName); 啟動(dòng)監(jiān)聽(tīng)

stop?lstr(listnerName); 停止監(jiān)聽(tīng)?

4、查看隊(duì)列深度

runmqsc

dis q(*);查看所有各類隊(duì)列的屬性

dis?qlocal(QName);查看所有本地隊(duì)列的屬性

隊(duì)列深度屬性為:CURDEPTH

查看隊(duì)列深度display ql('隊(duì)列名') ?curdepth

*清空隊(duì)列深度

清空隊(duì)列深度

clear ql(‘隊(duì)列名’)

三、MQ發(fā)送和接收消息

su mqm

發(fā)送消息

amqsput ?隊(duì)列名 ?隊(duì)列管理器

獲取消息

amqsget ?隊(duì)列名 ?隊(duì)列管理器

可通過(guò)配合查看隊(duì)列深度命令,完成mq的聯(lián)調(diào)

六、其他維護(hù)中常用linux命令

1、測(cè)試端口連接

telnet ip port

2、查看已啟動(dòng)的端口

netstat -an | grep 端口號(hào)

3、查看應(yīng)用進(jìn)程

ps -ef |grep java

4、修改權(quán)限

chomd ?XXX(對(duì)應(yīng)的權(quán)限) ?文件目錄

5、修改文件或目錄下所有文件所有者和組

Chomd -R 用戶名:組名 ?文件目錄

6、查看目錄內(nèi)容

ls 或者ls -l (簡(jiǎn)寫(xiě)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)程號(hào)

9、復(fù)制

cp -r 源目錄 ?目標(biāo)目錄

10、移動(dòng)

mv ?-i 源文件或目錄 目標(biāo)文件或目錄

11、刪除

rm -R 文件目錄

12、 切換工作目錄

cd ?相對(duì)路徑或絕對(duì)路徑

~也表示為 home 目錄 的意思, . 則是表示目前所在的目錄, .. 則表示目前目錄位置的上一層目錄。

linux用戶登錄三次被鎖了,這設(shè)置在哪配置的.

鎖用戶的設(shè)定

/etc/pam.d/下包含各種認(rèn)證程序或服務(wù)的配置文件。編輯這些可限制認(rèn)證失敗次數(shù),當(dāng)失敗次數(shù)超過(guò)指定值時(shí)用戶會(huì)被鎖住。

在此,以run

level為3的時(shí)候,多次登錄登錄失敗即鎖用戶為例:

在/etc/pam.d/login文件中追加如下兩行:

auth

required

/lib/security/pam_tally.so

onerr=fail

no_magic_root

account

required

/lib/security/pam_tally.so

deny=3

no_magic_root

reset

deny=3

設(shè)置登錄失敗3次就將用戶鎖住,該值可任意設(shè)定。

如下為全文見(jiàn)設(shè)定例:

auth

required

pam_securetty.so

auth

required

pam_stack.so

service=system-auth

auth

required

pam_nologin.so

auth

required

pam_tally.so

onerr=fail

no_magic_root

account

required

pam_stack.so

service=system-auth

account

required

pam_tally.so

deny=3

no_magic_root

reset

password

required

pam_stack.so

service=system-auth

session

required

pam_stack.so

service=system-auth

session

optional

pam_console.so

這樣當(dāng)用戶在run

level=3的情況下登錄時(shí),/var/log/faillog會(huì)自動(dòng)生成,裏面記錄用戶登錄失敗次數(shù)等信息。

可用"faillog

-u

用戶名"命令來(lái)查看。

當(dāng)用戶登錄成功時(shí),以前的登錄失敗信息會(huì)重置。

2)用戶的解鎖

用戶因多次登錄失敗而被鎖的情況下,可用faillog命令來(lái)解鎖。具體如下:

faillog

-u

用戶名

-r

此命令實(shí)行后,faillog里記錄的失敗信息即被重置,用戶又可用了。

關(guān)於faillog的其他命令。。參見(jiàn)man

failog。

二:手動(dòng)鎖定用戶禁止使用

可以用usermod命令來(lái)鎖定用戶密碼,使密碼無(wú)效,該用戶名將不能使用。

如:

usermod

-L

用戶名

解鎖命令:usermod

-U

用戶名

......

要想強(qiáng)制用戶下次登錄更改密碼就使用chage

-d

username

強(qiáng)制把上次更改密碼的日期歸零.

定義用戶密碼變更天數(shù)在/etc/shadow

這個(gè)文件中定義

對(duì)新建的用戶在/etc/login.defs這個(gè)文件中定義

linux嘗試登錄失敗后鎖定用戶賬戶的兩種方法

pam_tally2模塊(方法一)

用于對(duì)系統(tǒng)進(jìn)行失敗的ssh登錄嘗試后鎖定用戶帳戶。此模塊保留已嘗試訪問(wèn)的計(jì)數(shù)和過(guò)多的失敗嘗試。

配置

使用 /etc/pam.d/system-auth 或 /etc/pam.d/password-auth 配置文件來(lái)配置的登錄嘗試的訪問(wèn)

注意:

auth要放到第二行,不然會(huì)導(dǎo)致用戶超過(guò)3次后也可登錄。

如果對(duì)root也適用在auth后添加 even_deny_root .

auth required pam_tally2.so deny=3 even_deny_root unlock_time=600

pam_tally2命令

查看用戶登錄失敗的信息

解鎖用戶

pam_faillock 模塊(方法二)

在紅帽企業(yè)版 Linux 6 中, pam_faillock PAM 模塊允許系統(tǒng)管理員鎖定在指定次數(shù)內(nèi)登錄嘗試失敗的用戶賬戶。限制用戶登錄嘗試的次數(shù)主要是作為一個(gè)安全措施,旨在防止可能針對(duì)獲取用戶的賬戶密碼的暴力破解

通過(guò) pam_faillock 模塊,將登錄嘗試失敗的數(shù)據(jù)儲(chǔ)存在 /var/run/faillock 目錄下每位用戶的獨(dú)立文件中

配置

添加以下命令行到 /etc/pam.d/system-auth 文件和 /etc/pam.d/password-auth 文件中的對(duì)應(yīng)區(qū)段:

auth required pam_faillock.so preauth silent audit deny=3 unlock_time=600

auth sufficient pam_unix.so nullok try_first_pass

auth [default=die] pam_faillock.so authfail audit deny=3

account required pam_faillock.so

注意:

auth required pam_faillock.so preauth silent audit deny=3 必須在最前面。

適用于root在 pam_faillock 條目里添加 even_deny_root 選項(xiàng)

faillock命令

查看每個(gè)用戶的嘗試失敗次數(shù)

$ faillock

test:

When Type Source Valid

2017-06-20 14:29:05 RHOST 192.168.56.1 V

2017-06-20 14:29:14 RHOST 192.168.56.1 V

2017-06-20 14:29:17 RHOST 192.168.56.1 V

解鎖一個(gè)用戶的賬戶

linux文件鎖定被使用

一、什么是文件鎖定

對(duì)于鎖這個(gè)字,大家一定不會(huì)陌生,因?yàn)槲覀兩钪芯痛嬖谥罅康逆i,它們各個(gè)方面發(fā)揮著它的作用,現(xiàn)在世界中的鎖的功能都可歸結(jié)為一句話,就是阻止某些人做某些事,例如,門(mén)鎖就是阻止除了屋主之外的人進(jìn)入這個(gè)房子,你進(jìn)入不到這個(gè)房子,也就不能使用房子里面的東西。

而因?yàn)槌绦蚪?jīng)常需要共享數(shù)據(jù),而這通常又是通過(guò)文件來(lái)實(shí)現(xiàn)的,試想一個(gè)情況,A進(jìn)程正在對(duì)一個(gè)文件進(jìn)行寫(xiě)操作,而另一個(gè)程序B需要對(duì)同一個(gè)文件進(jìn)行讀操作,并以讀取到的數(shù)據(jù)作為自己程序運(yùn)行時(shí)所需要的數(shù)據(jù),這會(huì)發(fā)生什么情況呢?進(jìn)程B可能會(huì)讀到錯(cuò)亂的數(shù)據(jù),因?yàn)樗⒉恢懒硪粋€(gè)進(jìn)程A正在改寫(xiě)這個(gè)文件中的數(shù)據(jù)。

為了解決類似的問(wèn)題,就出現(xiàn)了文件鎖定,簡(jiǎn)單點(diǎn)來(lái)說(shuō),這是文件的一種安全的更新方式,當(dāng)一個(gè)程序正在對(duì)文件進(jìn)行寫(xiě)操作時(shí),文件就會(huì)進(jìn)入一種暫時(shí)狀態(tài),在這個(gè)狀態(tài)下,如果另一個(gè)程序嘗試讀這個(gè)文件,它就會(huì)自動(dòng)停下來(lái)等待這個(gè)狀態(tài)結(jié)束。Linux系統(tǒng)提供了很多特性來(lái)實(shí)現(xiàn)文件鎖定,其中最簡(jiǎn)單的方法就是以原子操作的方式創(chuàng)建鎖文件。

用回之前的例子就是,文件鎖就是當(dāng)文件在寫(xiě)的時(shí)候,阻止其他的需要寫(xiě)或者要讀文件的進(jìn)程來(lái)操作這個(gè)文件。

二、創(chuàng)建鎖文件

創(chuàng)建一個(gè)鎖文件是非常簡(jiǎn)單的,我們可以使用open系統(tǒng)調(diào)用來(lái)創(chuàng)建一個(gè)鎖文件,在調(diào)用open時(shí)oflags參數(shù)要增加參數(shù)O_CREAT和O_EXCL標(biāo)志,如file_desc = open("/tmp/LCK.test", O_RDWR|O_CREAT|O_EXCL, 0444);就可以創(chuàng)建一個(gè)鎖文件/tmp/LCK.test。O_CREAT|O_EXCL,可以確保調(diào)用者可以創(chuàng)建出文件,使用這個(gè)模式可以防止兩個(gè)程序同時(shí)創(chuàng)建同一個(gè)文件,如果文件(/tmp/LCK.test)已經(jīng)存在,則open調(diào)用就會(huì)失敗,返回-1。

如果一個(gè)程序在它執(zhí)行時(shí),只需要獨(dú)占某個(gè)資源一段很短的時(shí)間,這個(gè)時(shí)間段(或代碼區(qū))通常被叫做臨界區(qū),我們需要在進(jìn)入臨界區(qū)之前使用open系統(tǒng)調(diào)用創(chuàng)建鎖文件,然后在退出臨界區(qū)時(shí)用unlink系統(tǒng)調(diào)用刪除這個(gè)鎖文件。

注意:鎖文件只是充當(dāng)一個(gè)指示器的角色,程序間需要通過(guò)相互協(xié)作來(lái)使用它們,也就是說(shuō)鎖文件只是建議鎖,而不是強(qiáng)制鎖,并不會(huì)真正阻止你讀寫(xiě)文件中的數(shù)據(jù)。

可以看看下面的例子:源文件文件名為filelock1.c,代碼如下:

#include unistd.h #include stdlib.h #include stdio.h #include fcntl.h #include errno.h int main() { const char *lock_file = "/tmp/LCK.test1"; int n_fd = -1; int n_tries = 10; while(n_tries--) { //創(chuàng)建鎖文件 n_fd = open(lock_file, O_RDWR|O_CREAT|O_EXCL, 0444); if(n_fd == -1) { //創(chuàng)建失敗 printf("%d - Lock already present ", getpid()); sleep(2); } else { //創(chuàng)建成功 printf("%d - I have exclusive access ", getpid()); sleep(1); close(n_fd); //刪除鎖文件,釋放鎖 unlink(lock_file); sleep(2); } } return 0; }

同時(shí)運(yùn)行同一個(gè)程序的兩個(gè)實(shí)例,運(yùn)行結(jié)果為:

?

從運(yùn)行的結(jié)果可以看出兩個(gè)程序交叉地對(duì)對(duì)文件進(jìn)行鎖定,但是真實(shí)的操作卻是,每次調(diào)用open函數(shù)去檢查/tmp/LCK.test1這個(gè)文件是否存在,如果存在open調(diào)用就失敗,顯示有進(jìn)程已經(jīng)把這個(gè)文件鎖定了,如果這個(gè)文件不存在,就創(chuàng)建這個(gè)文件,并顯示許可信息。但是這種做法有一定的缺憾,我們可以看到文件/tmp/LCK.test1被創(chuàng)建了很多次,也被unlink刪除了很多次,也就是說(shuō)我們不能使用已經(jīng)事先有數(shù)據(jù)的文件作為這種鎖文件,因?yàn)槿绻募呀?jīng)存在,則open調(diào)用總是失敗。

給我的感覺(jué)是,這更像是一種對(duì)進(jìn)程工作的協(xié)調(diào)性安排,更像是二進(jìn)制信號(hào)量的作用,文件存在為0,不存在為1,而不是真正的文件鎖定。

三、區(qū)域鎖定

我們還有一個(gè)問(wèn)題,就是如果同一個(gè)文件有多個(gè)進(jìn)程需要對(duì)它進(jìn)行讀寫(xiě),而一個(gè)文件同一時(shí)間只能被一個(gè)進(jìn)程進(jìn)行寫(xiě)操作,但是多個(gè)進(jìn)程讀寫(xiě)的區(qū)域互不相關(guān),如果總是要等一個(gè)進(jìn)程寫(xiě)完其他的進(jìn)程才能對(duì)其進(jìn)行讀寫(xiě),效率又太低,那么是否可以讓多個(gè)進(jìn)程同時(shí)對(duì)文件進(jìn)行讀寫(xiě)以提高數(shù)據(jù)讀寫(xiě)的效率呢?

為了解決上面提到的問(wèn)題,和出現(xiàn)在第二點(diǎn)中的問(wèn)題,即不能把文件鎖定到指定的已存在的數(shù)據(jù)文件上的問(wèn)題,我們提出了一種新的解決方案,就是區(qū)域鎖定。

簡(jiǎn)單點(diǎn)來(lái)說(shuō),區(qū)域鎖定就是,文件中的某個(gè)部分被鎖定了,但其他程序可以訪問(wèn)這個(gè)文件中的其他部分。

然而,區(qū)域鎖定的創(chuàng)建和使用都比上面說(shuō)的文件鎖定復(fù)雜很多。

1、創(chuàng)建區(qū)域鎖定

在Linux上為實(shí)現(xiàn)這一功能,我們可以使用fcntl系統(tǒng)調(diào)用和lockf調(diào)用,但是下面以fcntl系統(tǒng)調(diào)用來(lái)講解區(qū)域鎖定的創(chuàng)建。

fctnl的函數(shù)原理為:

int fctnl(int fildes, int command, ...);

它對(duì)一個(gè)打開(kāi)的文件描述進(jìn)行操作,并能根據(jù)command參數(shù)的設(shè)置完成不同的任務(wù),它有三個(gè)可選的任務(wù):F_GETLK,F(xiàn)_SETLK,F_SETLKW,至于這三個(gè)參數(shù)的意義下面再詳述。而當(dāng)使用這些命令時(shí),fcntl的第三個(gè)參數(shù)必須是一個(gè)指向flock結(jié)構(gòu)的指針,所以在實(shí)際應(yīng)用中,fctnl的函數(shù)原型一般為:int fctnl(int fildes, int command, struct flock *flock_st);

2、flock結(jié)構(gòu)

準(zhǔn)確來(lái)說(shuō),flock結(jié)構(gòu)依賴具體的實(shí)現(xiàn),但是它至少包括下面的成員:

short l_type;文件鎖的類型,對(duì)應(yīng)于F_RDLCK(讀鎖,也叫共享鎖),F(xiàn)_UNLCK(解鎖,也叫清除鎖),F(xiàn)_WRLCK(寫(xiě)鎖,也叫獨(dú)占鎖)中的一個(gè)。

short l_whence;從文件的哪個(gè)相對(duì)位置開(kāi)始計(jì)算,對(duì)應(yīng)于SEEK_SET(文件頭),SEEK_CUR(當(dāng)前位置),SEEK_END(文件尾)中的一個(gè)。

off_t l_start;從l_whence開(kāi)始的第l_start個(gè)字節(jié)開(kāi)始計(jì)算。

off_t l_len;鎖定的區(qū)域的長(zhǎng)度。

pid_t l_pid;用來(lái)記錄參持有鎖的進(jìn)程。

成員l_whence、l_start和l_len定義了一個(gè)文件中的一個(gè)區(qū)域,即一個(gè)連續(xù)的字節(jié)集合,例如:

struct flock region;

region.l_whence = SEEK_SET;

region.l_start = 10;

region.l_len = 20;

則表示fcntl函數(shù)操作鎖定的區(qū)域?yàn)槲募^開(kāi)始的第10到29個(gè)字節(jié)之間的這20個(gè)字節(jié)。

3、文件鎖的類型

從上面的flock的成員l_type的取值我們可以知道,文件鎖的類型主要有三種,這里對(duì)他們進(jìn)行詳細(xì)的解說(shuō)。

F_RDLCK:

從它的名字我們就可以知道,它是一個(gè)讀鎖,也叫共享鎖。許多不同的進(jìn)程可以擁有文件同一(或重疊)區(qū)域上的讀(共享)鎖。而且只要任一進(jìn)程擁有一把讀(共享)鎖,那么就沒(méi)有進(jìn)程可以再獲得該區(qū)域上的寫(xiě)(獨(dú)占)鎖。為了獲得一把共享鎖,文件必須以“讀”或“讀/寫(xiě)”方式打開(kāi)。

簡(jiǎn)單點(diǎn)來(lái)說(shuō)就是,當(dāng)一個(gè)進(jìn)程在讀文件中的數(shù)據(jù)時(shí),文件中的數(shù)據(jù)不能被改變或改寫(xiě),這是為了防止數(shù)據(jù)被改變而使讀數(shù)據(jù)的程序讀取到錯(cuò)亂的數(shù)據(jù),而文件中的同一個(gè)區(qū)域能被多個(gè)進(jìn)程同時(shí)讀取,這是容易理解的,因?yàn)樽x不會(huì)破壞數(shù)據(jù),或者說(shuō)讀操作不會(huì)改變文件的數(shù)據(jù)。

F_WRLCK:

從它的名字,我們就可以知道,它是一個(gè)寫(xiě)鎖,也叫獨(dú)占鎖。只有一個(gè)進(jìn)程可以在文件中的任一特定區(qū)域擁有一把寫(xiě)(獨(dú)占)鎖。一旦一個(gè)進(jìn)程擁有了這樣一把鎖,任何其他進(jìn)程都無(wú)法在該區(qū)域上獲得任何類型的鎖。為了獲得一把寫(xiě)(獨(dú)占)鎖,文件也必須以“讀”或“讀/寫(xiě)”方式打開(kāi)。

簡(jiǎn)單點(diǎn)來(lái)說(shuō),就是一個(gè)文件同一區(qū)域(或重疊)區(qū)域進(jìn)在同一時(shí)間,只能有一個(gè)進(jìn)程能對(duì)其進(jìn)行寫(xiě)操作,并且在寫(xiě)操作進(jìn)行期間,其他的進(jìn)程不能對(duì)該區(qū)域進(jìn)行讀取數(shù)據(jù)。這個(gè)要求是顯然易見(jiàn)的,因?yàn)槿绻麅蓚€(gè)進(jìn)程同時(shí)對(duì)一個(gè)文件進(jìn)行寫(xiě)操作,就會(huì)使文件的內(nèi)容錯(cuò)亂起來(lái),而由于寫(xiě)時(shí)會(huì)改變文件中的數(shù)據(jù),所以它也不允許其他進(jìn)程對(duì)文件的數(shù)據(jù)進(jìn)行讀取和刪除文件等操作。

F_UNLCK:

從它的名字就可以知道,它用于把一個(gè)鎖定的區(qū)域解鎖。

4、不同的command的意義

在前面說(shuō)到fcntl函數(shù)的command參數(shù)時(shí),說(shuō)了三個(gè)命令選項(xiàng),這里將對(duì)它們進(jìn)行詳細(xì)的解說(shuō)。

F_GETLK命令,它用于獲取fildes(fcntl的第一個(gè)參數(shù))打開(kāi)的文件的鎖信息,它不會(huì)嘗試去鎖定文件,調(diào)用進(jìn)程可以把自己想創(chuàng)建的鎖類型信息傳遞給fcntl,函數(shù)調(diào)用就會(huì)返回將會(huì)阻止獲取鎖的任何信息,即它可以測(cè)試你想創(chuàng)建的鎖是否能成功被創(chuàng)建。fcntl調(diào)用成功時(shí),返回非-1,如果鎖請(qǐng)求可以成功執(zhí)行,flock結(jié)構(gòu)將保持不變,如果鎖請(qǐng)求被阻止,fcntl會(huì)用相關(guān)的信息覆蓋flock結(jié)構(gòu)。失敗時(shí)返回-1。

所以,如果調(diào)用成功,調(diào)用程序則可以通過(guò)檢查flock結(jié)構(gòu)的內(nèi)容來(lái)判斷其是否被修改過(guò),來(lái)檢查鎖請(qǐng)求能否被成功執(zhí)行,而又因?yàn)閘_pid的值會(huì)被設(shè)置成擁有鎖的進(jìn)程的標(biāo)識(shí)符,所以大多數(shù)情況下,可以通過(guò)檢查這個(gè)字段是否發(fā)生變化來(lái)判斷flock結(jié)構(gòu)是否被修改過(guò)。

使用F_GETLK的fcntl函數(shù)調(diào)用后會(huì)立即返回。

舉個(gè)例子來(lái)說(shuō),例如,有一個(gè)flock結(jié)構(gòu)的變量,flock_st,flock_st.l_pid = -1,文件的第10~29個(gè)字節(jié)已經(jīng)存在一個(gè)讀鎖,文件的第40~49個(gè)字節(jié)中已經(jīng)存在一個(gè)寫(xiě)鎖,則調(diào)用fcntl時(shí),如果用F_GETLK命令,來(lái)測(cè)試在第10~29個(gè)字節(jié)中是否可以創(chuàng)建一個(gè)讀鎖,因?yàn)檫@個(gè)鎖可以被創(chuàng)建,所以,fcntl返回非-1,同時(shí),flock結(jié)構(gòu)的內(nèi)容也不會(huì)改變,flock_st.l_pid = -1。而如果我們測(cè)試第40~49個(gè)字節(jié)中是否可以創(chuàng)建一個(gè)寫(xiě)鎖時(shí),由于這個(gè)區(qū)域已經(jīng)存在一個(gè)寫(xiě)鎖,測(cè)試失敗,但是fcntl還是會(huì)返回非-1,只是flock結(jié)構(gòu)會(huì)被這個(gè)區(qū)域相關(guān)的鎖的信息覆蓋了,flock_st.l_pid為擁有這個(gè)寫(xiě)鎖的進(jìn)程的進(jìn)程標(biāo)識(shí)符。

F_SETLK命令,這個(gè)命令試圖對(duì)fildes指向的文件的某個(gè)區(qū)域加鎖或解鎖,它的功能根據(jù)flock結(jié)構(gòu)的l_type的值而定。而對(duì)于這個(gè)命令來(lái)說(shuō),flock結(jié)構(gòu)的l_pid字段是沒(méi)有意義的。如果加鎖成功,返回非-1,如果失敗,則返回-1。使用F_SETLK的fcntl函數(shù)調(diào)用后會(huì)立即返回。

F_SETLKW命令,這個(gè)命令與前面的F_SETLK,命令作用相同,但不同的是,它在無(wú)法獲取鎖時(shí),即測(cè)試不能加鎖時(shí),會(huì)一直等待直到可以被加鎖為止。

5、例子

看了這么多的說(shuō)明,可能你已經(jīng)很亂了,就用下面的例子來(lái)整清你的思想吧。

源文件名為filelock2.c,用于創(chuàng)建數(shù)據(jù)文件,并將文件區(qū)域加鎖,代碼如下:

#include unistd.h #include stdlib.h #include stdio.h #include fcntl.h int main() { const char *test_file = "test_lock.txt"; int file_desc = -1; int byte_count = 0; char *byte_to_write = "A"; struct flock region_1; struct flock region_2; int res = 0; //打開(kāi)一個(gè)文件描述符 file_desc = open(test_file, O_RDWR|O_CREAT, 0666); if(!file_desc) { fprintf(stderr, "Unable to open %s for read/write ", test_file); exit(EXIT_FAILURE); } //給文件添加100個(gè)‘A’字符的數(shù)據(jù) for(byte_count = 0; byte_count 100; ++byte_count) { write(file_desc, byte_to_write, 1); } //在文件的第10~29字節(jié)設(shè)置讀鎖(共享鎖) region_1.l_type = F_RDLCK; region_1.l_whence = SEEK_SET; region_1.l_start = 10; region_1.l_len = 20; //在文件的40~49字節(jié)設(shè)置寫(xiě)鎖(獨(dú)占鎖) region_2.l_type = F_WRLCK; region_2.l_whence = SEEK_SET; region_2.l_start = 40; region_2.l_len = 10; printf("Process %d locking file ", getpid()); //鎖定文件 res = fcntl(file_desc, F_SETLK, ?ion_1); if(res == -1) { fprintf(stderr, "Failed to lock region 1 "); } res = fcntl(file_desc, F_SETLK, ?ion_2); if(res == -1) { fprintf(stderr, "Failed to lock region 2 "); } //讓程序休眠一分鐘,用于測(cè)試 sleep(60); printf("Process %d closing file ", getpid()); close(file_desc); exit(EXIT_SUCCESS); }

下面的源文件filelock3.c用于測(cè)試上一個(gè)文件設(shè)置的鎖,測(cè)試可否對(duì)兩個(gè)區(qū)域都加上一個(gè)讀鎖,代碼如下:

#include unistd.h #include stdlib.h #include stdio.h #include fcntl.h int main() { const char *test_file = "test_lock.txt"; int file_desc = -1; int byte_count = 0; char *byte_to_write = "A"; struct flock region_1; struct flock region_2; int res = 0; //打開(kāi)數(shù)據(jù)文件 file_desc = open(test_file, O_RDWR|O_CREAT, 0666); if(!file_desc) { fprintf(stderr, "Unable to open %s for read/write ", test_file); exit(EXIT_FAILURE); } //設(shè)置區(qū)域1的鎖類型 struct flock region_test1; region_test1.l_type = F_RDLCK; region_test1.l_whence = SEEK_SET; region_test1.l_start = 10; region_test1.l_len = 20; region_test1.l_pid = -1; //設(shè)置區(qū)域2的鎖類型 struct flock region_test2; region_test2.l_type = F_RDLCK; region_test2.l_whence = SEEK_SET; region_test2.l_start = 40; region_test2.l_len = 10; region_test2.l_pid = -1; //

三、解空鎖問(wèn)題

如果我要給在本進(jìn)程中沒(méi)有加鎖的區(qū)域解鎖會(huì)發(fā)生什么事情呢?而如果這個(gè)區(qū)域中其他的進(jìn)程有對(duì)其進(jìn)行加鎖又會(huì)發(fā)生什么情況呢?

如果一個(gè)進(jìn)程實(shí)際并未對(duì)一個(gè)區(qū)域進(jìn)行鎖定,而調(diào)用解鎖操作也會(huì)成功,但是它并不能解其他的進(jìn)程加在同一區(qū)域上的鎖。也可以說(shuō)解鎖請(qǐng)求最終的結(jié)果取決于這個(gè)進(jìn)程在文件中設(shè)置的任何鎖,沒(méi)有加鎖,但對(duì)其進(jìn)行解鎖得到的還是沒(méi)有加鎖的狀態(tài)。

電腦密碼忘記怎么解鎖

電腦上有各種各樣的密碼,那么這些電腦密碼忘記怎么解鎖呢?下面我就為大家一一介紹!

一、忘記開(kāi)機(jī)密碼

開(kāi)機(jī)密碼是指你在打開(kāi)電腦開(kāi)機(jī)自檢后就跳出的密碼。這時(shí)你只有輸入正確的密碼后練作系統(tǒng)才啟動(dòng)。這種 密碼出現(xiàn)時(shí),你就想進(jìn)入電腦的BIOS設(shè)置都不行,所以安全性相對(duì)要好(建議筆記本電腦不要設(shè)置此類密碼。因?yàn)橐坏┩浢艽a,然后又丟了相應(yīng)的解密盤(pán)的話,你可就要去筆記本產(chǎn)商維修店去燒錢(qián)了)。解決方法:打開(kāi)機(jī)箱,把主板上的CMOS鋰電池取出來(lái),過(guò)一會(huì)兒(5-10分鐘),再放進(jìn)去,密碼自動(dòng)消失。原理:因?yàn)殚_(kāi)機(jī)密碼是通進(jìn)BIOS設(shè)置的,它會(huì)保存在主板上CMOS中,這種存儲(chǔ)器在長(zhǎng)時(shí)間掉電后內(nèi)容會(huì)消失,所以密碼也隨之消失。

二、忘記BIOS設(shè)置密碼

BIOS設(shè)置密碼是在開(kāi)機(jī)自檢過(guò)程中通過(guò)按相應(yīng)鍵(不同BIOS的鍵不同,Aword、與AMI的為DEL)進(jìn)入BIOS進(jìn)行設(shè)置時(shí)的密碼,開(kāi)機(jī)密碼也是的在這里邊設(shè)置的。此密碼是對(duì)BIOS設(shè)置的權(quán)限進(jìn)行保護(hù)。不影響練作系統(tǒng)的啟動(dòng)。解決方法:可以通過(guò)CMOS放電,但最好是用debug來(lái)清除它。因?yàn)榭偸欠娔X硬件,會(huì)使它的使用壽命更短。在啟動(dòng)練作系統(tǒng)后,進(jìn)入DOS環(huán)境,輸入debug命令,這時(shí)會(huì)出現(xiàn)“-”的輸入提示符,然后輸入以下命令

-o 70 10

-o 71 10

-q

相信通過(guò)此練作,就能清除密碼。

原理:命令行中都用到了70和71兩個(gè)數(shù)字,這是因?yàn)镃MOS中數(shù)據(jù)訪問(wèn)是通過(guò)70和71這兩個(gè)I/O端口來(lái)實(shí)現(xiàn)的。端口70H是一個(gè)字節(jié)的地址端口,用來(lái)設(shè)置CMOS中數(shù)據(jù)的地址,而端口71H則是用來(lái)讀寫(xiě)端口70H設(shè)置CMOS地址中的數(shù)據(jù)單元內(nèi)容。

三、忘記Windows XP登錄密碼

解決方法一、用net 命令(假設(shè)忘記密碼的用戶名為xxcxz)

我們知道在Windows XP中提供了“net user”命令,該命令可以添加、修改用戶賬戶信息,其語(yǔ)法格式為:

net user [UserName [Password | *] [options]] [/domain]

net user [UserName {Password | *} /add [options] [/domain]

net user [UserName [/] [/domain]]

1、重新啟動(dòng)計(jì)算機(jī),在啟動(dòng)畫(huà)面出現(xiàn)后馬上按下F8鍵,選擇“帶命令行的安全模式”。

2、運(yùn)行過(guò)程結(jié)束時(shí),系統(tǒng)列出了系統(tǒng)超級(jí)用戶“administrator”和本地用戶“xxcxz”的選擇菜單,鼠標(biāo)單擊“administrator”,進(jìn)入命令行模式。

3、鍵入命令:“net user xxcxz 123456”,強(qiáng)制將“xxcxz”用戶的口令更改為“123456”。若想在此添加一新用戶(如:用戶名為abcdef,口令為123456)的話,請(qǐng)鍵入“net user abcdef 123456 /add”,添加后可用“net localgroup administrators abcdef /add”命令將用戶提升為系統(tǒng)管理組“administrators”的用戶,并使其具有超級(jí)權(quán)限。

4、重新啟動(dòng)計(jì)算機(jī),選擇正常模式下運(yùn)行,就可以用更改后的口令“123456”登錄“xxcxz”用戶了。

解決方法二、利用“administrator”

我們知道在安裝Windows XP過(guò)程中,首先是以“administrator”默認(rèn)登錄,然后會(huì)要求創(chuàng)建一個(gè)新賬戶,以便進(jìn)入Windows XP時(shí)使用此新建賬戶登錄,而且在Windows XP的登錄界面中也只會(huì)出現(xiàn)創(chuàng)建的這個(gè)用戶賬號(hào),不會(huì)出現(xiàn)“administrator”,但實(shí)際上該“administrator”賬號(hào)還是存在的,并且密碼為空。

當(dāng)我們了解了這一點(diǎn)以后,假如忘記了登錄密碼的話,在登錄界面上,按住Ctrl+Alt鍵,再按住Del鍵二次,即可出現(xiàn)經(jīng)典的登錄畫(huà)面,此時(shí)在用戶名處鍵入“administrator”,密碼為空進(jìn)入,然后再修改“zhangbp”的口令即可。

四、忘記Linux root登錄密碼

linux是另一種與Microsoft練作系統(tǒng)大不相同的練作系統(tǒng),公司的服務(wù)器就是應(yīng)用這個(gè)練作系統(tǒng)。它的具有較好的安全性,而且其內(nèi)核是免費(fèi)的,但練作稍微復(fù)雜。 root賬號(hào) 是Linux中默認(rèn)的.練作系統(tǒng)管理員登錄密碼,相當(dāng)于Microsft windowsNT/2K中的Administrator。以root命今登錄后具有很大的管理練作權(quán)限,既然能將root密碼都改掉,那么其它用戶密碼就更是”小菜一碟”。但是在更改密碼時(shí)必須重啟計(jì)算機(jī),想Telnet一類方法可能就不能更改。

解決方法一. lilo

1. 在出現(xiàn) lilo: 提示時(shí)鍵入 linux single

畫(huà)面顯示 lilo: linux single

2. 回車計(jì)算機(jī)啟動(dòng)后可直接進(jìn)入linux命令行

3. #vi /etc/shadow

將第一行,即以root開(kāi)頭的一行中root:后和下一個(gè):前的內(nèi)容刪除,

第一行將類似于

root::......

保存

4. #reboot重啟,root密碼為空

解決方法二. grub

1. 在出現(xiàn)grub畫(huà)面時(shí),用上下鍵選中你平時(shí)啟動(dòng)linux的那一項(xiàng)(別選dos喲),然后按e鍵

2. 再次用上下鍵選中你平時(shí)啟動(dòng)linux的那一項(xiàng)(類似于kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/),然后按e鍵

3. 修改你現(xiàn)在見(jiàn)到的命令行,加入single,結(jié)果如下:

kernel /boot/vmlinuz-2.4.18-14 single ro root=LABEL=/

4. 回車返回,然后按b鍵啟動(dòng),即可直接進(jìn)入linux命令行

5. #vi /etc/shadow

將第一行,即以root開(kāi)頭的一行中root:后和下一個(gè):前的內(nèi)容刪除, 第一行將類似于

root::......

保存

6. #reboot重啟,root密碼為空

解決方法三、將本機(jī)的硬盤(pán)拿下來(lái),掛到其他的linux系統(tǒng)上,采用的辦法與第二種相同

原理:在LINUX練作系統(tǒng)中,各類文件都放在一個(gè)固定的目錄下(UNIX也是這樣),”/”就是根目錄,而練作系統(tǒng)登錄密碼就放在/etc目錄下,若登錄密碼經(jīng)過(guò)加密的,就放在shadow文件中;而未經(jīng)加密的就放于password文件中(因好久沒(méi)有用linux所以此文件名記得不太清楚)。找到相應(yīng)的要改密的用戶命,在相應(yīng)的項(xiàng)(因?yàn)榇宋募?nèi)容是以固定的格式放置的)上將密碼刪除即可。

linux 下如何通過(guò)root 修改別的賬戶密碼

首先,用root用戶登陸Linux系統(tǒng)或者使用su、sudo等命令提升到root權(quán)限。\x0d\x0a\x0d\x0a其次,修改帳戶密碼,只需要使用passwd命令即可,該命令詳細(xì)介紹如下:\x0d\x0a passwd 選項(xiàng) 用戶名\x0d\x0a可使用的選項(xiàng):\x0d\x0a-l 鎖定口令,即禁用賬號(hào)。\x0d\x0a-u 口令解鎖。\x0d\x0a-d 使賬號(hào)無(wú)口令。\x0d\x0a-f 強(qiáng)迫用戶下次登錄時(shí)修改口令。\x0d\x0a如果默認(rèn)用戶名,則修改當(dāng)前用戶的口令。\x0d\x0a例如,假設(shè)當(dāng)前用戶是sam,則下面的命令修改該用戶自己的口令:\x0d\x0a$ passwd\x0d\x0aOld password:******\x0d\x0aNew password:*******\x0d\x0aRe-enter new password:*******\x0d\x0a如果是超級(jí)用戶,可以用下列形式指定任何用戶的口令:\x0d\x0a# passwd sam\x0d\x0aNew password:*******\x0d\x0aRe-enter new password:*******\x0d\x0a普通用戶修改自己的口令時(shí),passwd命令會(huì)先詢問(wèn)原口令,驗(yàn)證后再要求用戶輸入兩遍新口令,如果兩次輸入的口令一致,則將這個(gè)口令指定給用戶;而超級(jí)用戶為用戶指定口令時(shí),就不需要知道原口令。\x0d\x0a為了系統(tǒng)安全起見(jiàn),用戶應(yīng)該選擇比較復(fù)雜的口令,例如最好使用8位長(zhǎng)的口令,口令中包含有大寫(xiě)、小寫(xiě)字母和數(shù)字,并且應(yīng)該與姓名、生日等不相同。\x0d\x0a為用戶指定空口令時(shí),執(zhí)行下列形式的命令:\x0d\x0a# passwd -d sam\x0d\x0a此命令將用戶sam的口令刪除,這樣用戶sam下一次登錄時(shí),系統(tǒng)就不再詢問(wèn)口令。\x0d\x0apasswd命令還可以用-l(lock)選項(xiàng)鎖定某一用戶,使其不能登錄,例如:\x0d\x0a# passwd -l sam


網(wǎng)站題目:linux系統(tǒng)解鎖命令,linux用戶解鎖命令
分享地址:http://weahome.cn/article/phjheo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部