Назад | Перейти на главную страницу

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

поскольку 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

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

поэтому я попытался 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?

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

@ Джон Лин:

он также не смог использовать 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:

Также не удалось использовать эхо:

[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

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

kernel.pty.max = <max>

+ Изменить <max> на нужный номер.

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

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