いいえ、直接のエコーは機能しません。サブシェルで実行する必要があります。代わりにこれを試してください:
sudo sh -c "echo \"group ALL=(user) NOPASSWD: ALL\" >> /etc/sudoers"
単純に echo
できます (もちろん昇格した権限で) /etc/sudoers
に直接 ファイル:
sudo -i
echo 'nickw444 ALL=(ALL:ALL) ALL' >> /etc/sudoers
# ^^
# tab
(ユーザー名と最初の ALL
の間のタブ文字に注意してください )
または、スクリプトの場合:
#!/bin/bash
# Run me with superuser privileges
echo 'nickw444 ALL=(ALL:ALL) ALL' >> /etc/sudoers
次に somefile.sh
に保存します 、 chmod a+rx
sudo ./somefile.sh
を実行します 端末ウィンドウから。
複数のユーザーを追加するには、スクリプトを次のように変更します。
#!/bin/bash
while [[ -n $1 ]]; do
echo "$1 ALL=(ALL:ALL) ALL" >> /etc/sudoers;
shift # shift all parameters;
done
次に、次のようにスクリプトを実行します (addsudousers.sh
として保存したと仮定します)。 ):
sudo ./addsudousers.sh bob joe jeff
つまり、スペースで区切られています。
ファイルから名前を読み取るには:
[email protected] ~ $ sudo ./addsudousers.sh `cat listofusers.txt`
listofusers.txt
もスペースで区切る必要があります。
編集: Jappie Kirk は、sudo echo ... >> /etc/sudoers
を直接呼び出すことはできないと正しく指摘しています。 >>
リダイレクションはシェルによって処理され、その時点でスーパーユーザー権限が削除されています。ただし、echo ... >> /etc/sudoers
を含むスクリプトを実行すると、 スクリプト自体にはスーパーユーザー権限があり、すべて問題なく動作するはずです。