タグ付けされた質問 「sudo」

sudoは、ユーザーが別のユーザー(通常はrootユーザー)としてコマンドを実行できるようにするツールです。

1
ユーザーおよび実行としてのssshはルートを持っています(期待どおり)
SSHからアクセスできるユーザーが1人だけいる(彼をfooと呼びましょう)重要な数のホストを管理し、次にrootとしてログインして特権コマンドを実行する必要があります。 Fooユーザーにはsudo権限の種類がないため、特権コマンドを実行するにはrootとしてログインする必要があります。私は実際にこのスクリプトを実行するために期待スクリプトを使用しており(sshログインとしてfoo、rootとしてsu経由でログイン)、Ansibleに切り替えたいと考えています。新しいユーザーを作成して彼にsudo権限を付与したり、基本的にfooにsudo権限を付与したりできることはわかっていますが、Ansibleで期待しているのと同じことを実行できますか? fooとしてssh接続を行い、ルートとしてプレイブックまたは任意のアドホックコマンドを実行します。Ansibleのドキュメントにそれに関する情報は見つからなかったので、誰かがすでにこの種の尋問を受けているかどうかをここで尋ねます。
8 sudo  root  ansible  expect 


1
sudo:コマンドに引数を1つだけ許可するには?
suodersにエントリを追加して、1人のユーザーがオプション以外の引数を1つだけ使用してコマンドを実行できるようにします。 # tail -1 /etc/sudoers ALL ALL = (:tool) NOPASSWD: /bin/echo [a-z]* $ sudo -g tool /bin/echo abc def abc def $ sudo -g tool /bin/echo -abc def [sudo] password for user: sudoers sytnaxを使用してそれを行うことはできますか?または、ヘルパースクリプトを作成する必要がありますか?
8 unix  sudo 

1
sudoersで同じ行にNOPASSWDとSETENVの両方を設定するにはどうすればよいですか?
sudoersファイルで、同じ行で複数のTag_Specを使用するにはどうすればよいですか。 通常、パスワードを要求したくない場合は、次のようにします。 who where = (aswhom) NOPASSWD: commands このSETENVタグを使用して、ユーザーが環境変数を保持できるようにしたいと考えています。これは次のようにうまく機能します: who where = (aswhom) SETENV: commands sudoers(5)のmanページから: Tag_Spec ::= ('NOPASSWD:' | 'PASSWD:' | 'NOEXEC:' | 'EXEC:' | 'SETENV:' | 'NOSETENV:' | 'LOG_INPUT:' | 'NOLOG_INPUT:' | 'LOG_OUTPUT:' | 'NOLOG_OUTPUT:') 同じエントリで複数のタグを使用する方法がわかりません。私のような、両方に使用するだろうNOPASSWDとSETENV同じ行に。
8 linux  sudo 

3
共有rootパスワードからsudoを使用するように移行しています。sudoの使用を監査するにはどうすればよいですか?
私が参加したとき、すべてのSAはシステムのルートパスワードを記憶する必要がありました。これは面倒で(誰かが会社から離れると、すべてのサーバーにアクセスしてパスワードを変更する必要があり)、安全ではないと感じました。 最後に、sudoアクセス権を持つ個人アカウントをプッシュするのに十分なプルを取得しました。私はスムーズな移行をしたいので、これは私の最初の計画です: SAがパスワードを入力せずに「承認された」コマンドを実行できるようにします。 他のすべてのコマンドでは、を使用するたびにパスワードが必要になりますsudo。私はこのコマンドを監査し、必要と思われる場合は「承認済み」と定義し、セキュリティ上のリスクがある場合は実行されないようにします。 ユーザースペックは次のようになります。 %sysadmins ALL = PASSWD: ALL, NOPASSWD: SERVICES, FILE_READING, !/bin/su 質問:でsudo構成PASSWDされたコマンドが実行されたときに、どのようにして監査を行うことができますか(電子メールを使用することをお勧めしますが、ログを使用します)。
8 linux  security  sudo 

