私のデスクトップには Suse Linux があります。そのため、私はルート ユーザーであり、「通常の」ユーザーです。たとえば、Tomcat を起動したり、プログラムをインストール/削除したりする場合、使用したり、スーパー ユーザーに切り替える必要があります。ただし、 には多くのエイリアスを定義し、 にはパスをsudo
定義しています。.bashrc
.profile
スーパーユーザーの権限の一部を通常のユーザーに割り当てることは可能ですか? 例: プログラムをインストールする権限など?
答え1
はい、しかしそれは最悪のことです。OS には、異なる権限を持つさまざまなユーザーがいます。そしてそれは意図的です。ユーザーに永久にルート権限を与えると、システムのセキュリティが危険にさらされます。(Windows 9x とすべてのウイルスを覚えていますか?)
コマンドを実行する場合、(シェル)sudo
を実行しない限り、カスタマイズの要素は必要ないと思います。/bin/sh
希望どおりの結果を得るには、次の操作を実行できます。
システムから、~/.bashrc
およびにデータを移動したり、さらには の別のスクリプトに配置することもできます( を忘れないでください)。これらのファイルは、ログイン セッションごとに実行されます。~/.profile
/etc/bash/bashrc
/etc/profile
/etc/profile.d/mystuff.sh
chmod +x /etc/profile.d/mystuff.sh
次に、ルートセッションを開始しますsu -
。-に渡された (マイナス) 記号はsu
ログイン セッションを実行し、したがって上記のファイルを実行します。Linux ディストリビューションによっては、sudo su -
代わりに を呼び出す必要がある場合があります。
ルート セッションが終了したら、logout
ルート権限を残しておくことをお勧めします。
特定のバイナリに対してのみルート権限が必要な場合は、別の方法があります。これは、実効 UID と呼ばれます。たとえば、mtr
バイナリに対してこれを使用できます。
chmod a+s `which mtr`
この方法では、mtr
バイナリを実行するときに、バイナリを所有するユーザー (この場合は root) の有効な権限が取得されます ( chown root /path/to/mtr
)。これにより、sudo の入力が省かれますが、どのバイナリに root 権限を付与するかを慎重に選択する必要があります。リスクを認識していない場合は危険です。最初のオプションを使用することをお勧めします。
答え2
tomcatの起動は、初期化スクリプト. ユーザグループにTomcatを(再)起動する権限を与えたい場合は、/etc/sudoersを使用しますvisudo
。次のようになります。
%tomcatcontrol localhost = NOPASSWD : /etc/init.d/tomcat *
localhostをあなたのマシンの名前に置き換えてください。そして、グループの各ユーザーtomcatコントロール発行可能:
sudo /etc/init.d/tomcat restart
(またはステータス、停止、開始)。
それが sudo の目的です。ルート アカウントでより長く作業したい場合は、 を実行できます。他のユーザーが実際に tomcat コンテンツ (ユーザー tomcat が所有するファイル) を管理できるようにしたい場合は、ユーザーまたはユーザー グループに対して をsu -
許可できます。su - tomcat
エイリアスについては、OpenSuSE にはその目的のための /etc/profile.local があると思います。そこに、すべてのユーザーに有効なものを配置できます。