1. 程式人生 > >【linux】ssh配置檔案詳解

【linux】ssh配置檔案詳解

nux中/etc/hosts.deny檔案可以配置限制訪問ip等資訊,它同apache中order deny,allow 差不多,不過寫法有些不同。只允許192.168.1.1訪問,這樣寫:


sshd: ALL EXCEPT 192.168.1.1

同理在/etc/下有個hosts.allow,同樣可以進行配置。

sshd_config配置詳解
sshd_config是OpenSSH SSH伺服器守護程序配置檔案。sshd預設是從/etc/ssh/sshd_config(也可以通過-f命令列選項指定配置檔案:/etc/init.d/sshd -f filename start)讀取配置資訊。

sshd_config配置檔案由”指令 值”對組成的,每行一個。空行和以’#'開頭的行都將被忽略。如果值中含有空白符或者其他特殊符號,那麼可以通過在兩邊加上雙引號(”)進行界定。[注意]值是大小寫敏感的,但指令是大小寫無關的。

當前所有可以使用的配置指令如下:


AcceptEnv

指定客戶端傳送的哪些環境變數將會被傳遞到會話環境中。[注意]只有SSH-2協議支援環境變數的傳遞。細節可以參考 ssh_config(5) 中的 SendEnv 配置指令。指令的值是空格分隔的變數名列表(其中可以使用’*'和’?'作為萬用字元)。也可以使用多個 AcceptEnv 達到同樣的目的。需要注意的是,有些環境變數可能會被用於繞過禁止使用者使用的環境變數。由於這個原因,該指令應當小心使用。預設是不傳遞任何環境變數。


AddressFamily

指定 sshd(8) 應當使用哪種地址族。取值範圍是:”any”(預設)、”inet”(僅IPv4)、”inet6″(僅IPv6)。


AllowGroups

這個指令後面跟著一串用空格分隔的組名列表(其中可以使用”*”和”?”萬用字元)。預設允許所有組登入。如果使用了這個指令,那麼將僅允許這些組中的成員登入,而拒絕其它所有組。這裡的”組”是指”主組”(primary group),也就是/etc/passwd檔案中指定的組。這裡只允許使用組的名字而不允許使用GID。相關的 allow/deny 指令按照下列順序處理:DenyUsers, AllowUsers, DenyGroups, AllowGroups。


AllowTcpForwarding

是否允許TCP轉發,預設值為”yes”。禁止TCP轉發並不能增強安全性,除非禁止了使用者對shell的訪問,因為使用者可以安裝他們自己的轉發器。


AllowUsers

這個指令後面跟著一串用空格分隔的使用者名稱列表(其中可以使用”*”和”?”萬用字元)。預設允許所有使用者登入。如果使用了這個指令,那麼將僅允許這些使用者登入,而拒絕其它所有使用者。如果指定了 [email protected] 模式的使用者,那麼 USER 和 HOST 將同時被檢查。這裡只允許使用使用者的名字而不允許使用UID。相關的 allow/deny 指令按照下列順序處理: DenyUsers, AllowUsers, DenyGroups, AllowGroups。


AuthorizedKeysFile

存放該使用者可以用來登入的 RSA/DSA 公鑰。該指令中可以使用下列根據連線時的實際情況進行展開的符號:%% 表示’%'、%h 表示使用者的主目錄、%u 表示該使用者的使用者名稱。經過擴充套件之後的值必須要麼是絕對路徑,要麼是相對於使用者主目錄的相對路徑。預設值是”.ssh/authorized_keys”。


Banner

將這個指令指定的檔案中的內容在使用者進行認證前顯示給遠端使用者。這個特性僅能用於SSH-2,預設什麼內容也不顯示。”none”表示禁用這個特性。


ChallengeResponseAuthentication

是否允許質疑-應答(challenge-response)認證。預設值是”yes”。所有 login.conf(5) 中允許的認證方式都被支援。


Ciphers

