Разница между пользователями, указанными в домашнем каталоге, и теми, кто там не указан

Разница между пользователями, указанными в домашнем каталоге, и теми, кто там не указан

Я вижу некоторых пользователей, которых могу найти в /homeкаталоге CentOS, но не остальных пользователей.

Пользователи, перечисленные в /homeкаталоге, я могу войти в систему как эти пользователи с помощью команды

su username

Чтобы найти остальных пользователей, мне пришлось использовать команду:

cut -d: -f1 /etc/passwd

Чтобы войти в систему как один из этих пользователей, мне нужно использовать команду

sudo -u username

в чем разница?

решение1

Если вы выполните команду, похожую на вашу:

$ cut -d: -f1,6,7 /etc/passwd
root:/root:/bin/bash
bin:/bin:/sbin/nologin
daemon:/sbin:/sbin/nologin
adm:/var/adm:/sbin/nologin
lp:/var/spool/lpd:/sbin/nologin
sync:/sbin:/bin/sync
shutdown:/sbin:/sbin/shutdown
halt:/sbin:/sbin/halt
mail:/var/spool/mail:/sbin/nologin
operator:/root:/sbin/nologin
games:/usr/games:/sbin/nologin
...
gareth:/home/gareth:/bin/bash
...

вы заметите, что единственные учетные записи с /homeкаталогом — это те, где а) во втором столбце выше указан путь к каталогу внутри /home, и б) в третьем столбце указана оболочка ( /bin/bash).

Все остальные пользователи не могут войти в систему, так как у них либо оболочка /sbin/nologin, которая, как следует из названия, не позволяет войти в систему, либо оболочка, представляющая собой определенную команду, например /sbin/halt.

Вы можете запускать команды от имени других пользователей или даже запустить оболочку:

$ sudo -u daemon whoami
daemon
$ sudo -u daemon bash
$ whoami
daemon
$ echo $HOME
/

но у вас не будет домашнего каталога внутри /home.

Что еще важнее, вы не сможете войти в систему с приглашением на вход или с помощью suэтих sshучетных записей, поскольку оболочка /sbin/nologinи их пароли будут отключены (ищите !!или *во втором столбце sudo less /etc/shadow).

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

На самом деле вам не следует запускать команды, как это делают пользователи, использующие sudo.

Связанный контент