ユーザーが特定のコマンドを実行できないように制限

ユーザーが特定のコマンドを実行できないように制限

test1特定のコマンドのみを実行するように制限したいユーザーがいます。私が見つけたこれ解決策、私はそれをテストし(test1としてログインし、ランダムなコマンドを実行しましたが、そのうちの何も動作しませんでしたdate)動作しました。これが私がしたことです:

cp /bin/bash /bin/rbash
useradd -s /bin/rbash test1
mkdir /home/test1/bin
chmod 755 /home/test1/bin
echo "PATH=$HOME/bin" >> /home/test1/.bashrc
echo "export PATH" >> /home/test1/.bashrc
chattr +i /home/test1/.bash_profile
ln -s /usr/bin/date /home/test1/bin

test1私はあなたのようなLinuxの専門家よりもDBAに近いので、これが十分なのか、システムが何もしないように他のことをする必要があるのか​​わかりません。セキュリティを改善するための提案はありますか?

ご覧のとおり、次のコマンドへのリンクを作成するとifconfig

ln -s /sbin/ifconfig /home/test1/bin 

このユーザーはを使用することtest1もできます。たとえば、このオプションを使用してこのコマンドをどのように制限できますか?それともオプションなしで実行できますか?add | del | up | downifconfig-a

答え1

一般ユーザーはネットワークインターフェイスを変更できません。

たとえば、root以外のユーザーは、次のようにインターフェイスの詳細を表示できますifconfig

$ ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether xx:xx:xx:xx:xx:xx  txqueuelen 1000  (Ethernet)
        RX packets 178399193  bytes 213874320365 (199.1 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 50539358  bytes 36748192570 (34.2 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device memory 0xba200000-ba21ffff  

しかし、インターフェイスを閉じることはできません。

$ ifconfig eth0 down
SIOCSIFFLAGS: Operation not permitted

つまり、rootとして実行しないでくださいifconfig(例えばsudo

答え2

走ってみたことがありますか/bin/rm?記事の上部の警告を読んでいますか?

免責事項:これは単なるハッキングであり、実際の本番用途にはお勧めできません。

次のコメントも読んでみましょう。この回答Stack Overflowでコピーを入手してください。

実際にユーザーを制限したい場合安全にSELinuxやAppArmorなどの権限フレームワークを見ることもできます。

関連情報