私はrootユーザーであり、任意のアプリケーションを別のユーザーとして実行したいとします。別のユーザーに切り替えることなく、これは可能ですか?
何かのようなもの
_# google-chrome user=abc
_
非rootユーザーとして実際にCLIプログラムを実行しています。スティッキービットをオンに設定し、setuidを使用しているため、プログラムはroot権限で実行されます。現在、プログラム内でsystem()
を使用してGUIアプリを呼び出しています。しかし、私はそれをrootとして実行したくないので、その呼び出しに対してのみroot特権を一時的に削除したいと思います。
ポータブルソリューションは次のようになります。
su abc -c google-chrome
ただし、google-chromeはX11アクセスを必要とするため、セキュリティで保護されていないと失敗する可能性が高く、これは特にrootとして実行している場合は非常に悪い考えです。
X11チューニング/転送が許可されている場合、より良い方法は
ssh -X abc@localhost google-chrome
または
ssh -Y abc@localhost google-chrome
短い答え:「はい、これは可能です」。
x以外のアプリケーションを実行する場合は、次のコマンドを使用します。
Sudo -u abc コマンド
Xアプリケーションを別のユーザーとして実行したいが、自分のデスクトップで最初にヘルパースクリプトを作成する必要がある場合は、これにより作業が簡単になります。
mkdir -p〜/ bin
お好みのテキストエディタを使用してファイルを作成します~/bin/xsudo
次のように:
#!/bin/bash
# (C) serge 2012
# The script is licensed to all users of StackExchange family free of charge
# Fixes/Enhancements to the script are greatly appreciated.
#
# Sudo_ASKPASS has to be set to the path of ssh-askpass
# fix the following two lines if your distribution does not match this autodetection
. /etc/profile.d/gnome-ssh-askpass.sh
export Sudo_ASKPASS="${SSH_ASKPASS}"
SUDOUSERNAME="$1"
shift
xauth nlist "${DISPLAY}"|Sudo -HA -u $SUDOUSERNAME env --unset=XAUTHORITY \
bash -c "xauth nmerge - ; $*"
それを実行可能にします:
chmod + x〜/ bin/xsudo
Sudo
と同じように使用しますが、スイッチはありません。
xsudo ユーザーアプリケーション
楽しい。
追伸xsession
アカウントからroot
を起動することはお勧めしません。
#! /bin/bash
# (GPL3+) Alberto Salvia Novella (es20490446e)
execute () {
function="${1}"
command="${2}"
error=$(eval "${command}" 2>&1 >"/dev/null")
if [ ${?} -ne 0 ]; then
echo "${function}: $error"
exit 1
fi
}
executeAsNonAdmin () {
function="${1}"
command="${2}"
eval setPasswordAsker="Sudo_ASKPASS=/usr/libexec/openssh/ssh-askpass"
run="runuser ${Sudo_USER} --session-command=\"${setPasswordAsker}\" --command=\"${command}\""
execute "${function}" "${run}"
}
executeAsNonAdmin "" "${@}"
Rootユーザーにログインしたときにchromiumを実行する方法があります。正常に開くと、「クロムはルートとして実行できません」のようなエラーが表示されます。
エラーなしで実行するには、 right click デスクトップで、次のコマンドを使用して新しいランチャーを作成します:chromium-browser --user-data-dir
。あなたはそれをあなたが望むものに名前を付けることができます、それを開くと、それはあなたにあなたにクロムブラウザを与えます。 (Ubuntu 10.04.4 LTSで動作)