為什麼不能在SSH(Secure Shell)登入中設定ulimit值?

來源:互聯網
上載者:User

SuSE上的一些問題,可能需要另參考:http://blog.chinaunix.net/u2/64804/showart.php?id=2026903


相關版本:紅帽企業Linux

 

現象:

 

如果你在檔案/etc/security/limits.conf中設定了值。 可是如果使用者是通過ssh登入到系統的話。 設定將不會生效。 如果使用者是通過telnet或者是本地登入的話,那麼設定是生效的。

 

解決方案:

 

這個問題因該歸結於SSH登入採取的方式。 當一個使用者通過SSH登入, SSH守護進程會建立一個新的進程去處理這個串連。 這樣的話, 這個進程的上下文就會被這個使用者使用。 應為普通使用者無法增加他們的ulimit限制。 所以即使在檔案/etc/security/limits.conf中有較高的數值也不能被啟用生效。 這是因為調用的程式,如sshd。 限制了修改屬性的許可權。

 

這個問題目前有兩個解決方案。第一步需要對SSHD伺服器進行設定修改。另一步是使用者每一次登陸時都需要運行命令。

 

1. 修改SSH守護進程的設定檔/etc/ssh/sshd_config,關閉權限隔離。修改如下

 

      #UsePrivilegeSeparation yes

 

把它改成。

 

      UsePrivilegeSeparation no

 

並且修改

 

      #PAMAuthenticationViaKbdInt no

 

修改之後如下

 

      PAMAuthenticationViaKbdInt yes

 

關閉這些選項會帶來一些安全風險。但那也只是在SSH守護進程的漏洞被發現並且被利用的情況下才會出現。關閉之後就意味著sshd不會建立非特權子進程去處理進站串連。如果漏洞存在而且被利用,則有人可以控制sshd進程,而這個進程是以root身份運行 的。到目前還沒有已知的弱點,如果你經常使用up2date升級你的系統的話,那麼任何漏洞都會在發現之後被迅速的修正。

 

要使改動生效,需要重新啟動SSHD.

 

         # service sshd restart

 

設定改動之後,當使用者通過SSH登陸之後,這些會話的最大開啟檔案數參數會按照/etc/security/limits.conf檔案被設定。不需要額外的操作。

 

2. 使用 “su - $USER”來設定最大開啟檔案數。在使用者通過ssh登陸之後,使用如下命令

 

         su - $USER

 

使用者被要求再次輸入密碼,上述的操作將會使ulimit被正確的設定。使用者將需要在每次登陸時運行 su - $USER 。 才能正確設定檔案限制。

 

注意: 這個問題已經在SSH 3.8版本中得到瞭解決。 並且紅帽企業Linux的後續產品將會採用這個版本

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.