Unix rootアカウントとWindowsローカル管理者の概念的な違いを理解したいと思います。私は開発者であり、ITの努力にもかかわらず、常にローカル管理者権限を付与されているので、ローカルPCに何をしたいのかをインストールできます。
しかし、何らかの理由で(そしてそれが妥当な理由があるべきだと思います)私は私たちのLinuxシステムのユーザーです。これにより、リポジトリからソフトウェアをインストールするなどのsudo操作を実行できなくなります。
Windowsでは、root権限がローカル管理者権限よりも多くの権限を付与するためだと思います。そうですか?
Unixでapt-getまたはyumを使用して特定のユーザーにソフトウェアのインストール権限を付与することは可能ですか?
答え1
Windowsでは、root権限がローカル管理者権限よりも多くの権限を付与するためだと思います。そうですか?
これは事実ではありません(少なくとも原則的ではありません)。しかし、一つの主な違いはユーザー(アカウント)を識別する方法。Windowsのローカル管理者アカウントには、他のアカウントとは異なる独自のセキュリティ識別子(SID)があるため、(同じコンピュータまたは別のコンピュータ上の)他のローカル管理者アカウントと簡単に区別できます。すべてのルートアカウントは、同じ数のユーザーIDを共有します。したがって、簡単に区別することはできません。
設定によっては、ユーザーに「ローカル」ルートアクセスを提供するのに大きな障害になる可能性があります。すぐに浮上する潜在的に深刻な問題の1つは、NFSユーザーIDです。
Unixでapt-getまたはyumを使用して特定のユーザーにソフトウェアのインストール権限を付与することは可能ですか?
これを許可するように設定できますが、sudo
これは大きなセキュリティホールになる可能性があります。 sudo設定を変更したり、setuidルートシェルをインストールするなどのパッケージを作成してインストールした場合はどうなりますか?突然、いわゆる「制限された」ルートアクセス権が、ユーザーにシステムへのフルルートアクセス権を与えました。特定の設定ファイルを編集するためのsudoエディタなどの「通常の」機能も、同様の重大なセキュリティ脆弱性が発生しないように注意深く実装する必要があります。
答え2
私はWindows管理についてはよくわかりませんが、Windows adminとLinux Rootの間に大きな違いはないと思います。 (私は何かが間違って理解されているかもしれませんが、あなたの質問によると、あなたの会社の誰もがWindowsプレーンコンピュータを持っているか、脂肪質の顧客、そしてLinuxシンクライアントまたはシンプルユーザーSSHアクセス)
Thin Clientにはrootアクセス権を付与しないのが一般的な慣行であり(これは会社全体のrootアクセスであるため)、ユーザーが自分のPCを管理できるようにすることは問題ではありません。
ルートアクセスが必要なため、パッケージマネージャ(apt-get/yum/...)を使用してソフトウェアをインストールすることはできません。管理者に必要なパッケージのインストールを依頼またはインストールできます。地元のホームディレクトリ(書き込み権限があるため必要ありませんroot
)。
ホームディレクトリにインストールするには、次のプロセスを使用できます(実際の例を使用します)。画面キャプチャ、必要に応じて調整してください):
- ユーザースペースにインストールしたソフトウェアの特定のフォルダを作成します。
mkdir ~/local
- このフォルダに移動します。
cd ~/local
- インストールするソフトウェアをダウンロードします。
wget http://git.silverirc.com/cgit.cgi/screenfetch.git/snapshot/screenfetch-3.2.0.tar.gz
- アーカイブ抽出:
tar -zxf screenfetch-3.2.0.tar.gz
- ソフトウェアのビルド/実行に必要な特定のタスクを確認するには、Readmeファイルをお読みください。
- バイナリを実行可能にします。
chmod +x screenfetch-3.2.0/screenfetch-dev
- ソフトウェアを起動するためのショートカットまたはエイリアスを追加します(ディストリビューション、シェル、デスクトップ環境によって大きく異なる場合があります)。この例では、画面のインポートを開始するときに、ビジネスデスクトップ(Bashを含むLinux Mint 13)でソフトウェアを起動したいと思います。コマンドラインファイルに次の行を追加しました
~/.bashrc
。alias screenfetch='~/local/screenfetch-3.2.0/screenfetch-dev'