5
複数のsudoersファイルを更新する
Active Directoryドメインに対して認証を行う複数のLinuxサーバーがあります。ADのグループの場合、sudoを使用してrootとして実行できるコマンドのリストを追加します。私は明らかに各コンピュータにssh-inしてsudoersファイルを更新することができます-しかし、それはしばらく時間がかかります。また、rootログインは許可されていません。そのため、パスワードなしのログインは、非rootユーザーに対してのみ機能します。 各Linuxコンピューターのsudoersファイルを一度に更新する簡単な方法はありますか?ここでは、システム管理機能を備えたPerlまたはPythonスクリプトを考えています。 更新:veroteq7とShane Maddenに感謝します。ある時点でcfengineをデプロイすることを考えていましたが、現在は実行されていません。LDAPを使用するのが最善のソリューションであると判断しました。sudoのLDIFスキーマschema.ActiveDirectoryのインポート中にエラーが発生します。エラーは144行目の「パラメータが正しくありません」です。 これは144行目以降の内容です。 dn: CN=sudoRole,CN=Schema,CN=Configuration,DC=X changetype: add objectClass: top objectClass: classSchema cn: sudoRole distinguishedName: CN=sudoRole,CN=Schema,CN=Configuration,DC=X instanceType: 4 possSuperiors: container possSuperiors: top subClassOf: top governsID: 1.3.6.1.4.1.15953.9.2.1 mayContain: sudoCommand mayContain: sudoHost mayContain: sudoOption mayContain: sudoRunAs mayContain: sudoRunAsUser mayContain: sudoRunAsGroup mayContain: sudoUser rDNAttID: cn showInAdvancedViewOnly: FALSE adminDisplayName: sudoRole adminDescription: Sudoer …
8 sudo 

3
ルートを使用せずにスーパーバイザを実行するにはどうすればよいですか?
supervisordが非rootユーザーとして実行されない理由を理解するのに問題があるようです。ユーザーをjason(pid 1000)に設定して起動すると、ログファイルに次のようになります。 2010-05-24 08:53:32,143 CRIT Set uid to user 1000 2010-05-24 08:53:32,143 WARN Included extra file "/home/jason/src/tsched/celeryd.conf" during parsing 2010-05-24 08:53:32,189 INFO RPC interface 'supervisor' initialized 2010-05-24 08:53:32,189 WARN cElementTree not installed, using slower XML parser for XML-RPC 2010-05-24 08:53:32,189 CRIT Server 'unix_http_server' running without any HTTP authentication checking 2010-05-24 …

1
パスワードなしで機能するようにsudoを構成する
すべてのユーザーがパスワードを入力せずにApacheを再起動できるようにsudoを設定しようとしています。 セキュリティの問題はさておき、なぜこれが機能しないのですか? / etc / sudoersに次の行を追加しました: %admin ALL=NOPASSWD: /usr/sbin/apache2ctl $sudo -l User aidan may run the following commands on this host: (root) NOPASSWD: /usr/sbin/apache2ctl (ALL) ALL $sudo /usr/sbin/apache2ctl [sudo] password for aidan: 助けてくれてありがとう。
8 linux  ubuntu  sudo 

3
SSHで「sudo」を実行する
多数のリモートマシンにログオンしてコマンドを実行するスクリプトを書いています。スクリプトを実行するユーザーが各マシンのパスワードを入力する必要がなく、スクリプトの最初にパスフレーズを入力するだけでよいように、キーを設定しました。 問題は、リモートマシンのコマンドsudoを実行する必要があることです。同時に、スクリプトの目的は、ユーザーがパスワードを何度も入力する必要をなくすことです。のパスワードを入力しないようにする方法はありますsudoか?リモートマシンでコマンドの権限を変更することはできません。
8 ssh  sudo 

2
サーバー管理でsudoまたは単にsu rootを使用する必要がありますか?
どちらのアプローチが優れていますか? デスクトップの使用については、sudoの方が良いようです。 通常のユーザーとしてより一貫した履歴を持つことができます 2つのパスワードを覚えておく必要はありません。これは、管理作業を定期的に行わない場合に特に当てはまります。 インストール時に追加のrootアカウントを作成する必要はありません。 しかし、サーバー管理についてはどうでしょうか? サーバーでは通常、すでにrootアカウントが作成されており、管理作業を頻繁に行う可能性があります。したがって、sudoの利点はもはや保持されていないようです。 さらに、ほとんどのディストリビューションではコマンドラインでsuを設定するのは簡単です。ホイールグループにユーザーを追加するだけです。(あなたも渡すことができ-G wheelたときにuseraddする。)したがって、suコマンドを簡単にシェルスクリプトに自動化することができる設定。 しかし、sudoについては?visudo対話的に実行するよりも、まずユーザーを追加する必要があります。シェルスクリプトに自動化できないため、これは悪いことです。 (まあ、できます。たとえば、 echo '%wheel ALL=(ALL) ALL' >> /tmp/sudoers.tmp cp /etc/sudoers /etc/sudoers.old visudo -c -f /tmp/sudoers.tmp && mv /tmp/sudoers.tmp /etc/sudoers しかし、少なくともそれは簡単ではありません。) だからあなたの意見は何ですか?サーバー環境では、sudoまたはsu rootのどちらを好みますか?
8 unix  sudo  root  su 

