GNU/Linux >> Znalost Linux >  >> Linux

[Linux]:SSH nelze přepnout na konkrétního uživatele s chybou „su:nelze nastavit ID uživatele:Zdroj dočasně nedostupný“

Jeden můj kolega přišel s problémem, že se nemohl přihlásit ke konkrétnímu uživatelskému účtu na počítači se systémem Linux. Mohl jsem se však přihlásit k jinému účtu na stejném počítači, ale ne k tomu, který můj kolega skutečně chce. Dokonce i já jsem se pokusil přepnout (su -) ze svého uživatelského účtu na stejném počítači na jeho účet, ale zobrazila se mi pouze chybová zpráva „su:nelze nastavit ID uživatele:Zdroj dočasně nedostupný “. Tato chybová zpráva nám naznačila, že problém může být v samotném účtu a ne v počítači.

Níže je snímek chybové zprávy:

$su - swift
Password:
su: cannot set user id: Resource temporarily unavailable

Příčinou může být uživatelův „limit běhu procesu“ překročeno. Abych to ověřil, spustil jsem níže uvedený příkaz.

$ ps -eLF|grep swift | wc -l
1026

Kde “-L ” zobrazí všechny procesy pro uživatelský účet ‚swift‘.

Zjistěte proces maximálního počtu uživatelů povoleno pomocí níže uvedeného příkazu:

$ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) 1024
pending signals                 (-i) 514963
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1024
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

Ve výše uvedeném případě je 1026 větší než maximální povolená hodnota 1024. Řešením je zvýšit maximální počet procesů povolených pro uživatelský účet.

Řešení:

1. Limit procesu lze zvýšit úpravou:/etc/security/limits.conf (k tomu potřebujete oprávnění root)

swift hard nproc 4096

Není třeba restartovat žádné služby.

2. Pokud nemáte oprávnění root, může uživatel zvýšit limit pomocí níže uvedeného příkazu.

$ulimit -u 4096

3. zastavit všechny nežádoucí procesy

A je to! Můj kolega odešel z místa se širokým úsměvem na tváři.


Linux
  1. Instalace Git pomocí jiného uživatelského účtu než root

  2. vytvoření symbolického odkazu:Chyba protokolu

  3. SSH s autorizovanými klíči do systému Ubuntu se zašifrovaným homedir?

  1. Připojte zařízení se specifickými uživatelskými právy

  2. Jak ssh jako jiný uživatel

  3. fork:retry:Zdroj dočasně nedostupný

  1. Ssh – Omezení uživatele Ssh/scp/sftp na adresář?

  2. Jak vytvořit nového uživatele s přístupem Ssh?

  3. Jak přesměrovat ssh s AllowTcpForwarding nastaveným na ne?