指定SSH-2允許使用的加密演算法。多個演算法之間使用逗號分隔。可以使用的演算法如下:”aes128-cbc”, “aes192-cbc”, “aes256-cbc”, “aes128-ctr”, “aes192-ctr”, “aes256-ctr”,”3des-cbc”, “arcfour128″, “arcfour256″, “arcfour”, “blowfish-cbc”, “cast128-cbc”。預設值是可以使用上述所有演算法。


ClientAliveCountMax

sshd(8) 在未收到任何客戶端迴應前最多允許傳送多少個”alive”訊息。預設值是 3 。到達這個上限後,sshd(8) 將強制斷開連線、關閉會話。需要注意的是,”alive”訊息與 TCPKeepAlive 有很大差異。alive”訊息是通過加密連線傳送的,因此不會被欺騙;而 TCPKeepAlive 卻是可以被欺騙的。如果 ClientAliveInterval 被設為 15 並且將 ClientAliveCountMax 保持為預設值,那麼無應答的客戶端大約會在45秒後被強制斷開。這個指令僅可以用於SSH-2協議。


ClientAliveInterval

設定一個以秒記的時長,如果超過這麼長時間沒有收到客戶端的任何資料,sshd(8) 將通過安全通道向客戶端傳送一個”alive”訊息,並等候應答。預設值 0 表示不傳送”alive”訊息。這個選項僅對SSH-2有效


Compression

是否對通訊資料進行加密,還是延遲到認證成功之後再對通訊資料加密。可用值:”yes”, “delayed”(預設), “no”。


DenyGroups

這個指令後面跟著一串用空格分隔的組名列表(其中可以使用”*”和”?”萬用字元)。預設允許所有組登入。如果使用了這個指令,那麼這些組中的成員將被拒絕登入。這裡的”組”是指”主組”(primary group),也就是/etc/passwd檔案中指定的組。這裡只允許使用組的名字而不允許使用GID。相關的 allow/deny 指令按照下列順序處理:DenyUsers, AllowUsers, DenyGroups, AllowGroups。


DenyUsers

這個指令後面跟著一串用空格分隔的使用者名稱列表(其中可以使用”*”和”?”萬用字元)。預設允許所有使用者登入。如果使用了這個指令,那麼這些使用者將被拒絕登入。如果指定了 [email protected] 模式的使用者,那麼 USER 和 HOST 將同時被檢查。這裡只允許使用使用者的名字而不允許使用UID。相關的 allow/deny 指令按照下列順序處理:DenyUsers, AllowUsers, DenyGroups, AllowGroups。


ForceCommand

強制執行這裡指定的命令而忽略客戶端提供的任何命令。這個命令將使用使用者的登入shell執行(shell -c)。這可以應用於 shell 、命令、子系統的完成,通常用於 Match 塊中。這個命令最初是在客戶端通過 SSH_ORIGINAL_COMMAND 環境變數來支援的。


GatewayPorts

是否允許遠端主機連線本地的轉發埠。預設值是”no”。sshd(8) 預設將遠端埠轉發繫結到loopback地址。這樣將阻止其它遠端主機連線到轉發埠。GatewayPorts 指令可以讓 sshd 將遠端埠轉發繫結到非loopback地址,這樣就可以允許遠端主機連線了。 “no”表示僅允許本地連線,”yes”表示強制將遠端埠轉發繫結到統配地址(wildcard address),”clientspecified”表示允許客戶端選擇將遠端埠轉發繫結到哪個地址。


GSSAPIAuthentication

是否允許使用基於 GSSAPI 的使用者認證。預設值為”no”。僅用於SSH-2。


GSSAPICleanupCredentials

是否在使用者退出登入後自動銷燬使用者憑證快取。預設值是”yes”。僅用於SSH-2。


HostbasedAuthentication

這個指令與 RhostsRSAAuthentication 類似,但是僅可以用於SSH-2。推薦使用預設值”no”。推薦使用預設值”no”禁止這種不安全的認證方式。


HostbasedUsesNameFromPacketOnly

在開啟 HostbasedAuthentication 的情況下,指定伺服器在使用 ~/.shosts ~/.rhosts /etc/hosts.equiv 進行遠端主機名匹配時,是否進行反向域名查詢。”yes”表示 sshd(8) 信任客戶端提供的主機名而不進行反向查詢。預設值是”no”。


