사용자가 /bin에서만 명령을 실행하도록 제한하는 방법은 무엇입니까?

사용자가 /bin에서만 명령을 실행하도록 제한하는 방법은 무엇입니까?

나는 몇 가지 질문이 있는 과제를 받았습니다. 질문 중 하나는 다음과 같습니다.

사용자가 디렉토리에서만 명령을 실행하도록 제한하는 방법은 무엇입니까 /bin?

문제를 해결하기 위해 다음 명령을 사용해 보았지만 작동하지 않습니다.

# useradd -s /bin/bash localuser
# usermod -s /bin/rbash localuser
# mkdir /home/localuser/programs

내용은 다음과 같습니다 /home/localuser/.bash_profile.

# .bash_profile  

# Get the aliases and functions  
if [ -f ~/.bashrc ]; then  
. ~/.bashrc  
fi  
# User specific environment and startup programs  
PATH=$HOME/programs  
export PATH

그런 다음 다음을 시도합니다.

[localuser@example ~]$ ls  
-rbash: ls: command not found  
[localuser@example ~]$ less file1  
-rbash: less: command not found  
[localuser@example ~]$ clear  
-rbash: clear: command not found  
[localuser@example ~]$ date  
-rbash: date: command not found  
[localuser@example ~]$ ping redhat.com  
-rbash: ping: command not found
# ln -s /bin/date /home/localuser/programs/  
# ln -s /bin/ls /home/localuser/programs/  
# ll /home/localuser/programs/  
total 8  
lrwxrwxrwx 1 root root 9 Oct 17 15:53 date -> /bin/date  
lrwxrwxrwx 1 root root 7 Oct 17 15:43 ls -> /bin/ls
[localuser@example ~]$ date  
Mon Oct 17 15:55:45 IST 2011  
[localuser@example ~]$ ls  
file1 file10 file2 file3 file4 file5 file6 file7 file8 file9 programs  
[localuser@example ~]$ clear  
-rbash: clear: command not found
# chattr +i /home/localuser/.bash_profile

당신의 대답은 무엇입니까?

답변1

완전 따라한 것 같은데이 답변또는링크하도록 지시. 그러나 사용자가 특정 명령만 실행하도록 제한하는 방법을 구체적으로 보여줍니다. 해당 예에서 명령은 where date및 입니다 ls. 그러나 사용자가 /bin특정 명령뿐만 아니라 의 모든 명령을 실행할 수 있기를 원한다는 점에서 질문이 다릅니다. 따라서 개별 명령을 연결하는 대신 전체 디렉터리를 연결하려고 합니다. 당신은 이것을 할 수 있어야합니다 ln.

관련 정보