私はそれを行うには十分であると言う多くのブログ投稿を見てきました
aptitude install Sudo
su root
adduser USERNAME Sudo
ただし、これはaptitude
のみを保護します。つまり、
aptitude install sendmail
はパスワードを要求します。Sudo
を実行するにはaptitude
である必要があります
apt-get install sendmail
はパスワードを要求しません。Sudo
権限は必要ありません
etc
内のファイルなど、保護されたファイルを編集する場合、パスワードの入力は求められず、Sudo
特権は必要ありません
Apache
のようなサービスを実行および停止できます。パスワードを要求することはなく、Sudo
特権は必要ありません
これを修正するには?これは私のsudoersファイルです:
This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:$
# Host alias specification
# User alias specification
# Cmnd alias specification
これはSudo -l
の出力です。
Matching Defaults entries for root on this Host:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin
User root may run the following commands on this Host:
(ALL : ALL) ALL
(ALL : ALL) ALL
Sudoルールを追加していないため、Sudoを何にも使用できません。
コマンドadduser USERNAME Sudo
は、指定されたユーザーをSudo
というグループに追加します。その名前のグループが存在している必要があります。ない場合はaddgroup Sudo
で作成します。ユーザーをグループに追加した後、グループメンバーシップを有効にするには、ユーザーはログアウトして再度ログインする必要があります。
Sudo
は特別なグループ名ではありません。これは、Sudo
というグループのユーザーがSudo
ユーティリティを介してrootとしてコマンドを実行できるようにするための規約です。これには、sudoers
ファイルに次の行が必要です。
%Sudo ALL = (ALL) ALL
visudo
を実行してsudoersファイルを編集します。直接編集しないでください。
「適性を守るだけだ」とあなたが信じる理由がわかりません。適性について特別なことは何もありません。 rootとしてコマンドを実行する権限をユーザーに付与すると、そのユーザーはSudo aptitude …
またはSudo apt-get …
またはSudo service …
、またはsudoedit
を実行して、root権限を必要とするファイルを編集できます編集。 sudoersファイルに入っていても、ユーザーの特権は直接変更されません。これにより、Sudo
を実行してrootとしてコマンドを実行できるようになります。コマンドは、Sudo
を介して実行した場合にのみルートとして実行されます。一部のプログラム、特にユーザーインターフェイスが特別な権限なしで実行され、バックエンドのみがrootとして実行されるGUIプログラムがそれを自動的に行う場合がありますが、rootとして実行されるコマンドは常にSudo
によって実行されます。
mayが起こったことは:Sudoがパスワードをキャッシュしています。そのため、システムでのSudoの実装を正しく完了した後、firstコマンドのパスワードを入力する必要があり、その後しばらくの間キャッシュされます。それが起こり、シーケンスを実行した場合
Sudo aptitude install sendmail
Sudo apt-get install sendmail
次に、最初のコマンドでパスワードを提供する必要がありますが、2番目のコマンドでは提供しないでください(少なくともタイムアウト内にいる間は)。これはfeelのように、最初のコマンドのみを保護し、2番目のコマンドは保護しないようにします。詳細な情報(完全なシェルのトランスクリプト)なしでは、伝える方法はありません...
上記の答えに従うと、正しい方向に進んでいます。少なくとも私のDebian Jessieでは、パス/ sbinにあるコマンドの/ usr/binへのソフトリンクを作成しました。例:/ sbin/ifup、/ usr/binへのソフトリンク(ln -s)を配置して使用できます。
もう1つの重要なことは、NOPASSWDを次のように置くことです。
User_Alias NET = goviedo
Cmnd_Alias ETH = /sbin/ifup
NET ALL = NOPASSWD:ETH