Det er faktisk ikke lige til. Hvis du forstiller dig en shell hvor de kun har adgang til eget homedir. Hvad så med kommandoer der ligger i /usr/local og/eller /sbin
Hvis du låser dem i egen mappe, vil de i princippet ikke kunne gøre noget overhovedet. Ellers skal du linke til hver af de kommandoer/programmer de har behov for. Og hvis du bare giver dem adgang til et enkelt program som er potientielt farligt, så får du problemer. F.eks. cat (cat /etc/httpd/conf/httpd.conf)
Jeg tror løsningen er at give de rigtige rettigheder på alle filerne så de ikke kan læse dem. skidt pyt med at de kan se de andre filer. Det er vel somregel mere eller mindre standard filer, som alle ved er der aligevel.
Eller endnu bedre.. slet ikke give dem en shell, medmindre det virkeligt er nødvendigt. :o)
"bash -r" er dit svar. -r If the -r option is present, the shell becomes restricted (see RESTRICTED SHELL below). "RESTRICTED SHELL If bash is started with the name rbash, or the -r option is supplied at invocation, the shell becomes restricted. A restricted shell is used to set up an environment more controlled than the standard shell. It behaves identically to bash with the exception that the following are disallowed or not performed:
· changing directories with cd
· setting or unsetting the values of SHELL, PATH, ENV, or BASH_ENV
· specifying command names containing /
· specifying a file name containing a / as an argument to the . builtin command
· Specifying a filename containing a slash as an argument to the -p option to the hash builtin command
· importing function definitions from the shell environment at startup
· parsing the value of SHELLOPTS from the shell environment at startup
· redirecting output using the >, >|, <>, >&, &>, and >> redirec- tion operators
· using the exec builtin command to replace the shell with another command
· adding or deleting builtin commands with the -f and -d options to the enable builtin command
· Using the enable builtin command to enable disabled shell builtins
· specifying the -p option to the command builtin command
· turning off restricted mode with set +r or set +o restricted.
These restrictions are enforced after any startup files are read.
When a command that is found to be a shell script is executed (see COM- MAND EXECUTION above), rbash turns off any restrictions in the shell spawned to execute the script."
1: Hvordan vil du sætte det? Har du prøvet at teste det på en bruger? og derefter su bruger?
2: Denne shell vil være mere eller mindre ubrugelig. Som jeg skrev tidligere. Helt uden muligheder.
.. Tror det er bedre at sikre dit system med filrettigheder, eller endnu bedre.. ungå at folk at give brugere adgang denne vej.
--- >
asusbox:~# ls bash: ls: No such file or directory asusbox:~# cat bash: cat: No such file or directory asusbox:~# php bash: php: No such file or directory asusbox:~# perl bash: perl: No such file or directory asusbox:~# gcc bash: gcc: No such file or directory asusbox:~# ./sbin/ifconfig bash: ./sbin/ifconfig: restricted: cannot specify `/' in command names
nej. det kan jeg jo så egentligt godt se. det var også mere kort ment som et hint. havde hørt forskellige steder, at man selv kunne strikke et shell sammen (med rbash) men hvordan ved jeg ikke. Derfor det lille udsnit af "man bash"
udfra dit forslag lavede jeg et lille forsøg. Som udgangspunkt med bash -r er der ingen muligheder.
asusbox:~# cd /home/test asusbox:/home/test# ln -s /sbin/ifconfig ifconfig
asusbox:/home/test# bash -r bash: SHELL: readonly variable bash: PATH: readonly variable bash: dircolors: No such file or directory
asusbox:/home/test# ifconfig
eth0 Link encap:Ethernet HWaddr 00:E0:4C:ED:BA:FE inet addr:131.111.111.111 Bcast:131.164.227.255 Mask:255.255.252.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:........
Så faktisk har du egentligt ret i det du skriver oz2kas. Ved at lave symlink til de kommandoer som der skal benyttes kan det faktisk godt lade sig gøre.. men næppe trivielt at holde styr på. Og man skal godt nok passe meget på.. kommandoer som cat, find, perl, php osv vil udgøre et så stort problem, at man nok egentligt kan overveje om det er "det værd..."
Men jeg lærte lidt spændende nyt idag - Tak for det :o)
.... Og vælger man at benytte denne metode sammen med kommandoer som f.eks. cat, php o.s.v.. skal man aligevel sørge for ens filer er sikret tilstrækkeligt (rettigheder) - og så er det spørgsmålet om man så ikke bare skal fokusere på filrettigheder og så give fuld shell.
jeg mener at ham jeg fik det at vide af brugte det på en højere læreanstalt til at man kunne logge ind og lave en bruger/ændre med nogle specielle kriterier opfyldt. kan ikke helt huske det.
tja oz2kas, du ved jo hvem jeg kommer rendende til hvis det ikke virker som det skal :) Men jeg tror bare at jeg dropper ideen, og så som disky siger kun give de brugere der har brug for det/er det værd ssh adgang. Hvor kan jeg ændre hvem der må det og hvem ikke?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.