Я думаю, что Вам будет нелегко делать то, что Вы хотите. passwd
команда идет на многое для предотвращения просто ситуации, которую Вы описываете, чтобы препятствовать любым схемам подбора пароля и обойти много возможных проблем защиты.
Можно ли использовать useradd
команда? Типичный Linux useradd
имеет "-p" или "-пароль" опция, которая позволяет Вам установить зашифрованный пароль на некоторое значение. Можно вытащить тот зашифрованный пароль из файла /etc/shadow
.
Другая опция обезьяне с файлом /etc/shadow
. Это не должно быть слишком твердо к используемому sed
или что-то для изменения соленого, зашифрованного пароля root.
Важно знать, что существует два вида пределов:
В оболочке устанавливает мягкий предел:
ulimit -Sn 2048
Этот пример повысит фактический предел 2048, но команда успешно выполнится, только если жесткий предел (проверьте: ulimit -Hn
) то же или выше. Если Вы нуждаетесь в более высоких значениях, повышаете жесткий предел с помощью одного из методов ниже. Пределы устанавливаются для каждого процесса, и они наследованы недавно порожденными процессами, таким образом, что-либо, Вы бежите за этой командой в той же оболочке, будет иметь новые пределы.
Изменение жесткого предела на единственной сессии
Это не легко, потому что только корень может изменить жесткий предел, и после переключения на корень необходимо переключиться назад на исходного пользователя. Вот решение с sudo
:
sudo sh -c "ulimit -Hn 9000 ; exec su \"$USER\""
В Debian и многом другом системном использовании pam_limits
можно установить пределы в масштабе всей системы в /etc/security/limits.conf
и в файлах в /etc/security/limits.d
. conf файл содержит описание. Строки в качестве примера:
@webadmins hard nofile 16384
@webadmins soft nofile 8192
Это установит жесткий предел и мягкий предел по умолчанию для пользователей в группе webadmins
после входа в систему.
Значение жесткого предела ограничено глобальным пределом открытого значения дескрипторов файлов в /proc/sys/fs/file-max
который довольно высок по умолчанию в современных дистрибутивах Linux. Это значение ограничено NR_OPEN
значение используется во время компиляции ядра.
Возможно, Вы могли проверить если весь *log
файлы Вы питаетесь к tail -f
действительно активные файлы, которые должны контролироваться. Возможно, что некоторые из них уже закрываются для входа, и можно просто открыть меньшее число файлов.
У меня было предупреждение PHP в моем журнале ошибок Apache:
failed to open stream: Too many open files in ...
Итак, я узнал, что apache устанавливает это значение индивидуально при запуске (на моем Ubuntu 14.04 ). Он настроен в / etc / apache2 / envvars
. Там написано:
## If you need a higher file descriptor limit, uncomment and adjust the
## following line (default is 8192):
#APACHE_ULIMIT_MAX_FILES='ulimit -n 65536'
, поэтому мне пришлось настроить третью строку.
su
базироваться иsu
назад пользователю:su -c "ulimit -Hn 6000 ; su $USER"
– pabouk 04.08.2013, 07:55ulimit -Hn 6000; ulimit -Sn 6000
как базируются затем – rubo77 04.08.2013, 16:02/etc/limits.*
. Эти пределы применяются каждый раз, когда модуль PAMpam_limits.so
назван. Обычно это в начале сессии. Например, в Ubuntu 14.04 это находится в этих инструментах / команды:cron
,login
(текстовый консольный вход в систему),lightdm
(вход в систему GUI),su
. Можно ли установить, гдеpam_limits
используемый в/etc/pam.*
. Посмотрите, например: faqs.org/docs/securing/chap5sec44.html – pabouk 23.09.2014, 11:46