HostKey

主機私鑰檔案的位置。如果許可權不對,sshd(8) 可能會拒絕啟動。SSH-1預設是 /etc/ssh/ssh_host_key 。SSH-2預設是 /etc/ssh/ssh_host_rsa_key 和 /etc/ssh/ssh_host_dsa_key 。一臺主機可以擁有多個不同的私鑰。”rsa1″僅用於SSH-1,”dsa”和”rsa”僅用於SSH-2。


IgnoreRhosts

是否在 RhostsRSAAuthentication 或 HostbasedAuthentication 過程中忽略 .rhosts 和 .shosts 檔案。不過 /etc/hosts.equiv 和 /etc/shosts.equiv 仍將被使用。推薦設為預設值”yes”。


IgnoreUserKnownHosts

是否在 RhostsRSAAuthentication 或 HostbasedAuthentication 過程中忽略使用者的 ~/.ssh/known_hosts 檔案。預設值是”no”。為了提高安全性,可以設為”yes”。


KerberosAuthentication

是否要求使用者為 PasswordAuthentication 提供的密碼必須通過 Kerberos KDC 認證,也就是是否使用Kerberos認證。要使用Kerberos認證,伺服器需要一個可以校驗 KDC identity 的 Kerberos servtab 。預設值是”no”。


KerberosGetAFSToken

如果使用了 AFS 並且該使用者有一個 Kerberos 5 TGT,那麼開啟該指令後,將會在訪問使用者的家目錄前嘗試獲取一個 AFS token 。預設為”no”。


KerberosOrLocalPasswd

如果 Kerberos 密碼認證失敗,那麼該密碼還將要通過其它的認證機制(比如 /etc/passwd)。預設值為”yes”。


KerberosTicketCleanup

是否在使用者退出登入後自動銷燬使用者的 ticket 。預設值是”yes”。


KeyRegenerationInterval

在SSH-1協議下,短命的伺服器金鑰將以此指令設定的時間為週期(秒),不斷重新生成。這個機制可以儘量減小金鑰丟失或者黑客攻擊造成的損失。設為 0 表示永不重新生成,預設為 3600(秒)。


ListenAddress

指定 sshd(8) 監聽的網路地址,預設監聽所有地址。可以使用下面的格式:

ListenAddress host|IPv4_addr|IPv6_addr
ListenAddress host|IPv4_addr:port
ListenAddress [host|IPv6_addr]:port

如果未指定 port ,那麼將使用 Port 指令的值。可以使用多個 ListenAddress 指令監聽多個地址。


LoginGraceTime

限制使用者必須在指定的時限內認證成功,0 表示無限制。預設值是 120 秒。


LogLevel

指定 sshd(8) 的日誌等級(詳細程度)。可用值如下:QUIET, FATAL, ERROR, INFO(預設), VERBOSE, DEBUG, DEBUG1, DEBUG2, DEBUG3 DEBUG 與 DEBUG1 等價;DEBUG2 和 DEBUG3 則分別指定了更詳細、更羅嗦的日誌輸出。比 DEBUG 更詳細的日誌可能會洩漏使用者的敏感資訊,因此反對使用。


MACs

指定允許在SSH-2中使用哪些訊息摘要演算法來進行資料校驗。可以使用逗號分隔的列表來指定允許使用多個演算法。預設值(包含所有可以使用的演算法)是:hmac-md5,hmac-sha1,[email protected],hmac-ripemd160,hmac-sha1-96,hmac-md5-96。


Match

引入一個條件塊。塊的結尾標誌是另一個 Match 指令或者檔案結尾。如果 Match 行上指定的條件都滿足,那麼隨後的指令將覆蓋全域性配置中的指令。Match 的值是一個或多個”條件-模式”對。可用的”條件”是:User, Group, Host, Address 。只有下列指令可以在 Match 塊中使用:AllowTcpForwarding, Banner,ForceCommand, GatewayPorts, GSSApiAuthentication,KbdInteractiveAuthentication, KerberosAuthentication,PasswordAuthentication, PermitOpen, PermitRootLogin,RhostsRSAAuthentication, RSAAuthentication, X11DisplayOffset,X11Forwarding, X11UseLocalHost。


