1

У меня есть пользователь, определенный так:

sudo useradd -m -s /sbin/nologin foo

Он не предназначен для входа в систему, но предназначен для обслуживания веб-приложения. Однако, если я попытаюсь что-нибудь сделать внутри каталога ...

sudo -u foo -H touch bar

Я получаю ошибку.

touch: cannot touch ‘bar’: Permission denied

У меня вопрос: что я делаю не так? То есть, если это возможно, что я должен сделать, чтобы контролировать домашний каталог пользователя без необходимости входа в систему?

1 ответ1

1

sudo -u foo -H сенсорная панель

Вы пытаетесь принять учетную запись пользователя foo, у которого нет доступа к логину (в частности, оболочки). Это не сработает :-)

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

sudo touch /home/foo/bar
sudo chown foo.foo /home/foo/bar

Чтобы добиться того, что вы хотите, или, если вы можете, su чтобы получить root права и сделать это, или;

Вы можете сделать однократное переопределение оболочки для пользователя foo

su -s /bin/bash foo

Чтобы перейти к оболочке bash, работающей от имени пользователя foo, и внести в нее изменения. Это то, что вы, вероятно, хотите сделать в первую очередь.

Замечания:

Пользователь с /sbin /nologin обычно является системной учетной записью. Системные учетные записи должны управляться пользователем root или пользователем с привилегиями sudo (член группы wheel в последних версиях RHEL /CentOS). Сначала я дал вам один метод, потому что это обычно так, а не то, как вы это делаете. Это не значит, что вы делаете это неправильно - всегда больше, чем один :-)

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