RalfFriedl
IPPF-Urgestein
- Mitglied seit
- 22 Apr 2007
- Beiträge
- 12,343
- Punkte für Reaktionen
- 1
- Punkte
- 0
Vielleicht wenn SUID handling ausgeschaltet ist im busybox and das Attribut auf /bin/busybox enabled ist (muss ich testen). Aber dann wirden alle applets mit root verwendet fur alle users.Möglicherweise reicht schon setuid auf Busybox, damit ping geht.
#!/bin/bash
# Custom firmware modifications
# Directories:
# ./firmware - untared firmware
# ./filesystem - unpacked filesystem squashfs
# ./kernel - unpacked kernel & hidden kernel squashfs
DOT_CONFIG="../../.config"
. ${DOT_CONFIG}
all() {
dummy=0
if echo ${FREETZ_REPLACE_BUSYBOX} | grep -q 'y' ; then
echo 'Busybox is being replaced!'
if grep -q '^CONFIG_FEATURE_SUID_CONFIG=y' ../../make/busybox/Config.${FREETZ_TARGET_REF} ; then
echo 'set atttributes on busybox'
chmod u+s ./filesystem/bin/busybox
echo -e '[SUID]\nsu = ssx 0.0\npasswd = ssx 0.0\nmore = ssx 0.0\ngrep = ssx 0.0\nping = ssx 0.0' >./filesystem/etc/busybox.conf
chmod 0440 ./filesystem/etc/busybox.conf
fi
fi
if [ -f ./filesystem/usr/bin/sudo ] ; then
echo 'set atttributes of /usr/bin/sudo'
chmod u+s ./filesystem/usr/bin/sudo
echo 'set atttributes of /etc/sudoers'
chmod 0440 ./filesystem/etc/sudoers
echo 'set atttributes of files inside /etc/sudoers.d/*'
chmod -R 0440 ./filesystem/etc/sudoers.d/*
fi
}
clean() {
dummy=0
}
case "$1" in
""|all)
all
;;
clean)
clean
;;
*)
echo "Usage: $0 {all|clean}" 1>&2
exit 1
;;
esac
exit 0
# cat /etc/busybox.conf
[SUID]
su = ssx 0.0
passwd = ssx 0.0
more = ssx 0.0
grep = ssx 0.0
ping = ssx 0.0
# ls -altr /etc/sudoers
-r--r----- 1 root root 2849 Sep 8 2011 /etc/sudoers
# sudo -u zabbix ping -c1 127.0.0.1
PING 127.0.0.1 (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: seq=0 ttl=64 time=0.467 ms
--- 127.0.0.1 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 0.467/0.467/0.467 ms
# sudo -u zabbix cat /etc/sudoers
cat: can't open '/etc/sudoers': Permission denied
sudo: can't mkdir /var/lib/sudo: No such file or directory
--with-timedir=/var/mod/usr/lib \
#!/bin/bash
# Custom firmware modifications
# Directories:
# ./firmware - untared firmware
# ./filesystem - unpacked filesystem squashfs
# ./kernel - unpacked kernel & hidden kernel squashfs
all() {
dummy=0
echo -e '\n\n'
if [ -f "../../.config" ] ; then
DOT_CONFIG="../../.config"
grep "^FREETZ_" "${DOT_CONFIG}" >/tmp/FREETZ_ENV
. /tmp/FREETZ_ENV
else
echo "Error....!!!\n\n\Could not find ${DOT_CONFIG}"
pwd
ls -al ../../
fi
if echo "${FREETZ_REPLACE_BUSYBOX}" | grep -q 'y' ; then
echo 'Busybox is being replaced!, lets check if we need to set SUID....'
# Check if CONFIG_FEATURE_SUID_CONFIG is set in the file ~/freetz-trunk/make/busybox/Config.16mb or Config.8mb (whatever is used now)
if grep -q '^CONFIG_FEATURE_SUID_CONFIG=y' ../../make/busybox/Config.${FREETZ_TARGET_REF} ; then
echo 'set SUID atttributes on the file busybox itself'
chmod u+s ./filesystem/bin/busybox
echo 'Create /etc/busybox.conf and make it readable for root only'
echo -e '[SUID]\nsu = ssx 0.0\npasswd = ssx 0.0\nmore = ssx 0.0\ngrep = ssx 0.0\nping = ssx 0.0' >./filesystem/etc/busybox.conf
chmod 0440 ./filesystem/etc/busybox.conf
fi
fi
if [ -f ./filesystem/usr/bin/sudo ] ; then
echo 'set atttributes of /usr/bin/sudo'
chmod u+s ./filesystem/usr/bin/sudo
echo 'set atttributes of /etc/sudoers'
chmod 0440 ./filesystem/etc/sudoers
echo 'set atttributes of files inside /etc/sudoers.d/*'
chmod -R 0440 ./filesystem/etc/sudoers.d/*
fi
if echo "${FREETZ_PACKAGE_ZABBIX_AGENTD}" | grep -q 'y' ; then
if [ -e ../../make/zabbix_agentd/files/root/sbin ] ; then
echo "copy custom scripts"
find ../../make/zabbix_agentd/files/root/sbin -maxdepth 1 -mindepth 1 -type f | while read source ; do
target="./filesystem/sbin/${source##*/}"
echo "copy ${source} to ${target} (script from zabbix_agentd)"
cp -p "${source}" "${target}"
chmod +x "${target}"
chmod u+s "${target}"
done
fi
fi
echo -e '\n\n'
}
clean() {
dummy=0
}
case "$1" in
""|all)
all
;;
clean)
clean
;;
*)
echo "Usage: $0 {all|clean}" 1>&2
exit 1
;;
esac
exit 0
exit 0
freetz@freetz-linux:~/src/freetz-trunk$ svn update
At revision 7676.
freetz@freetz-linux:~/src/freetz-trunk$ make
make: *** Keine Regel vorhanden, um das Target »dl/busybox-1.19.2.tar.bz2«,
benötigt von »/home/freetz/src/freetz-trunk/source/host-tools/busybox-1.19.2/.unpacked«, zu erstellen. Schluss.
freetz@freetz-linux:~/src/freetz-trunk$ ls source/host-tools/
busybox-1.18.5 fakeroot-1.16 find-squashfs lzma443 squashfs3.4 TI-chksum-0.2
fakeroot-1.15.1 fakeroot-1.17 lzma2eva squashfs2.2-r2 sstrip-1.0
Ich benutze fwmod_custom nicht, d. h. ich kann dir hier nicht helfen.Hasst Du mein fwmod_custom angeguckt?
Ist dass die weise wie man dass macht?
Nein, ich habe keine Rechte für SVN. Du solltest dich an die Freetz Entwickler wenden.Hasst du die Rechten um sudo in SVN zu bekommen?
Und willst du dass?
Removen, externalisieren und/oder auf bestimmte Pakete verzichten.Ich habe jetzt 8 7270 mit Freetz geflashed aber ein 7390 ist immer zu groß....
Hasst du ein tip womit ich die Größe der Image herunterbringen kann?
Nein....Wenn ich die sudo Konfigurationsdatei im Patch richtig lese, haben damit alle Benutzer alle Privilegien. Dann ist es doch besser, dass alle Benutzer ping ausführen können, das ist auf einem normalen Linux-System auch so.
root@fritz:/var/mod/root# cat /etc/sudoers.d/zabbix
zabbix ALL=(ALL) NOPASSWD: /bin/netstat
zabbix ALL=(ALL) NOPASSWD: /usr/bin/tcpdump
zabbix ALL=(ALL) NOPASSWD: /bin/grep
zabbix ALL=(ALL) NOPASSWD: /sbin/ifconfig
zabbix ALL=(ALL) NOPASSWD: /bin/ping
Ich denke dass du zu schnell mit dein Schlussfolgerung bisst...Der Link zeigt auf eine Mail, die über 7 Jahre alt ist.
Busybox selbst enthält die Information, welche Applets SUID nutzen und welche nicht. Ich habe es mit strace verfolgt, die Datei /etc/busybox.conf wird nicht angesprochen.
[*] Support writing pidfiles
[*] Support for SUID/SGID handling
[*] Runtime SUID/SGID configuration via /etc/busybox.conf
[*] Suppress warning message if /etc/busybox.conf is not readable
[ ] Support NSA Security Enhanced Linux
Naturlich funktioniert ping fuhr die Benutzer 'root'Wir haben aber diese Optionen nicht aktiviert und Busybox Ping funktioniert trotzdem. Was ist also der Grund, diese Option zu aktivieren?