MaxAuthTries

指定每個連線最大允許的認證次數。預設值是 6 。如果失敗認證的次數超過這個數值的一半,連線將被強制斷開,且會生成額外的失敗日誌訊息。


MaxStartups

最大允許保持多少個未認證的連線。預設值是 10 。到達限制後,將不再接受新連線,除非先前的連線認證成功或超出 LoginGraceTime 的限制。


PasswordAuthentication

是否允許使用基於密碼的認證。預設為”yes”。


PermitEmptyPasswords

是否允許密碼為空的使用者遠端登入。預設為”no”


PermitOpen

指定TCP埠轉發允許的目的地,可以使用空格分隔多個轉發目標。預設允許所有轉發請求。合法的指令格式如下:
PermitOpen host:port
PermitOpen IPv4_addr:port
PermitOpen [IPv6_addr]:port
“any”可以用於移除所有限制並允許一切轉發請求。


PermitRootLogin

是否允許 root 登入。可用值如下:
“yes”(預設) 表示允許。”no”表示禁止。
“without-password”表示禁止使用密碼認證登入。
“forced-commands-only”表示只有在指定了 command 選項的情況下才允許使用公鑰認證登入。
同時其它認證方法全部被禁止。這個值常用於做遠端備份之類的事情。


PermitTunnel

是否允許 tun(4) 裝置轉發。可用值如下:
“yes”, “point-to-point”(layer 3), “ethernet”(layer 2), “no”(預設)。
“yes”同時蘊含著”point-to-point”和”ethernet”。


PermitUserEnvironment

指定是否允許 sshd(8) 處理 ~/.ssh/environment 以及 ~/.ssh/authorized_keys 中的 environment= 選項。預設值是”no”。如果設為”yes”可能會導致使用者有機會使用某些機制(比如 LD_PRELOAD)繞過訪問控制,造成安全漏洞。


PidFile

指定在哪個檔案中存放SSH守護程序的程序號,預設為 /var/run/sshd.pid 檔案。


Port

指定 sshd(8) 守護程序監聽的埠號,預設為 22 。可以使用多條指令監聽多個埠。預設將在本機的所有網路介面上監聽,但是可以通過 ListenAddress 指定只在某個特定的介面上監聽


PrintLastLog

指定 sshd(8) 是否在每一次互動式登入時列印最後一位使用者的登入時間。預設值是”yes”。


PrintMotd

指定 sshd(8) 是否在每一次互動式登入時列印 /etc/motd 檔案的內容。預設值是”yes”。


Protocol

指定 sshd(8) 支援的SSH協議的版本號。’1′和’2′表示僅僅支援SSH-1和SSH-2協議。”2,1″表示同時支援SSH-1和SSH-2協議。


PubkeyAuthentication

是否允許公鑰認證。僅可以用於SSH-2。預設值為”yes”。


RhostsRSAAuthentication

是否使用強可信主機認證(通過檢查遠端主機名和關聯的使用者名稱進行認證)。僅用於SSH-1。這是通過在RSA認證成功後再檢查 ~/.rhosts 或 /etc/hosts.equiv 進行認證的。出於安全考慮,建議使用預設值”no”。


RSAAuthentication

是否允許使用純 RSA 公鑰認證。僅用於SSH-1。預設值是”yes”。


ServerKeyBits

指定臨時伺服器金鑰的長度。僅用於SSH-1。預設值是 768(位)。最小值是 512 。


StrictModes

指定是否要求 sshd(8) 在接受連線請求前對使用者主目錄和相關的配置檔案進行宿主和許可權檢查。強烈建議使用預設值”yes”來預防可能出現的低階錯誤。


Subsystem

配置一個外部子系統(例如,一個檔案傳輸守護程序)。僅用於SSH-2協議。值是一個子系統的名字和對應的命令列(含選項和引數)。比如”sft /bin/sftp-server”。


SyslogFacility

指定 sshd(8) 將日誌訊息通過哪個日誌子系統(facility)傳送。有效值是:DAEMON, USER, AUTH(預設), LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL。


TCPKeepAlive

