ホームページ  >  記事  >  運用・保守  >  Linuxでパスワードを入力せずにsudoを実行する方法は何ですか?

Linuxでパスワードを入力せずにsudoを実行する方法は何ですか?

WBOY
WBOY転載
2023-05-12 23:46:193611ブラウズ

解決策 1:
起動時にセーフ モードに入ります。この時点で、root としてログインし、次のコマンドを実行します:

chmod 740 /etc/sudoers

次に、/etc/sudoers ファイルを開いて最後の行を変更します。

%admin ALL=(ALL)
改为
%%admin ALL=(ALL) NOPASSWD: NOPASSWD: ALL

保存して終了します。
実行:

chmod 0440 /etc/sudoers
reboot your ubuntu.OK!

解決策 2:
Ubuntu は、デフォルトでは root アカウントで直接ログインできません。最初に作成されたユーザー (つまり、作成中に作成されたユーザー) の su を使用する必要があります。インストール)または sudo を実行して root 権限を取得します。このコマンドはUbuntuでシステムを操作する際によく使われるコマンドであり、初心者にとってはこのコマンドを知っておく必要があることがわかります。これは不便かもしれませんが、セキュリティが向上し、ユーザーの誤操作によるシステムの損傷を防ぐことができます。

sudo
形式: sudo [その他のコマンド]

sudo は、スーパー ユーザーが実行することを意味します。 sudo は、このプロセスで root ユーザーを呼び出す役割のみを果たします。この操作が完了すると、その役割はなくなります。コマンドを使用して root 権限の操作を呼び出す場合は、再度 sudo を使用する必要があります。これらのプロセス中、システムはユーザーにパスワードの入力を求めます。このパスワードは、システムのインストール時に入力したパスワードです。注: このパスワードを入力するときは、パスワードを入力するときのように * 記号を付けたパスワードを入力することはありません。 Windows のパスワード この方法でパスワードをより安全にすることが目的で、パスワードの数が分からないとパスワード クラッカーの難易度が間違いなく高くなるためです。 :)

例:

現在のディレクトリにあるupload.tar.gzの権限を変更したい場合は、sudoを使用する必要があります。現在のディレクトリにある別のファイル eva.tar.gz の権限を変更したい場合は、再度 sudo を使用する必要があります。

ownlinux@server:/var/www$ sudo chmod 777 upload.tar.gz
[sudo] password for ownlinux: (此时输入你的密码)
ownlinux@server:/var/www$ sudo chmod 777 eva.tar.gz
[sudo] password for ownlinux:

補足:
通常はrootでログインすることはありませんが、特定のコマンド(command)を実行する際にはroot権限が必要となるため、通常は「sudoコマンド」を使用して command を実行します。 Ubuntuを使っているのでsudoを使うことが多いのですが、sudoを使うとパスワードを入力しなければいけないので、パスワードを入力せずにsudoできる方法を探しました。少し前にグーグルで簡単に方法を見つけましたが、よく理解できませんでした。今日、/etc/sudoers ファイルを注意深く調べたところ、必要な実装方法が非常に明確になりました。インターネットで見る情報はわかりにくいことが多かったので、自分なりに整理してみました。
ユーザー名をjay(adminグループ所属)とした場合、パスワードなしでsudoを実行する方法は以下の通りです。
コマンドを実行します: sudo visudo または sudo vi /etc/sudoers. vi を編集に使用する場合は、保存時に「wq!」を使用して強制的に保存することを忘れないでください。そうしないと、読み取り専用であるため保存できないというメッセージが表示されます。救われます。
ファイル /etc/sudoers が編集されます。デフォルトでは、「�min ALL=(ALL) ALL」という文が表示され、管理者グループがすべてのホストですべてのコマンドを実行できるようになります。もちろん、passwd が必要です。
1. 管理者グループ内のすべてのユーザーにパスワードなしで sudo を実行させたい場合は、この行を「�min ALL=(ALL) NOPASSWD: NOPASSWD ALL」に変更します。
2. jay ユーザーにパスワードなしで sudo を実行させたい場合は、「jay ALL = NOPASSWD: ALL」という行を追加できます。
3. ユーザー jay に sudo でパスワードなしで特定のコマンドを実行させたい場合は、「jay ALL = NOPASSWD: /usr/bin/abc.sh, /usr/sbin/adduser」と書くことができます
4。その他の設定方法については、「man sudoers」を実行し、ヘルプドキュメントを参照してください。
注: 私自身の設定の 1 つが有効になりませんでした。しばらくその理由を探していたので、ここに書きます。
「jay ALL = NOPASSWD: ALL」という行を追加しましたが、jay は sudo を実行するときに依然としてパスワードを入力する必要があります。これはなぜですか?
私の行は「�min ALL=(ALL) ALL」グループ ポリシーの前にあることがわかりました。後続のグループ設定は前の設定を上書きし、jay は admin グループに属しているため、パスワードが必要です。
現時点では、# を使用して �min 行をコメントアウトするだけで済みます。わかりました!それですぐに有効になりますか? おそらく、sudo が実行されるとシステムが /etc/sudoers を読み取るので、すぐに有効になります。
さらに、会社の特定のサーバーの /etc/sudoers 構成も付属しています:

Defaults env_reset
Defaults syslog=auth
Defaults log_year,logfile=/var/log/sudo.log
User_Alias ABC = abc
Cmnd_Alias DEFAULT=/bin/*,/sbin/ldconfig,/sbin/ifconfig,/usr/sbin/useradd,/usr/sbin/userdel,/bin/rpm,/usr/bin/yum,/sbin/service,/sbin/chkconfig,sudoedit /etc/rc.local,sudoedit /etc/hosts,sudoedit /etc/ld.so.conf,/bin/mount,sudoedit /etc/exports,/usr/bin/passwd [!-]*,!/usr/bin/passwd root,/bin/su - [!-]*,!/bin/su - root,!/bin/su root,/bin/bash,/usr/sbin/dmidecode,/usr/sbin/lsof,/usr/bin/du,/usr/bin/python,/usr/sbin/xm,sudoedit /etc/profile,sudoedit /etc/bashrc,/usr/bin/make,sudoedit /etc/security/limits.conf,/etc/init.d/*,/usr/bin/ruby
ABC ALL=(ALL)NOPASSWD:DEFAULT

/etc/sudoers

sudo vi /etc/sudoers
把/etc/sudoers里最后一行
%admin ALL=(ALL)
?为
%admin ALL=(ALL) NOPASSWD: NOPASSWD: ALL

を変更することで、その後、wq を強制的に保存すればOKです
上記の内容は正確ではありません。次の点に注意してください。
通常の端末ではなく「スーパー ユーザー ターミナル」を使用して /etc/sudoers ファイルを編集します。 「スーパー ユーザー ターミナル」スタートアップは、右クリックの「メニューの編集」コマンドによって追加されます。
編集後、終了するには wq の代わりに wq! を使用してください

以上がLinuxでパスワードを入力せずにsudoを実行する方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。