最近、Fedora 28とUbuntu 18.04の両方のシステムをセットアップしました。両方のプライマリユーザーアカウントを構成して、パスワードの入力を求められることなくSudo
コマンドを実行できるようにしたいと考えています。
それぞれのシステムでこれを行うにはどうすればよいですか?
Fedoraシステムでwheel
と呼ばれる特別なUnixグループを利用する場合、これはかなり簡単です。以下を実行するだけです。
wheel
グループにプライマリユーザーを追加する
$ Sudo gpasswd -a <primary account> wheel
%wheel
の/etc/sudoers
グループに対してNOPASSWDを有効にする
$ Sudo visudo
次に、この行をコメント化します。
## Allows people in group wheel to run all commands
# %wheel ALL=(ALL) ALL
そして、この行のコメントを外してください:
## Same thing without a password
%wheel ALL=(ALL) NOPASSWD: ALL
このファイルを保存 Shift+Z+Z。
ログアウトして再度ログインする
注:この最後の手順は必須であり、デスクトップと対応するトップレベルのシェルが再実行され、プライマリアカウントがwheel
Unixグループのメンバーであることを示します。
従来、Debian/Ubuntu/Mint/Kali/AntixなどのDebianベースのディストリビューションでは、SudoのデフォルトグループはSudo
です。
したがって、パスワードなしのSudo
が有効なユーザーをDebianベースのシステムに追加するには、次の手順に従います。
Sudo
をインストールする
Debianでは、インストールオプションによっては、デフォルトでSudo
がインストールされていないことがよくあります。
パッケージSudo
がインストールされていない場合(たとえば、/etc/sudoers
がない場合)、rootとして実行します。
# apt install Sudo
ユーザーをSudoグループに追加する
ユーザーをSudoグループにまだ追加していない場合は、ユーザーをSudoグループに追加します(Ubuntuおよび派生物は、インストールで作成されたユーザーをSudoグループに自動的に追加します)。
最初のSudoユーザーを設定するとき、最初のユーザーはroot
として取得します。
# gpasswd -a <primary account> Sudo
Sudo
ユーザーが既にいる場合は、そのユーザーを介してSudoグループ内の他のユーザーを設定することをお勧めします。
$ Sudo gpasswd -a <primary account> Sudo
NOPASSWDディレクティブを追加するために/etc/sudoers
を変更します
次に、/etc/sudoers
のSudo
グループのデフォルト行を次のように編集します。
$ Sudo visudo
そしてそれを次のように変更します:
# Allow members of group Sudo to execute any command
%Sudo ALL=(ALL:ALL) ALL
に:
# Allow members of group Sudo to execute any command, no password
%Sudo ALL=(ALL:ALL) NOPASSWD:ALL
ログアウトして再度ログインする
システムにログインしている場合、目的のユーザーは、Sudo
グループに属するユーザーの変更を有効にするために、ログアウトしてログインする必要があります。
注: Debianでは、グループwheel
は、RedHat/SuSEベースのディストリビューションのようにsu
コマンドに使用する代わりに、PAMでSudo
の使用をグループに制限するためによく使用されます。
従来、Debianベースのディストリビューションでは、Sudo
コマンドにはSudo
グループを使用します。
ほとんどのディストリビューションでは/etc/sudoers/
に次の行があります:
#includedir /etc/sudoers.d
したがって、1人のユーザーを追加する簡単な方法は、/etc/sudoers.d/
ディレクトリに適切なファイルを作成することです。通常は、追加するユーザーの名前を付けます。
add_sudoer() {
if ! test -n "$1"
then echo "Usage: $0 <user>" >&2; return
fi
printf >"/etc/sudoers.d/$1" '%s ALL= NOPASSWD: ALL\n' "$1"
}
Defaults:%s !lecture, !authenticate\n
やその他のオプションをファイルに追加することもできます。
または、Python pudo パッケージを使用できます。
インストール:
user$ Sudo -H pip3 install pudo # you can install using pip2 also
以下は、ルート権限でコマンドを実行するためのpython自動化で使用するためのコードスニペットです::
user$ python3 # or python2
>>> import pudo
>>> (ret, out) = pudo.run(('ls', '/root')) # or pudo.run('ls /root')
>>> print(ret)
>>> 0
>>> print(out)
>>> b'Desktop\nDownloads\nPictures\nMusic\n'
以下は、root権限でコマンドを実行するためのcmdの例です
user$ pudo ls /root
Desktop Downloads Pictures Music