/etc/securetty
консультируется pam_securetty модулем для решения, от которых виртуальных терминалов (ttyS) корень позволяется войти в систему от. В прошлом /etc/securetty
консультировался программами как вход в систему непосредственно, но теперь дескрипторами PAM это. Так изменяется на /etc/securetty
будет влиять на что-либо с помощью PAM с конфигурационным файлом, который использует pam_securetty.so. Так, только программа входа в систему затронута по умолчанию. /etc/pam.d/login
используется для локальных логинов и /etc/pam.d/remote
используется для удаленных входов в систему (как telnet).
Основные типы записи и их влияние следующие:
/etc/securetty
не существует, корню позволяют войти в систему от любого tty/etc/securetty
существуйте и пусто, корневой доступ будет ограничен однопользовательским режимом или программами, которые не ограничиваются pam_securetty (т.е. su, sudo, ssh, scp, sftp)/etc/securetty
Для однопользовательского режима, /etc/securetty
не консультируется, потому что sulogin используется вместо входа в систему. См. sulogin страницу справочника для большего количества информации. Также можно изменить программу входа в систему, используемую в /etc/inittab
для каждого runlevel.
Обратите внимание, что Вам не должен использовать /etc/securetty
управлять корневыми логинами через ssh. Сделать то изменение значение PermitRootLogin в /etc/ssh/sshd_config
. По умолчанию /etc/pam.d/sshd
не настроен для консалтинга с pam_securetty (и поэтому /etc/securetty
). Вы могли добавить строку, чтобы сделать так, но ssh не устанавливает фактический tty до когда-то после подлинного этапа, таким образом, это не работает как ожидалось. Во время автора и этапов учетной записи – по крайней мере, для openssh – tty (PAM_TTY) является hardcoded к "ssh".
Вышеупомянутый ответ основан на RHEL 5.5. Большая часть его будет принадлежать текущим дистрибутивам другого *, отклоняют системы, но существуют различия, некоторые из которых я отметил, но не все.
Я ответил на это сам, потому что другие ответы были неполными и/или неточными. Много других форумов, блоги, и т.д. онлайн имеют неточную и неполную информацию в этой теме также, таким образом, я провел обширное исследование и тестирующий, чтобы попытаться получить корректные детали. Если что-нибудь, что я сказал, неправильно, сообщите мне все же.
Источники:
Почему не может пользователь chmod файл, к которому у них есть доступ для записи?
Для нормальных прав доступа это - проектное решение. Вам нужен richacls: WRITE_ACL
и возможно WRITE_OWNER
.
Полномочия Unix разработаны, чтобы быть простыми. Вам нужно разрешение чтения читать из файла, разрешение записи записать в файл и выполнить разрешение выполнить файл. Необходимо владеть файлом для изменения его метаданных ¹.
Разрешение пользователя, который может считать файл для предоставления другим разрешения чтения или разрешения пользователя, который может записать файл для предоставления другим разрешения записи, не изменило бы модель обеспечения безопасности очень. Поэтому полномочия Unix являются дискреционными: пользователь, который может считать файл, может выставить его содержание другим пользователям, даже если эти другие пользователи иначе не смогли бы считать файл (и так же для записи, пользователь мог действовать как прокси и запись от имени других).
С другой стороны, разрешение пользователю дать разрешение, которое это не имеет, полностью повредило бы систему разрешения: пользователь мог дать все разрешения к себе.
Довольно редко должно изменить полномочия файла, которым Вы не владеете. Обычно необходимо принять меры, чтобы файл имел правильные полномочия, как только он создается. При реальной необходимости в этом Вы могли бы дать пользователю sudo chmod
права для конкретного режима и конкретного файла (например. joe: ALL = (ALL) chmod g+r /path/to/file
).
¹ За исключением времен доступа и времени изменения, которое конкретно, потому что чтение или запись в файл также устанавливают их.