Descubra os limites de outro usuário

3

No CentOS 6.4 / 64 bit - como encontrar os limites do usuário "nobody"?

Porque eu não posso apenas su - nobody e chamar ulimit -a :

# id nobody
uid=99(nobody) gid=99(nobody) groups=99(nobody)

# su - nobody
This account is currently not available.

ATUALIZAÇÃO:

Estou perguntando: como chamar ulimit -a para o usuário do CentOS nobody , para que eu possa ajustar /etc/security/limits.conf em relação ao número máximo de arquivos abertos para esse usuário.

MAIS MAIS DETALHES:

Eu tenho um script perl (um daemon baseado em TCP-sockets não-bifurcados jogo de cartas ) que está sendo iniciado por init (criei um arquivo para ele: /etc/init/my_card_game.conf ), mas, em seguida, descarta privilégios de super usuário e é executado como nobody :

sub drop_privs {
        my ($uid, $gid) = (getpwnam('nobody'))[2, 3];
        die "User nobody not found\n" unless $uid && $gid;

        umask(0);
        chdir('/tmp') or die "Can not chdir to /tmp: $!\n";
        #chroot('/tmp') or die "Can not chroot to /tmp: $!\n";

        # try to set the real, effective and save uid
        setgid($gid) or die "Can not set gid to $gid: $!\n";
        setuid($uid) or die "Can not set uid to $uid: $!\n";
        # try to regain privileges - this should fail
        die "Not able to drop privileges\n" if setuid(0) || setgid(0);
}

Eu quero ter certeza de que ele tenha um número máximo suficiente de nofiles - para que ele possa atender a todos os clientes conectados.

    
por Alexander Farber 17.07.2013 / 13:10

2 respostas

1

Os limites devem ser aumentados antes que os privilégios sejam descartados, pois são necessários privilégios para aumentar os limites de recursos. Você pode adicionar código ao seu script para fazer isso. Mas a maneira mais fácil é criar um script de shell que inicie seu script perl. O script de shell pode usar ulimit , pois ainda terá privilégios. (Os usuários não têm nada a ver com isso. Os limites de recursos são atributos de processos.)

    
por 17.07.2013 / 14:08
-1

O sinalizador -u para ulimit, na página do manual ulimit:

-u The maximum number of processes available to a single user

No RedHat / CentOS, o arquivo /etc/security/limits.conf descreve os limites por usuário. Então, se você está ficando sem descritores de arquivo para um usuário em particular (por exemplo, seu usuário "nobody" do apache), você pode adicionar uma linha ao final desse arquivo (por padrão, ele está vazio). Aumentar isso de 4096 para 32768 resolveu um problema para nós em um servidor ColdFusion 10 / apache 2.2 / RedHat.

    
por 04.12.2015 / 09:11