Portál AbcLinuxu, 9. května 2025 21:54
/usr/bin/root.test
s chmod 4755
#!/bin/sh
echo $USER
echo "test zapisu" >> /etc/test.data
/etc/test.data
s chmod 0644
root
/usr/bin/root.test
, protože se program vykonává "pod" aktuálním uživatelem, nemělo by být 100% docíleno efektivního uživatele jako vlastníka souboru? Na místo toho je aktuální a to je přesně to, co nechci. Jiné soubory, npř. /usr/bin/passwd
"vs" /etc/shadow
používají identický princip, jen až na to, že jsou binární a tohle jsou skripty.stat /usr/bin/root.test File: „/usr/bin/root.test“ Size: 58 Blocks: 8 IO Block: 4096 běžný soubor Device: 301h/769d Inode: 1072444 Links: 1 Access: (4755/-rwsr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2011-05-02 16:56:56.000000000 +0200 Modify: 2011-11-17 14:26:30.000000000 +0100 Change: 2011-11-17 14:28:02.000000000 +0100
stat /etc/test.data File: „/etc/test.data“ Size: 0 Blocks: 0 IO Block: 4096 běžný prázdný soubor Device: 301h/769d Inode: 130955 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2011-11-17 14:23:51.000000000 +0100 Modify: 2011-11-17 14:53:47.000000000 +0100 Change: 2011-11-17 14:53:47.000000000 +0100
Řešení dotazu:
/usr/bin/root.test
je
#!/bin/sh
echo $USER
echo "test zapisu" >> /etc/test.data
a po spuštění souboru normálním uživatelem se vypíše chybová hláška
/usr/bin/root.test: 3: cannot create /etc/test.data: Permission denied
sudo
, jindy ssh
. A občas se hodí si kousek toho programu zkompilovat.
sudo
?
C se na to hodit bude. Otázkou však je, jak si poradíš s bezpečností, když ho bude moci spustit kdokoli.
#!/bin/sh
#Absurdní příklad
if [ $USER != "root" ]; then
echo "You must be root!"
fi
sudo
, jak už zde bylo napsáno…
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.