ナイス値-20でプロセスを開始したいと思います。これには-Sudo Nice -n -20 matlab
のようなコマンドを使用する必要があります。ただし、これはルートとしてもmatlabを起動します。 root以外のユーザーとしてmatlabを使用する方法はありますか?
私の現在のアプローチは-Sudo Nice -n -20 Sudo -u myusername matlab
-です。これは、私にとってはハックのように見えます。これを行う直接的なアプローチはありますか?
私はそれを普通に始め、その後「レニス」を使います...
しかし、私は機能する "su"と一緒に素早くハックすることができました:
Sudoニース-n -20 su -c command_to_run user_to_run_as
(もしあなたがSudoにパスワードを与える必要がないなら-おそらくあなたはすでにそれを与えたばかりかもしれないので-バックグラウンドに全部を置くために "&"を追加するかもしれません。)
Sudoコマンドですでにrootになっているので、suはパスワードを要求しません。 Xの下のターミナルエミュレータからXプログラムを起動できました。Xプログラムを、Xセッションを所有しているユーザー以外のユーザーとして実行する場合は、Xにそれを許可するように明示的に指示する必要があります。 (そのユーザーからのXクライアント用に開きます)。
さらに一歩@ジョーダン、これがSudo Nice -n -xx su <username> -c matlab
ハックに対するエレガントな解決策です
注:username =sid、matlabメタデータdir =/ var/lib/matlab、ニース=-10自由に変更
matlabメタデータディレクトリを作成(PERPARE)
Sudo mkdir /var/lib/matlab
指定したユーザーを追加して、MATLABと正しいpersimissonを起動します
Sudo useradd -d/var/lib/matlab sid Sudo chown sid:sid /var/lib/matlab
ユーザー(sid)パスワードを設定
Sudo passwd sid
/etc/security/limits.confに以下を追加します
sid - priority -10
ログインを自動化するためのssh-keyのセットアップとコピー(オプション)
ssh-keygen -t rsa #following key passwd misc ssh-copy-id sid @ localhost #using sid's passwd
Sudo -i cat>/usr/local/bin/wmatlab #!/ bin/bash- #matlabを起動するラッパー /usr/local/MATLAB/<バージョン>/bin/matlab -desktop EOF chmod + x /usr/local/bin/wmatlab
sidのログインシェルを調整する
Sudo usermod -s /usr/local/bin/wmatlab sid
Xforwardでsshを使用してmatlabを起動します
ssh -X sid@localhost
これは、ファイル/etc/security/limits.conf
を変更することで実行できることを発見しました(少なくとも一部のLinuxディストリビューションでは)。私の場合、私は単に追加しました
#<domain> <type> <item> <value> my_user - Nice -20
その後、実行することができます
Nice -n -20 matlab
pamを使用すると、グループごとにニースの設定ファイルに制限を設定できます。
@grniceハードプライオリティ-20
@grniceハードニース-20
そして、プロセスがgrniceで実行されるグループを確認します。
別の可能なオプション(単純ですが安全性は低くなります)は、Nice
実行可能ファイルのsetuid/setgid権限を有効にすることです。
Sudo chmod +s /usr/bin/Nice
setuidは、ファイルを実行できるすべてのユーザーに、ファイルの実行時にファイル所有者の有効なUID(この場合はroot
)を割り当てます。したがって、そのユーザーとして実行することと同じです。 setguidは、効果的なGIDに対して同じことを行います。
または、より安全に行うことができます。
# create a system group named `Nice'
groupadd -r Nice
# set the owner group for `Nice' executable
chgrp Nice /usr/bin/Nice
# disallow other users to run `Nice`
chmod o-x /usr/bin/Nice
# allow anyone who are able to execute the file gain a setuid as root
chmod u+s /usr/bin/Nice
# add your user to the group
usermod -a -G Nice <your-user-name>
新しいグループを有効にするには、アカウントに再度ログインする必要があることに注意してください。
ユーザーをsudoersに追加します(実際には/etc/sudoers.dの新しいファイルですが、同じ前提です)。
niceuser ALL=NOPASSWD:/usr/bin/Nice
次に、「niceuser」として:
niceuser@localhost $ Sudo Nice -n -10 command...
そして、それは私が必要とすることを実行します(つまり、私のユーザーは{command ...}の優先度を上げることができます)。複数のユーザーなどをサポートしています-man 5 sudoers
詳細については。
@jordanmが言ったように、須藤を落とす。独自のプロセスをナイスにして、優先順位を低くすることができます。
Nice -20 matlab
いいえSudo
。