シェルスクリプトを使用してsudoersファイルにユーザーを追加することはできますか?私は探し回っていましたが、まだ何も見つかりません。
/etc/sudoers
ファイルに直接echo
(もちろん昇格した特権で)することができます:
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
itに保存し、ターミナルウィンドウから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
つまり、スペースで区切られます。
ファイルから名前を読み取るには:
nickw444@laptop ~ $ Sudo ./addsudousers.sh `cat listofusers.txt`
listofusers.txt
もスペースで区切る必要があります。
Edit:Jappie Kirk 正しく指摘Sudo echo ... >> /etc/sudoers
であるため直接>>
を呼び出すことができない_リダイレクトはシェルによって処理され、シェルはその時点でスーパーユーザー権限を削除しました。ただし、echo ... >> /etc/sudoers
を含むスクリプトを実行し、スクリプト自体にスーパーユーザー特権がある場合、すべてが正常に機能するはずです。
いいえ、ストレートエコーは機能しません。サブシェルで実行する必要があります。代わりにこれを試してください:
Sudo sh -c "echo \"group ALL=(user) NOPASSWD: ALL\" >> /etc/sudoers"
Sudo
グループもあり、ユーザーを追加できます(一般的な構成の/etc/sudoers
)
adduser [ユーザー名] Sudo
on RedHatベースディストリビューションの使用:
su - root
パスワードを入力してから、
echo 'YOURUSERNAME ALL=(ALL:ALL) ALL' >> /etc/sudoers
sudoersファイルにユーザーを追加します。
マシンにルートとしてログインします。 rootユーザーは、新しいユーザーを追加する権限を持つ唯一のユーザーです。
ログインすると、次のコマンドを試すことができます。
新しいユーザーを作成します。
adduser [ユーザー名]
ユーザーにパスワードを追加
passwd [ユーザー名]
ユーザーにルート権限を付与する単に入力するだけでvisudoファイルを編集します
ここにコードを入力してください
次のコード行を見つけます:root ALL =(ALL)ALL
次に、このコードを以下に追加します。
[username] ALL=(ALL) ALL
元の投稿はこのリンクにあります Centos 6 – sudoersユーザーの作成
パスワードを使用してSudoグループにユーザーを作成する単一行。
useradd -p $(openssl passwd -1 [〜#〜] password [〜#〜])[〜#〜] username [〜#〜] -s/bin/bash -G須藤
サブシェルの生成などの他の回答は機能しますが、環境変数を使用する場合は機能しない場合があります。私が見つけた1つの選択肢は私にとって本当にうまくいきました:
echo "%<user> ALL=(ALL) ALL" | Sudo tee -a /etc/sudoers > /dev/null
つまり、後知恵は20/20です... visudoを使用せずにスクリプトを使用してsudoersを変更する場合、pkexec、physicalなしでSudo権限へのアクセスを失う可能性があるため、適切なファイルのアクセス許可と内容でバックアップを作成することを真剣にお勧めしますアクセスまたは再起動など。
Sudo cp /etc/sudoers /etc/sudoers.bak