Я вижу некоторых пользователей, которых могу найти в /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
.