新しいUbuntuサーバーを作成し、rootユーザー内に新しいユーザーを作成しました。私が従ったステップ:
sudo adduser tom
sudo su - tom
mkdir .ssh
chmod 700 .ssh
touch .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
nano .ssh/authorized_keys // paste public key
大丈夫に見えてログインできます[email protected]
。しかし、Tomとしてログインすると権限を要求し、sudoをするとパスワードを要求しますが、Tomのパスワードがないため、rootパスワードを使用するので、次のように警告します。
[sudo]トムのパスワード:トムはsudoersファイルにありません。このイベントが報告されます。
visudo
私のrootユーザーからTomを次のように追加しようとしました。
root ALL=(ALL:ALL) ALL
tom ALL=(ALL:ALL) ALL
しかし、それは何も変えません。
Tomがジョブを実行する権限を持ち、彼が要求した唯一のパスワードがSSHパスワードであるように設定する正しい方法は何ですか? TomはSSHパスワードを使用してsudo npm install
次のタスクを実行する必要がありますsudo composer install
。それとも、ルートパスワードでさえ知らなければなりません。
私がここで何を見逃しているのでしょうか?
答え1
編集する:
2番目の読み取りによると、まだsudoを使用してTomにパスワードを求めるメッセージを表示するには、次の手順を実行する必要があります。
tom ALL = ALL: ALL
Tomがパスワードなしでsudoを実行できるようにするには、次の回答を使用してください。
私はあなたがその行を次のようにしたいと思います。
tom ALL = NOPASSWD: ALL
説明する:
tom
はこの行が適用されるユーザー、最初のものはこの行が適用さALL
れるホスト、NOPASSWD
はパスワードが必要ないことを指定するラベル、最後はALL
tomがsudoを介して実行できるコマンドを指定するラベルです。
コマンド(またはコマンドと引数の組み合わせ)を制限したい場合は、2番目のコマンドを渡すことができますALL
。たとえば、次のようになります。
tom ALL = NOPASSWD: /bin/kill, /usr/bin/lprm
よりSudoersのマニュアルページそして代替マニュアルページページの下の約80%に異なる例があります。
答え2
sudo
ルートユーザーまたはマスターユーザーは次の操作を実行できます。
usermod -aG sudo tom
これにより、ユーザーtomが「sudo」グループに追加されます。これが必要なすべてです。これ/etc/sudoers
により、ファイルを変更する必要がなくなり、コマンドパスワードを必要とするセキュリティ層を削除しない限り、ファイルから変更を元に戻すことができますsudo
。これが必要な場合は、次の行を使用する必要があります(例:おめでとう彼の答えから)あなたの/etc/sudoers
ファイルに:
tom ALL = NOPASSWD: ALL
ただし、一般的なコマンドパスワード要求方法を使用するには、ファイルを保持してユーザーを「sudo」グループに追加する必要がありますsudo
。その後、その変更を/etc/sudoers
行い、パスワードログインを許可しないでください。/etc/ssh/sshd_config
通常、Ubuntu は一般ユーザーがいくつかの重要なグループに属するように設定されます。groups
端末に入力して、デフォルトユーザーが属するグループを確認できます。
これが私に示したものですが、出力は異なる場合があります。
$ groups
<users-own-group> adm cdrom sudo dip plugdev lpadmin sambashare
広範な権限を持ってはいけない一般ユーザーは、最低限必要ですcdrom, plugdev, lpadmin
。ただし、sudoユーザーを作成しているので(少なくとも必要なようです)、それに応じてユーザーをグループに追加する必要があります。上記のコマンドを使用してグループをリンクできます,
。ただし、sambashare
Sambaがインストールされていない場合は、そのグループは必要ないかもしれません。
usermod -aG <group1>, <group2> <username>