sudo bash -c 'echo $PATH' /sbin:/bin:/usr/sbin:/usr/bin
sudo -i bash -c 'echo $PATH' /usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/puppetlabs/bin:/root/bin
sudo -E VAR1=foo VAR2=bar bash -c 'echo $VAR1 $VAR2' foo bar
sudo -iE echo $PATH -bash: PATHの内容...
sudo -iE echo $PATH sudo: you may not specify both the `-i' and `-E' options
echo "complete -cf sudo" >> ~/.bashrc
sudo -u した場合、OSのバージョンによってユーザの環境変数が変わらない部分がある
sudo -u zabbixsrv env | grep HOME HOME=/root
sudo -u zabbixsrv env | grep HOME HOME=/var/lib/zabbixsrv
sudo visudo ---- Defaults always_set_home ----
CentOS5.5で、crontab内や/etc/cron.daily/内でsudoを使おうとするとこのエラーが出る。
sudo /usr/sbin/visudo ---- Defaults:root !requiretty ----
ssh -t hostname sudo <cmd>
以下の例では「sh -c "..."」を付けないと、「>」の部分が現在のユーザで実行されてしまい、ファイルが作成できない
sudo sh -c "cat > /etc/php.d/json.ini << 'EOS' extension=json.so EOS"
sudo visudo ---- %wheel ALL=(ALL) NOPASSWD: ALL ---- # user01をwheelグループに追加 usermod -G wheel user01
# userの場合 sudo visudo -f /etc/sudoers.d/user01 -- user01 ALL=(ALL) NOPASSWD: ALL -- # groupの場合、%を付ける sudo visudo -f /etc/sudoers.d/group01 -- %group01 ALL=(ALL) NOPASSWD: ALL -- # ワンライナーで済ませたい場合 sudo bash -c "echo 'user01 ALL=(ALL) NOPASSWD: ALL' > /etc/sudoers.d/user01"; sudo chmod 440 /etc/sudoers.d/user01
mkdir /etc/sudoers.d chmod 750 /etc/sudoers.d visudo /etc/sudoers -- #includedir /etc/sudoers.d --
sudo su -