指定系統是否向客戶端傳送 TCP keepalive 訊息。預設值是”yes”。這種訊息可以檢測到死連線、連線不當關閉、客戶端崩潰等異常。可以設為”no”關閉這個特性。


UseDNS

指定 sshd(8) 是否應該對遠端主機名進行反向解析,以檢查此主機名是否與其IP地址真實對應。預設值為”yes”。


UseLogin

是否在互動式會話的登入過程中使用 login(1) 。預設值是”no”。如果開啟此指令,那麼 X11Forwarding 將會被禁止,因為 login(1) 不知道如何處理 xauth(1) cookies 。需要注意的是,login(1) 是禁止用於遠端執行命令的。


UsePrivilegeSeparation

是否讓 sshd(8) 通過建立非特權子程序處理接入請求的方法來進行許可權分離。預設值是”yes”。認證成功後,將以該認證使用者的身份建立另一個子程序。這樣做的目的是為了防止通過有缺陷的子程序提升許可權,從而使系統更加安全。


X11DisplayOffset

指定 sshd(8) X11 轉發的第一個可用的顯示區(display)數字。預設值是 10 。這個可以用於防止 sshd 佔用了真實的 X11 伺服器顯示區,從而發生混淆。


X11Forwarding

是否允許進行 X11 轉發。預設值是”no”,設為”yes”表示允許。如果允許X11轉發並且sshd(8)代理的顯示區被配置為在含有萬用字元的地址(X11UseLocalhost)上監聽。麼將可能有額外的資訊被洩漏。由於使用X11轉發的可能帶來的風險,此指令預設值為”no”。需要注意的是,禁止X11轉發並不能禁止使用者轉發X11通訊,因為使用者可以安裝他們自己的轉發器。如果啟用了 UseLogin ,那麼X11轉發將被自動禁止。


X11UseLocalhost

sshd(8) 是否應當將X11轉發伺服器繫結到本地loopback地址。預設值是”yes”。sshd 預設將轉發伺服器繫結到本地loopback地址並將 DISPLAY 環境變數的主機名部分設為”localhost”。這可以防止遠端主機連線到 proxy display 。不過某些老舊的X11客戶端不能在此配置下正常工作。為了相容這些老舊的X11客戶端,你可以設為”no”。


XAuthLocation

指定 xauth(1) 程式的絕對路徑。預設值是 /usr/X11R6/bin/xauth。


時間格式
在 sshd(8) 命令列引數和配置檔案中使用的時間值可以通過下面的格式指定:time[qualifier] 。其中的 time 是一個正整數,而 qualifier 可以是下列單位之一:


<無>    秒 s | S   秒 m | M   分鐘 h | H   小時 d | D   天 w | W  星期

可以通過指定多個數值來累加時間,比如:1h30m 1 小時 30 分鐘 (90 分鐘)

sshd_config配置示例


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 
#伺服器端配置 /etc/ssh/sshd_config #只考慮協議版本2   #全域性配置 VersionAddendum TecZm-20050505       #在telnet ip 22時只能看出openssh的版本,看不出OS Protocol 2         #使用協議版本2  Port 22             #sshd監聽22埠 ListenAddress 192.168.7.1           #sshd只監聽目標ip為192.168.7.1的請求 AllowGroups     wheel myguest         #允許wheel組和myguest組的使用者登入 AllowUsers teczm [email protected] #允許來自以上組的teczm使用者和authen使用者登入,                                        #且authen使用者只能從主機192.168.8.5登入 #DenyGroups             #拒絕登入的組,引數設定和AllowGroups一樣 #DenyUsers             #拒絕登入的使用者,引數設定和AllowUsers一樣 #AllowTcpForwarding yes               #是否轉發的TCP包都被允許。預設是 ``yes''。 LoginGraceTime 60                     #60秒內客戶端不能登入即登入超時,sshd切斷連線。 KeyRegenerationInterval 1800         #1800秒(30分鐘)後自動重新生成伺服器的密匙。 MaxStartups 3                #設定同時發生的未驗證的併發量,即同時可以有幾個 UseDNS no                             #不使用DNS查詢客戶端。 PermitRootLogin no                     #不允許root登入,root可由wheel組使用者登入後su。 X11Forwarding no                 #禁止使用者執行遠端主機上的X程式,我沒有X,所以無所謂。 UseLogin yes                     #禁止X11Forwarding   #認證配置(口令認證、PAM認證、非對稱金鑰認證任選其一)   #口令認證 PubkeyAuthentication no       #不使用非對稱金鑰認證 PasswordAuthentication yes     #使用口令認證 PermitEmptyPasswords no         #不允許使用空密碼的使用者登入     #非對稱金鑰認證 PasswordAuthentication no                 #不使用口令認證 PubkeyAuthentication yes                 #使用非對稱金鑰認證 UsePam               no                     #yes的話非對稱金鑰驗證失敗,仍然可用口令登入 AuthorizedKeysFile .ssh/authorized_keys       #使用者認證使用的公鑰。   Subsystem sftp /usr/libexec/sftp-server

