web-dev-qa-db-ja.com

ルートでも/ proc / sys / kernel / pty / maxのモードを変更できないのはなぜですか?

ptyが制限されているので、/proc/sys/kernel/pty/maxの内容を変更したいと思います。 maxの元の値は4096ですが、今度は10000に変更します。

[root@home pty]# pwd
/proc/sys/kernel/pty
[root@home pty]# ls -lh
total 0
-rw-r--r-- 1 root root 0 Aug 13 11:24 max
-r--r--r-- 1 root root 0 Aug 13 11:24 nr
vim max

Rootを使用してmaxファイルを直接編集しましたが、失敗します。 vimで:w!を使用していますが、次の図が表示されます。

then i edit max file directly using root, but failed

だから私は最初にchmod maxを試みましたが、それも失敗しました:

[root@home pty]# chmod 666 max 
chmod: changing permissions of `max': Operation not permitted
[root@home pty]# whoami 
root

では、どうすれば/proc/sys/kernel/pty/maxの内容を変更できますか?

編集

@ jon-lin:

また、sysctlコマンドの使用にも失敗しました。

[root@home kernel]# sysctl -a | less | grep pty
kernel.pty.nr = 2
kernel.pty.max = 4096
[root@home kernel]# sysctl kernel.pty.max=10000
error: "Operation not permitted" setting key "kernel.pty.max"
[root@home kernel]# sysctl -p kernel.pty.max 10000
error: unable to open preload file "kernel.pty.max"
[root@home kernel]# sysctl -p kernel.pty.max = 10000
error: unable to open preload file "kernel.pty.max"

@AlanCurry:

また、echoの使用にも失敗しました。

[root@home pty]# cat max
4096
[root@home pty]# echo 10000 > max
bash: echo: write error: Operation not permitted
[root@home pty]# echo 10000 >> max 
bash: echo: write error: Operation not permitted
[root@home pty]# cat max 
4096
1
giantforest

使用できる最大疑似端末の数を変更する場合は、procファイルを編集しないでください。 /etc/sysctl.confに変更を加えてから、sysctl -pを再実行して、実行時にカーネルパラメータを変更する必要があります。具体的には、次の行を変更(または追加)します。

kernel.pty.max = <max>

<max>を必要な数に変更します。

4
Jon Lin

私の環境でも同じ問題が発生しました。

どうやらOpenVZはホストレベルでこれらの変数を制御しているようです。つまり、設定を変更したい場合は、ホストマシンで変更する必要があり、その結果、その物理サーバーで実行されているすべてのVMに適用されます。

1
ljubomir