3
sudoの前のユーザー名
sudoを必要とするスクリプトを取得しましたが、スクリプトは次のような元のユーザーに応じてパラメーターを設定する必要があります。 chown "${USER}:${USER}" dir sudoで設定するとchmod root:root、結局はで終わりますが、これは役に立ちません。 では、sudoの前にユーザー名を取得するにはどうすればよいですか?

2
sudoを使用してシステム構成ファイルに行を追加する方法は?
構成ファイル(/etc/resolv.confなど)に行を追加する必要があります。私が使うなら sudo echo "nameserver 192.168.1.6" >> /etc/resolv.conf 「アクセスが拒否されました」というエラーメッセージが表示されます。問題は、bashがrootsアカウントからではなく、私のアカウントからファイルに書き込むことです。 それを機能させる方法はありますか? コマンドをファイルに書き込んでバッチとして実行するための「解決策」があることは知っていますが、それは非常に不快です:-(

9
sudoersファイルを編集してユーザーのコマンドを制限する
sudoersファイルを編集して、ユーザーが指定したコマンド以外のコマンドでsudoを使用できるようにすることはできますか?私は真実だと思います。sudoersファイルは、ユーザーが特定のコマンドリストのみを実行できるように設定できると思います。 編集:私が本当に奪いたいコマンドは停止と再起動です...これは私に停止と再起動のための特別なシステムコールがあると思います。システムコールをユーザーから削除できますか?そうでない場合、それはunix許可システムがシステムコールを抽象化してこれを無視しているためですか?
8 linux  sudo 

5
`sudo -s`の使用を制限する
Linuxサーバーの一部にNagiosをセットアップしていますが、少し問題が発生しています。check_ide_smartプラグインを実行するためのシステムへのrootアクセスが必要です。これを実行するには、check_by_sshプラグインを使用してリモートホストのnagiosアカウントにSSHで接続し、check_ide_smartsudoを使用して実行します。 /etc/sudoersプログラムを機能させるために、最初に次の行を追加しました。 nagios ALL=NOPASSWD: /usr/lib/nagios/plugins/check_ide_smart これをローカルで実行すると問題なく動作しましたが、Nagiosから実行すると問題が発生しました。TTYが生成されず、プラグインが機能しませんでした。 sudoのmanページを調べたところ、-sオプションが見つかりました。これは、シェルを生成してそこでプログラムを実行します。sudo -s-sがコマンドを/bin/bash -c /usr/lib/nagios/plugins/check_ide_smartに変更するため、sudoersファイルでは許可されていないため、を使用しようとしたときに権限の問題に遭遇しました。代わりにそのコマンドを使用するようにsudoersファイルを変更しようとしましたが、機能しませんでした。引用符を使用すると構文エラーになります。 私は最終的に次の行を使用して動作させました/etc/sudoers: nagios ALL=/bin/bash nagiosユーザーが何でもできるrootシェルを生成することを許可しているので、これは私には本当に間違っていると感じています。 この時点では、多分、nagiosユーザーが読み取り専用権限を持っているシェルスクリプトにコマンドを入れることで機能するので、シェルスクリプトを作成しました。 #!/bin/sh /bin/bash -c /usr/lib/nagios/plugins/check_ide_plugin $@ 残念ながら、渡されたパラメーター($@)をプラグインで正しく機能させることができなかったため、これが機能するかどうかわかりません。 編集:私$@はそれが機能するために引用する必要がありました。@derobertと@pjzに感謝します。@Mike Arthurのソリューションを使用して動作させたので、動作するかどうかはまだわかりません。 sudo -sルートシェルのスポーンを許可せずに作業できる方法はありますか? 回答: に次の行を追加しました/etc/sudoers: nagios ALL=NOPASSWD: /bin/bash -c /usr/lib/nagios/plugins/check_ide_smart * 末尾のアスタリスクに注意してください。それがなければ、これは機能しません。答えてくれて@Mike Arthurに感謝します。
8 linux  security  sudo 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.