web-dev-qa-db-ja.com

/ etc / sudoersを編集して、権限を取得していません

Rootパスワードを尋ねずにプログラムを実行したい。システムを使うのは私だけだから。そこで、グーグルして/etc/sudoersを編集しました。

私がしたこと:

# chmod 640 /etc/sudoers
# vim /etc/sudoers

以下のような行を追加しました:

# User privilege specification
root    ALL=(ALL:ALL) ALL
sgg ALL=(ALL:ALL) ALL

ファイルを保存して閉じました。システムを再起動。ただし、変更/改善はありません。他の行を変更したいですか?または方法はありますか?

編集:

1.パーミッション/etc/sudoers0440に変更しました。 ls -l /etc/sudoers結果は

-r--r----- 1 root root 772 May  4 19:43 /etc/sudoers

2 .# visudoを実行します。ファイルの内容は

Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL
sgg ALL=NOPASSWD:ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group Sudo to execute any command
%Sudo   ALL=(ALL:ALL) ALL

しかし、それでもSudo lsを実行するとパスワードの入力を求められます。

システム情報Ubuntu 14.04 x86_64 3.13.0-24-generic

9
gangadhars

最初にいくつかの一般的なポイント:

  1. なし/etc/sudoersを直接編集します。代わりに常にSudo visudoを使用する必要があります。これにより、ファイルを編集できますが、保存する前にエラーをチェックします。 sudoersの構文はトリッキーであり、Sudoを使用できなくなるため、誤りがあるとシステムが使用できなくなる可能性があります。

  2. なし/etc/sudoersの権限を変更します。一般に、システムファイルのアクセス許可は変更しないでください。多くの場合、それらに関連付けられたプログラムは適切に機能せず、これは悪い習慣であり、セキュリティホールです。そもそもSudoの目的なので、アクセス許可を変更するためにneedする必要はありません。

    さらに、/etc/sudoersの権限を640に設定して書き込みができた場合、そのownerもユーザーに変更したことになります。それは効果的にそれを壊します。 man sudoersで説明されているように:

    / etc/sudoersはgid Nが所有しています。1である必要があります。sudoersファイルのグループ所有権が間違っています。 sudoersファイルグループの所有権を変更する場合は、「sudoers_gid = N」(「N」はsudoersファイルを所有するグループID)をSudo.conf(5)ファイルのsudoersプラグイン行に追加してください。

  3. 通常のユーザーがドライブをマウントできるようにする場合は、/etc/fstabでそれを指定することをお勧めします。あなたの例を使用して、あなたはこの行がそこに欲しいでしょう:

    /dev/sda6   /media/sgg/D    vfat    users,rw,errors=remount-ro,noauto  0   0
    

    それは通常のユーザーがそれをマウントすることを可能にします

    mount /dev/sda6
    
  4. 上記にもかかわらず、ユーザーがパスワードなしでコマンドを実行できるようにしたい場合、/etc/sudoersに追加する行(Sudo visudoを使用)は次のとおりです。

    sgg ALL=NOPASSWD:ALL
    

    ファイルを保存してvisudoを終了し、Sudo lsを実行してみてください。パスワードの入力を求められることはありません。テストしたところ、LMDEで動作することを確認できました。

11
terdon

これは、すべてのコマンドを実行できることをシステムに伝えます(いずれにしてもデフォルトです)が、パスワードについては何も言われません。必要なもの:

sgg ALL = (ALL) NOPASSWD: ALL

Manページから:

FULLTIMERS      ALL = NOPASSWD: ALL

フルタイムのシステム管理者(millert、mikef、dowdy)は、自分自身を認証することなく、任意のホストで任意のコマンドを実行できます。

2
Hauke Laging