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

sudo-スーパーユーザー権限でコマンドを実行します。

8
一般ユーザーにsudo vimアクセスを許可するのはなぜ危険なのですか?
新しいユーザーを作成し、sudoアクセスを許可したいと思います。具体的には、sudo vimhttpd.conf を使用および編集してもらいます。私はこれをsudoersで書きました: user ALL=(ALL) /usr/bin/vim /etc/httpd/confs/httpd.conf しかし、これはリスクが高いと聞いた。なぜこれが問題なのですか?問題はどの程度深刻ですか?
30 security  vim  sudo 

3
Bashスクリプトファイルをsudo実行すると、Bashスクリプト内のすべてのコマンドもsudoとして実行されますか?
Bashで自動化されたインストール後スクリプト(post-install.shたとえばと呼ばれる)を作成したい。このスクリプトは、リポジトリを自動的に追加および更新し、パッケージをインストールおよび更新し、構成ファイルを編集します。 ここで、たとえばを使用してこのスクリプトを実行するsudo post-install.shと、sudoパスワードの入力が1回だけ求められますか、それともsudoスクリプト内でsudo許可が必要なコマンドを呼び出すたびにパスワードを入力する必要がありますか?言い換えれば、bashスクリプト内のコマンドは、いわば実行権限を「継承」していますか? そして、実際にそうする場合、sudoアクセス許可がタイムアウトする可能性はまだありますか(たとえば、特定のコマンドがsudoタイムアウトを超えるのに十分な時間がかかる場合)?または、最初のsudoパスワード入力は、スクリプト全体が完了するまで続きますか?

1
スクリプトでcronがsudoを実行するのに静かに失敗するのはなぜですか?
を使用していくつかのコマンドを呼び出す非特権ユーザーのcrontabからスクリプトを実行していますsudo。そうでないことを除いて。スクリプトは正常に実行されますが、sudoされたコマンドは黙って失敗します。 スクリプトは、問題のユーザーとしてシェルから完全に実行されます。 sudoはパスワードを必要としません。問題のユーザーにはで(root) NOPASSWD: ALLアクセスが許可されてい/etc/sudoersます。 Cronはスクリプトを実行および実行しています。シンプルdate > /tmp/logを追加すると、適切なタイミングで出力が生成されます。 権限の問題ではありません。繰り返しますが、スクリプトは実行されますが、sudoされたコマンドではありません。 パスの問題ではありません。実行env中のスクリプト内から実行$PATHすると、sudoへのパスを含む正しい変数が表示されます。完全なパスを使用して実行しても役に立ちません。実行中のコマンドにはフルパス名が与えられています。 STDERRを含むsudoコマンドの出力をキャプチャしようとしても、有用なものは何も表示されません。sudo echo test 2>&1 > /tmp/logスクリプトに追加すると、空のログが生成されます。 sudoバイナリ自体は正常に実行され、スクリプト内のcronから実行された場合でもアクセス許可があることを認識します。sudo -l > /tmp/logスクリプトに追加すると、出力が生成されます。 ユーザーec2-userは、このホストで次のコマンドを実行できます: (root)NOPASSWD:ALL を使用してコマンドの終了コードを調べると、$?エラーが返されています(終了コード:)1が、エラーは発生していないようです。/usr/bin/sudo /bin/echo test同じエラーコードを返すような単純なコマンド。 他に何が起こっているのでしょうか? これは、最新のAmazon Linux AMIを実行する最近作成された仮想マシンです。crontabはユーザーに属しec2-user、sudoersファイルが配布のデフォルトです。
30 sudo  cron 


6
ログインパスワードとは異なるsudoパスワードを設定します
特権ユーザーとして、sudoパスワードを別のパスワードに設定してから、ログイン時に使用したパスワードを設定しようとしています。 私はいくつかの研究をしましたが、答えを見つけていません。いsudoた構成のサポートその種類は? パスワードを紛失すると、すべてが失われます。誰かがログインしrootて、同じパスワードで昇格できます。 sudoには、root呼び出されたユーザーパスワードの代わりにパスワードを要求するオプションがあります(rootpw)が、rootパスワードを共有することは間違いなくオプションではないため、セットアップしsudoます。 config 2FA過去にやったことがありますが、それはうまく機能しましたが、自動化の目的を無効にします。たとえば、expectスクリプトを使用して多数のサーバーで特権コマンドを実行する場合、追加2FAしても実行できません。 私が見つけた最も近い解決策は、SSH秘密鍵のみを許可し、sudo(ログイン)パスワードとは異なる鍵でパスフレーズを設定することです。それでも、緊急事態では、そのキーを持たないPCでログインできないため、快適ではありません。
29 sudo 

3
sudoインシデントはどこに記録されますか?
誰かがsudoersグループに属していないときにsudoを使用しようとすると、次のようなエラーメッセージが表示されます。 yzT is not in the sudoers file. This incident will be reported. たとえば、sudoを使用してコマンドを実行しようとしたのに見つからないユーザーを確認するために、この情報が記録されているログを特定しようとしています。 最初のGoogle検索では/var/log/syslog、sudoに関連する情報は表示されません。
29 logs  sudo 


2
sudoは、すでにルートのパスワードを入力したことをどのように覚えていますか?
Linuxでsudoを使用する場合、rootパスワードが要求されますが、初めて実行するときのみです。別のsudoコマンドを実行すると、以前にパスワードを入力したことを覚えており、パスワードを要求しません。 thomas@ubuntu:~$ sudo id [sudo] password for thomas: ****** uid=0(root) gid=0(root) groups=0(root) thomas@ubuntu:~$ sudo id uid=0(root) gid=0(root) groups=0(root) sudoはどのようにそれを行いますか?この情報はどこに保存されますか?私のアイデアは、端末ID(pts / 1など)を記憶することですが、これはどこに保存されますか?最初のsudoプロセスは、コマンドで完了すると終了しますか? sudoはsetuidプログラムであるため、常にrootの特権を持っていることは知っていますが、ユーザーが既にパスワードを入力したという情報を保存するのに適した場所を考えることはできません。何らかのデーモンプロセスが関係していますか?
27 linux  sudo 

3
`:w!sudo tee%`の仕組み
vimに書き込む権限のないファイルを開いてから、変更する必要があると判断した場合、vimを終了せずに変更を書き込むことができます:w !sudo tee % 。これを解剖してください。 私はその:w部分を理解しています、それは現在のバッファをディスクに書き込みます、すでにそれに関連付けられたファイル名があると仮定しますよね? また!、sudo teeコマンドを実行し%、現在のバッファの内容を表すものを理解していますか? しかし、これがどのように機能するかまだ理解していない。
27 vim  sudo  tee 

3
sudoコマンドは/root/.bashrcをソースしません
PATH/root/.bashrcファイルの変数にカスタムパスを追加しました するとsudo su; echo $PATH、エントリ「/ path / to / custom / bins」が表示されます。 しかし、私はsudo sh -c 'echo $PATH'それを示しています、 /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin .bashrcファイルに追加されたフォルダーパスは表示されません。 sudoコマンドには、rootユーザーと同じ環境がありませんか?
27 sudo  bashrc 

7
sudoを必要とするスクリプトがなければ、sudoを使用してプロンプトを表示する必要がありますか?
バックライトの明るさをきめ細かく制御できるスクリプトがありsudo、実行する必要があります。基本的にこれです: backlight="/sys/class/backlight/acpi_video0/brightness" echo $1 | tee $backlight とに住んでい~/bin/backlight-adjustます。特権のある場所に書き込むsudoため、スクリプトには特権が必要tee $backlightです。したがって、で実行しないと失敗しますsudo。 このアプローチには問題があります。なぜなら、私はただ実行するsudo backlight-adjustこと~/binはできないからです。なぜなら$PATH、sudo環境の中ではなく、自分の環境の中だけにいるからです。だから私は走らなければならないsudo env "PATH=$PATH" backlight-adjustか、何か似たようなものが必要だ。 あるいは、次のように書くこともできます。 backlight="/sys/class/backlight/acpi_video0/brightness" echo $1 | sudo tee $backlight パスワードの入力を求められます。 2番目のアプローチは、sudoと入力することを覚えておく必要がないため、私にとってはうまく機能します。プロンプトが表示されます。そして、私はそのままにしておくことができ$PATHます。これは全体的に便利ですが、2番目の方法でこれを行うべきではない理由はありますか? (Xubuntu 14.04を実行していますが、シェルがGNU bash 4.2.45である場合、違いが生じます。)

4
sudoはどのくらい普遍的ですか?
私は何かをインストールする方法についていくつかの指示を書いていました(TeX関連-あなたが尋ねないなら、私は詳細を提供することであなたの一日を台無しにしません)sudo。誰かが、それがsudoすべてのLinux(またはUnix)ディストリビューションで利用可能であるとは思わなかったとコメントしました。 を持っていないUnixディストリビューションはありsudoますか?すべてのシステムに共通して認められている「スーパーユーザー権限を取得」コマンドがありますか?

2
sudoにパスワードの入力を要求する
次のことを行う場合: sudo su - //enter password exit exit //login again straight away sudo su - sudoの2回目の呼び出しは、パスワードを要求しません。これは、再度ログアウトしても、まだ一定の時間制限内にあるため、パスワードを再度入力する必要がないためです。 私はいくつかの新しい権限を試して、それらが機能することを確認しているため、タイムアウトが発生するのを待っている間、これは本当に遅くなります。 タイムアウトをリセットするために実行できるコマンドはありますか? ちなみに、タイムアウトを変更したり、他のユーザーに影響を与えたくありません!
26 sudo  password 

3
パスワードを持たないユーザー-非rootアカウントからそのアカウントにログインする方法
Scientific Linux(7.0)の使用を開始しました(この質問はディストリビューションに中立であると思われますが。)カーネルのバージョンは3.10.0-123.20.1.el7.x86_64です。 私の質問に戻ります。 rootアカウントに切り替え、そこからtest-accountコマンドを使用して新しいユーザーアカウントを作成しましたadduser test-account。パスワードの入力を求められず、パスワードを提供するオプションも使用しませんでした。だから、それは「パスワードなし」アカウントだと思う。ルートアカウントからこのアカウントにログインできます。テストアカウントにパスワードがあったとしても、パスワードを入力しなくてもできると思います。ただし、3番目のアカウントからthis(test-account)にログインしようとすると、パスワードの入力が求められます。押すだけでEnterは機能しません。 非rootアカウントからこのアカウントにログインすることは可能ですか?方法はありsudoますか(ルートへの切り替えやを使用せずに)?


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.