相關推薦

linuxssh配置檔案

nux中/etc/hosts.deny檔案可以配置限制訪問ip等資訊,它同apache中order deny,allow 差不多,不過寫法有些不同。只允許192.168.1.1訪問,這樣寫: sshd: ALL EXCEPT 192.168.1.1 同理在/etc/下有

轉載nginx 配置檔案

user  www www;#使用哪個使用者啟動nginx 前面是使用者,後面是組 worker_processes 4;#nginx工作的程序數量 #[ debug | info | notice | warn | error | crit ]   錯誤日誌的級別及位置

轉發centos 7開啟FTP以及新增使用者配置許可權,只允許訪問自身目錄,不能跳轉根目錄 linux下ftp配置檔案

1.切換到root使用者 2.檢視是否安裝vsftp,我這個是已經安裝的。 [[email protected] vsftpd]# rpm -qa |grep vsftpd vsftpd-3.0.2-11.el7_2.x86_64 3.如果沒有發現,則安裝。 yum ins

linuxValgrind工具集(十五):Callgrind(效能分析圖)

一、概述 1、Callgrind Callgrind用於記錄程式中函式之間的呼叫歷史資訊,對程式效能分析。預設情況下,收集的資料包括執行的指令數,它們與原始碼行的關係,函式之間的呼叫者、被呼叫者關係以及此類呼叫的數量。可選項是,對快取記憶體模擬和分支預測(類似於Cachegrin

linuxValgrind工具集(十四):Cachegrind(快取和分支預測分析器)

一、概述 Cachegrind,它模擬CPU中的一級快取I1,Dl和二級快取,能夠精確地指出程式中cache的丟失和命中。如果需要,它還能夠為我們提供cache丟失次數,記憶體引用次數,以及每行程式碼,每個函式,每個模組,整個程式產生的指令數。這對優化程式有很大的幫助。 Cach

linuxValgrind工具集(十三):DRD(執行緒錯誤檢測器)

一、概述 多執行緒程式設計需要注意的問題: 資料競爭;鎖競爭;POSIX執行緒API使用不當;死鎖; 二、使用 1、例子main.c原始碼 #include <stdio.h> #include <pthread.h> #include <s

linuxValgrind工具集(十三):Helgrind(執行緒錯誤檢測器)

一、概述 Helgrind用於檢測C、C ++和Fortran程式中使用符合POSIX標準的執行緒函式造成的同步錯誤。 POSIX中關於執行緒的主要抽象描述有:共享公共地址空間的一組執行緒、執行緒建立、執行緒連線、執行緒退出、互斥(鎖)、條件變數(執行緒間事件通知)、讀寫器鎖、自

linuxValgrind工具集(十二):DHAT:動態堆分析器

一、概述 DHAT動態堆分析器。Massif(堆分析器)是在程式結束後輸出分析結果,而DHAT是實時輸出結果,所以叫做動態堆分析器。Massif只記錄堆記憶體的申請和釋放,DHAT還會分析堆空間的使用率、使用週期等資訊。 DHAT的功能:它首先記錄在堆上分配的塊,通過分析每次記憶體訪

linuxValgrind工具集(十一):Massif(堆分析器)

一、概述 Massif是一個堆分析器。它統計程式使用的堆記憶體大小(由malloc等函式分配的記憶體)。預設情況下不統計程式所使用的所有記憶體,如果想統計所有記憶體,需要使用選項–pages-as-heap=yes。 堆分析可以幫助減少程式使用的記憶體。如果分配的記憶體還沒有釋放

linuxValgrind工具集(十):SGCheck(檢查棧和全域性陣列溢位)

一、概述 SGCheck是一種用於檢查棧中和全域性陣列溢位的工具。它的工作原理是使用一種啟發式方法,該方法源於對可能的堆疊形式和全域性陣列訪問的觀察。 棧中的資料:例如函式內宣告陣列int a[10],而不是malloc分配的,malloc分配的記憶體是在堆中。 SGCheck和Me

linuxValgrind工具集(九):Memcheck檢查的內容和方法

一、值的有效性 1、什麼是值的有效性? 英文原文是Valid-value (V) bits,直譯過來就是有效值(V)位。 我將它理解為值的有效性,就是判斷在記憶體或CPU的實體地址中儲存的資料是否有效,比如在記憶體中變數(int i)代表的物理位置(不是地址),沒有初始化,就去使用它

linuxValgrind工具集(八):Memcheck命令列引數

【linux】Valgrind工具集詳解(五):命令列詳解中不夠全,在此專門針對Memcheck工具中的命令列引數做一次詳細的解釋。 Memcheck命令列選項 –leak-check=<no|summary|yes|full> [default: summary]

linuxValgrind工具集(七):Memcheck(記憶體錯誤檢測器)

一、概述 Memcheck是一個記憶體錯誤檢測器。它可以檢測C和C ++程式中常見的以下問題: 1、非法記憶體:如越界、釋放後繼續訪問; 2、使用未初始化的值; 3、釋放記憶體錯誤:如double-free(同一記憶體上執行了兩次free)、或者 malloc、new、new[] 與

linuxValgrind工具集(六):使用Valgrind gdbserver和GDB除錯程式

一、概述 在Valgrind下執行的程式不是由CPU直接執行的。相反,它執行在Valgrind提供的合成CPU上。這就是偵錯程式在Valgrind上執行時無法除錯程式的原因。 二、快速入門 在使用Memcheck工具時使用GDB除錯程式,啟動方式如下: 1、valgrind

linuxValgrind工具集(五):命令列

一、使用方法 usage: valgrind [options] prog-and-args 使用方法:valgrind [引數選項] 程式和引數 二、選擇工具 tool-selection option, with default in [ ]: 工具選擇選項,預設值在[]

linuxValgrind工具集(三):列印資訊說明

一、列印資訊格式 Valgrind列印資訊的格式如下,很容易和程式輸出資訊區分出來 == 程序ID ==Valgrind的列印資訊 二、列印到何處 1、列印到檔案描述符中 主要是設定列印到終端上,預設情況下為2(stderr標準錯誤輸出)。如果要想列印到其他檔

專欄 - Android清單檔案

Android清單檔案詳解 它是一個應用程式的清單,它也是應用程式的“產品說明書”,向Android系統介紹應用程式的資訊,這些資訊包括應用程式的組成部分部分,如Activity,服務,廣播和內容提供者,還包括應用程式的能力,比如

linux中ftp配置檔案

vsftpd配置檔案採用“#”作為註釋符,以“#”開頭的行和空白行在解析時將被忽略,其餘的行被視為配置命令列,每個配置命令的“=”兩邊不要留有空格。對於每個配置命令,在配置檔案中還列出了相關的配置說明,利用vi編輯器可實現對配置檔案的編輯修改。方法如下:      #vi /etc/vsftpd/vsftp

linux 下 FTP 配置檔案

二、配置檔案說明 1.使用者登入和相關許可權設定 anonymous_enable=YES #設定是否允許匿名使用者登入FTP伺服器。預設為YES ftp_username=ftp #定義匿名使用者的賬戶名稱,

轉載SSH伺服器端/etc/ssh/sshd_conf配置檔案

[[email protected] ~]$cat /etc/ssh/sshd_config #Port 22