1

Я новичок в Unix, я пытался найти разницу между разрешениями на выполнение и специальными разрешениями. Например, команда "su" имеет разрешения

-rws-r-xr-x

В соответствии с этими разрешениями пользователь может выполнять эту команду от имени пользователя root.

я изменился на

-rwx-r-xr-x 

используя команду chmod, под этими разрешениями я также могу выполнить команду. В чем разница между этими двумя разрешениями.

1 ответ1

3

Два не являются взаимоисключающими. Буква s здесь означает «исполняемый файл и имеет бит setuid». (Если бы файл имел только «setuid», но не был исполняемым, вы бы увидели S в верхнем регистре.)

Как вы заметили, бит setuid используется для того, чтобы пользователи могли выполнять команду от имени пользователя root (точнее, от имени владельца команды, но наиболее распространенным является root). Обычно устанавливается для тех программ, которым нужен доступ только к функциям root.

В этом случае /bin/su необходим root-доступ для переключения учетных записей пользователей. Если вы удалите бит "setuid", вы все равно сможете запустить программу, но она не будет работать должным образом, так как она 1) не может проверить пароль другого пользователя, поэтому вы всегда получите "Ошибка аутентификации", 2) не сможет переключиться на учетная запись другого пользователя, поэтому никто больше не может использовать su root .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .