このスクリプトを実行すると、スーパーユーザー権限をどのように渡しますか?私は新しいマシンをセットアップするために必要な基本を学ぶためにこの記事を書いています。高い権限ですべてのコマンドを実行したくはありませんが、sudo
高い権限を持つコマンドは実行したいと思います。
sudo
一部のコマンドは通常のユーザーとして実行され、他のコマンドは通常のユーザーとして実行されるようにするにはどうすればよいですか。
#!/bin/sh
# If Linux, install nodeJS
if $(uname) = 'Linux';
then
export IS_LINUX=1
# Does it have aptitude?
if -x "which apt-get";
then
export HAS_APT=1
# Install NodeJS
sudo apt-get install --yes nodejs
fi
# Does it have yum?
if -x "which yum" ;
then
export HAS_YUM=1
# Install NodeJS
sudo yum install nodejs npm
fi
# Does it have pacman?
if -x "which pacman" ;
then
export HAS_PACMAN=1
# Install NodeJS
pacman -S nodejs npm
fi
fi
# If OSx, install Homebrew and NodeJS
if $(uname) = 'Darwin' ;
then
export IS_MAC=1
if test ! "$(which brew)"
then
echo "================================"
echo " Installing Homebrew for you."
echo "================================"
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
export HAS_BREW=1
elif -x 'which brew' ;
then
export HAS_BREW=1
brew update
fi
# Install NodeJS
brew install --quiet node
fi
# Does it have python?
if -x "which python" ;
then
export HAS_PYTHON=1
if -x "which pip" ;
then
pip list --outdated | cut -d ' ' -f1 | xargs -n1 pip install -U
export HAS_PIP=1
fi
fi
# Does it have node package manager?
if -x "which npm" ;
then
export HAS_NPM=1
else
echo "NPM install failed, please do manually"
fi
# Does it have ruby gems?
if -x "which gem" ;
then
export HAS_GEM=1
fi
残りのbashスクリプト(詳しくは説明しません)は、npm、apt、yum、Brew、またはpacmanを使用して、システムに応じて配列からパッケージをインストールします。などの簡単なもののみを取り付けますgit
。wget
ベストアンサー1
初めて電話をかけると、sudo
パスワードの入力を求められます。これにより、設定に応じてN分(デフォルトは5分IIRC)内に呼び出されると、パスワードを再入力する必要はありません。
次のことができます。
sudo echo >/dev/null || exit 1
または、次のようなものかもしれません。
sudo -p "Become Super: " printf "" || exit 1
スクリプトの始めに。
他人がこれを防ぐために、sudo ./your_script
EUID(強く打つ):
if [[ $EUID -eq 0 ]]
then
printf "Please run as normal user.\n" >&2
exit 1
fi
または同様のもの:
if [ "$(id -u)" = "0" ]
...
とにかく、どのシェルをターゲットにしているかを確認してください。つまり
- https://wiki.debian.org/DashAsBinSh
- https://wiki.ubuntu.com/DashAsBinSh
- https://lwn.net/Articles/343924/
など。
到着「生きてください」一人でできます。それはまるで:
while true; do
sleep 300
sudo -n true
kill -0 "$$" 2>/dev/null || exit
done &