
Linux システムで、プログラムをインストールする権限を持ちながら、他のユーザーのディレクトリにアクセスする権限を持たないユーザーを作成する必要があります。
私はこれをやろうとしました:
# Create restricted user user
adduser --home /home/restricted_user restricted_user
# Edit normal user dir permissions
chmod -R 700 /home/normal_user/
# Add restricted user to sudoers in order to allow program installation
sudo adduser restricted_user sudo
次に、次のことを試しました。
su restricted_user
sudo ls /home/normal_user
そして最後に、制限されたユーザーはsudoを使用して通常のユーザーのディレクトリにアクセスできるようになります。
この制限をどのように実装できますか?
答え1
ユーザーをsudo
グループ一般的なルート アクセスを許可しないでください。/etc/sudoers
ユーザーがルートとして実行できる実行可能ファイルの小さなセットを編集して指定します。例:
# in sudoers file
restricted_user ALL = (root) /usr/bin/apt-get
restricted_user ALL = (root) /sbin/reboot
ノート:
- Linux によって異なります:
apt-get
/apt
、dpkg
、opkg
、pacman
、yum
、 … - 完全なパスを使用してください。
- 編集の正しい方法
sudoers
はvisudo
。 man 5 sudoers
構文の詳細については を参照してください。- より複雑なルールを構築するときは、順序は重要。
任意のプログラムをインストールできる意志のあるユーザーは、設定されたのバージョンls
または「アップグレード版」をインストールしてsudo
、 に関係なくルート アクセスを許可します/etc/sudoers
。または、インストール時に任意の操作を実行するパッケージを提供してインストールします (実際には何もインストールしない可能性もあります)。これを防ぐのは簡単ではないかもしれません。