Почему я не могу изменить режим /proc/sys/kernel/pty/max, даже если я root?

Поскольку pty ограничено, я хочу изменить содержание /proc/sys/kernel/pty/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

Я редактирую файл max напрямую, используя root, но это не удается. я использую :w! в VIM, но тогда я вижу следующую картину:

затем я редактирую файл max напрямую, используя root, но не удалось

поэтому я пытался chmod Макс сначала, но это также не удалось:

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

Итак, как я могу изменить содержание /proc/sys/kernel/pty/max?

редактировать

@ Джон-лин:

также не удалось с помощью 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

2 ответа

Решение

Если вы хотите изменить максимальное количество псевдо-терминалов, которое вы можете иметь, не редактируйте файл proc. Вы должны внести изменения в /etc/sysctl.conf а затем снова запустить sysctl -p изменить параметры ядра во время выполнения. В частности, измените (или добавьте) строку, которая имеет:

kernel.pty.max = <max>

+ Изменить <max> на номер, который вы хотите.

Просто испытал ту же проблему в моей среде.

Очевидно, OpenVZ контролирует эти переменные на уровне хоста, т.е. если вы хотите изменить какой-либо параметр, вам нужно изменить его на хост-компьютере, и в результате он будет применен ко всем виртуальным машинам, работающим на этом физическом сервере.

Другие вопросы по тегам