-20이라는 좋은 값으로 프로세스를 시작하고 루트 권한을 부여하지 않으려면 어떻게 해야 합니까?

-20이라는 좋은 값으로 프로세스를 시작하고 루트 권한을 부여하지 않으려면 어떻게 해야 합니까?

-20이라는 좋은 값으로 프로세스를 시작하고 싶습니다. 이를 위해서는 다음과 같은 명령을 사용해야 합니다.

sudo nice -n -20 matlab

그러나 이것은 MATLAB도 루트로 시작합니다. 루트가 아닌 사용자로 MATLAB을 사용하는 방법이 있습니까?

내 현재 접근 방식은

sudo nice -n -20 sudo -u myusername matlab

나에게는 해킹처럼 보입니다. 이를 수행하는 직접적인 접근 방식이 있습니까?

답변1

정상적으로 시작하고 나중에 "renice"를 사용합니다 ...

그러나 나는 작동하는 "su"와 함께 빠른 해킹을 할 수 있었습니다:

sudo nice -n -20 su -c command_to_run user_to_run_as

sudo에 비밀번호를 제공할 필요가 없다면(이미 비밀번호를 제공했기 때문일 수 있음) &전체를 백그라운드로 두기 위해 를 추가할 수 있습니다.

이미 sudo 명령으로 루트가 되었기 때문에 su비밀번호를 묻지 않습니다. X 아래의 터미널 에뮬레이터에서 X 프로그램을 시작할 수 있었습니다. X 세션을 소유한 사용자가 아닌 다른 사용자로 X 프로그램을 실행하려면 X에 이를 허용하도록 명시적으로 지시해야 할 것입니다. (해당 사용자의 X 클라이언트에 대해 열려 있음)

답변2

나는 파일을 수정함으로써 이것이 가능하다는 것을 발견했습니다 /etc/security/limits.conf(적어도 일부 리눅스 배포판에서는). 내 경우에는 다음과 같이 간단히 추가했습니다.

#<domain>    <type>  <item>  <value>
my_user        -     nice       -20`

그러면 당신은 실행할 수 있습니다

nice -n -20 matlab

에 대한 변경 사항을 저장한 후 로그아웃했다가 다시 로그인하세요 /etc/security/limits.conf.

이것답변이유를 설명합니다.

답변3

한 단계 더 나아가 @Jordan: 해킹에 대한 우아한 솔루션이 있습니다 sudo nice -n -xx su <username> -c matlab.

참고: 사용자 이름= sid, matlab 메타데이터 dir= /var/lib/matlab, nice= -10사용 - 원하는 대로 변경하세요.

  1. MATLAB 메타데이터 디렉토리 생성
    sudo mkdir /var/lib/matlab
    
  2. MATLAB을 시작하기 위해 지정된 사용자 및 권한 추가
    sudo useradd -d /var/lib/matlab sid
    sudo chown sid:sid /var/lib/matlab
    
  3. 사용자 비밀번호 설정
    sudo passwd sid
    
  4. 다음에 추가/etc/security/limits.conf
    sid - priority -10
    
  5. 로그인 자동화를 위해 SSH 키 설정 및 복사(선택 사항)
    ssh-keygen -t rsa #following key passwd misc   
    ssh-copy-id sid@localhost #using sid's passwd
    
  6. MATLAB 쉘 래퍼 생성(수정자동 실패 오류)
    sudo -i
    cat &lt;&lt;EOF &gt;&gt;/usr/local/bin/wmatlab
    #!/bin/bash --
    # A wrapper to launch matlab
    /usr/local/MATLAB/&lt;version&gt;/bin/matlab -desktop
    EOF
    chmod +x /usr/local/bin/wmatlab
    
  7. "sid"의 로그인 쉘 조정
    sudo usermod -s /usr/local/bin/wmatlab sid
    
  8. sshwith 를 사용 하여 MATLAB 시작Xforward
    ssh -X sid@localhost
    

답변4

@jordanm이 말했듯이 sudo를 삭제하세요. 자신의 프로세스에 더 낮은 우선순위를 부여할 수 있습니다.

nice -20 matlab

아니요 sudo.

관련 정보