Я создал специального пользователя в / etc / passwd с:
secure:x:2000:2000:secure:/bin:/usr/sbin/nologin
Я не хочу разрешать вход в систему этого пользователя (через консоль, SSH, FTP, любым способом).
Он просто для запуска одного скрипта через:
sudo su secure -c '/home/someuser/secure.script'
Но это дает мне This user is currently not available.
. Как настроить его так, чтобы он мог запускать скрипт таким образом, но запретить вход в систему (console, ssh, ftp, ...) этого пользователя в систему?
Я заметил , что когда я набираю /usr/sbin/nologin
в командной строке, то компьютер отвечает This account is currently not available.
.
sudo su
, см. Unix.stackexchange.com/questions/218169/…Ответы:
Это типичный вариант использования
sudo
.Вы микшируете,
sudo
что позволяет запускать команды от имени другого пользователя и легко настраивается (вы можете выборочно указать, какой пользователь может выполнять какую команду от имени какого пользователя), аsu
какой переключается на другого пользователя, если вы знаете пароль (или являетесь пользователем root).su
всегда запускает оболочку, написанную на/etc/passwd
, даже еслиsu -c
используется. Из-за этогоsu
не совместимо с/usr/sbin/nologin
.Вы должны использовать
sudo -u secure /home/someuser/secure.script
Как
sudo
настраивается вы можете контролировать , кто может использовать эту команду , и если он / она должен ввести пароль , чтобы запустить его. Вы должны отредактировать,/etc/sudoers
используяvisudo
для этого. (Будьте осторожны при редактировании / etc / sudoers и всегда используйте visudo для этого. Синтаксис не тривиален, и одна ошибка может заблокировать вас от вашей учетной записи root.)Эта строка в sudoers позволяет любому в группе
somegroup
запускать команду какsecure
:Это позволяет любому в группе
somegroup
запускать команду какsecure
без ввода пароля:Это позволяет
user1
выполнить команду какsecure
без ввода пароля:источник
Я обнаружил, что основная проблема "
/usr/sbin/nologin
" в/etc/passwd
Когда я хочу выполнить su в этом случае, он должен иметь-s /bin/bash
внутри, например:su -s /bin/bash -c '/home/someuser/secure.script' secure
источник
su
по умолчанию используется оболочка, написанная в / etc / passwd. Использованиеsu
- это способ входа в систему как пользователя от другого пользователя.nologin
печатает сообщение «Этот пользователь в данный момент недоступен». и выходит.sudo
не использует оболочку для выполнения команды, поэтому использованиеsudo
безsu
будет работать. Смотрите мой ответ для получения дополнительной информацииsudo
.su
использует оболочку, указанную в/etc/passwd
.Вам не нужно использовать
su
сsudo
.Поэтому не смешивайте
su
сsudo
: используйтеsudo -u secure '/home/someuser/secure.script'
.источник
Возможно, это не на 100% относится к вопросу, но может помочь кому-то, у кого было похожее предупреждение
This user is currently not available
1) Узнайте у вашей хостинговой компании, был ли вам предоставлен доступ к оболочке.
2) если вы используете CWP7: установите для Shell Access значение ON
источник
su
,sudo
и все виды других вещей. 2) В вопросе нет указания на то, что рассматриваемая установка находится за веб-панелью управления в любой форме.