Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
jaka jest roznica pomiedzy uzywaniem
$sudo mc
a odpalaniem komend za pomoca
$su -c mc
wady zalety etc,etc.
Offline
2500
Ostatnio edytowany przez uzytkownikubunt (2016-12-01 01:29:58)
Offline
Od Twojej strony prawie żadna, natomiast technicznie trochę inaczej są ustawione zmienne, np sudo automatycznie ustawia zmienną SUDO_USER, którą można prosto użyć w każdym skrypcie potrzebującym uprawnień roota albo innego usera.
Sudo też jest nowsze, znacznie bardziej elastyczne pod względem konfiguracji, i np potrafi czyścić zmienne użytkownika.
Przykładowe porównanie u mnie:
su -c env | grep pacjent Hasło: GTK2_RC_FILES=/home/pacjent/.gtkrc-2.0 SSH_AUTH_SOCK=/tmp/.runtime-pacjent/keyring/ssh MAIL=/var/mail/pacjent PWD=/home/pacjent XDG_RUNTIME_DIR=/tmp/.runtime-pacjent
sudo env | grep pacjent Hasło: SUDO_USER=pacjent
Niby nie ma różnicy, ale pod względem zmiennych przekazywanych do powłoki nowego usera ta różnica może być dosyć zasadnicza, co ma spory wpływ na ogólne bezpieczeństwo systemu.
Krótko pisząc, robią podobne rzeczy, ale su to śrubokręt, a sudo to uniwersalny scyzoryk. :D
Ostatnio edytowany przez Jacekalex (2015-12-27 20:26:52)
Offline
a ze wzgledow bezpieczenstwa jak sie ma jedno do drugiego
Offline
Z tym czyszczeniem to przesadzasz:
$ su -c env |wc -l Password: 74 $ sudo env |wc -l 22 $ su - -c env |wc -l Password: 19
Nawet mniej. xD Dlatego ja mam taki alias prawie od zawsze:
alias su='su -'
Offline
Z tym czyszczeniem to przesadzasz:
Nie przesadzam, env-reset ustawia się w sudoers w sekcji Defaults.
Poza tym nie są istotne wszystkie zmienne, ale te, które zawierają lokalizacje różnych rzeczy w ~ i dane użyszkodnika.
Sudo pozwala nad tym lepiej zapanować, dzięki dostępnym opcjom w konfiguracji.
Wyniki z resztą mam diametralnie inne, niż u Ciebie:
# G1 ### nie gru 27 21:34:54 localhost : ~ pacjent ~> sudo env | wc -l Hasło: 16 # G1 ### nie gru 27 21:35:04 localhost : ~ pacjent ~> su -c env | wc -l Hasło: 58 # G1 ### nie gru 27 21:35:14 localhost : ~ pacjent ~> su - -c env | wc -l Hasło: 48
Ostatnio edytowany przez Jacekalex (2015-12-27 21:37:37)
Offline
Coś masz chyba schrzanione z tym 'su -'. Ja sobie porównuje właśnie zmienne:
Ten XAUTHORITY i DISPLAY to mi były potrzebne chyba do graficznych aplikacji by się odpalały bez problemu na root. xD
Sam widzisz, że te środowiska u mnie są kompletnie wyczyszczone.
Offline
Hmm:
su - -c env Hasło: LDFLAGS=-Wl,-O1 -Wl,--as-needed MANPATH=/usr/local/share/man:/usr/share/man:/usr/share/gcc-data/x86_64-pc-linux-gnu/4.9.3/man:/usr/share/binutils-data/x86_64-pc-linux-gnu/2.25.1/man:/usr/lib64/php5.6/man/:/usr/share/postgresql/man/:/usr/share/postgresql-9.4/man/ SHELL=/bin/bash TERM=xterm CG_INC_PATH=/opt/nvidia-cg-toolkit/include CPPFLAGS=-march=native -mssse3 -O2 -pipe USER=root LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.pdf=00;32:*.ps=00;32:*.txt=00;32:*.patch=00;32:*.diff=00;32:*.log=00;32:*.tex=00;32:*.doc=00;32:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36: PRELINK_PATH_MASK=/usr/lib64/klibc:/usr/lib64/libfreebl3.so:/usr/lib64/libnssdbm3.so:/usr/lib64/libsoftokn3.so:/usr/lib32/libfreebl3.so:/usr/lib32/libnssdbm3.so:/usr/lib32/libsoftokn3.so:/opt/bin/skype GUILE_LOAD_PATH=/usr/share/guile/1.8 MULTIOSDIRS=../lib64:../lib32 CXXFLAGS=-march=native -mssse3 -O2 -pipe PAGER=/usr/bin/less CONFIG_PROTECT_MASK=/etc/gentoo-release /etc/sandbox.d /etc/php/cli-php5.6/ext-active/ /etc/php/cgi-php5.6/ext-active/ /etc/php/apache2-php5.6/ext-active/ /etc/fonts/fonts.conf /etc/gconf /etc/terminfo /etc/dconf /etc/ca-certificates.conf /etc/texmf/web2c /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/revdep-rebuild /etc/splash XDG_CONFIG_DIRS=/etc/xdg PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin: LC_MESSAGES=pl_PL.UTF-8 HG=/usr/bin/hg CHOST=x86_64-pc-linux-gnu PWD=/root EDITOR=/usr/bin/geany &>/dev/null LANG=pl_PL.UTF-8 CG_LIB_PATH=/opt/nvidia-cg-toolkit/lib32:/opt/nvidia-cg-toolkit/lib64 PGHOST=/var/run/postgresql/ GSETTINGS_BACKEND=dconf QT_GRAPHICSSYSTEM=raster PS1=\n# G1 ### \[\033[01;30m\]\d \t \[\033[01;34m\] \H : \[\033[01;34m\]\[\033[01;34m\]\w \n\[\033[1;31m\]\u ~> \[\033[00m\] HISTCONTROL=ignoredups SHLVL=1 HOME=/root CG_COMPILER_EXE=/opt/bin/cgc CFLAGS=-march=native -mssse3 -O2 -pipe LESS=-R -M --shift 5 LOGNAME=root GCC_SPECS= XDG_DATA_DIRS=/usr/local/share:/usr/share LESSOPEN=|lesspipe %s INFOPATH=/usr/share/info:/usr/share/gcc-data/x86_64-pc-linux-gnu/4.9.3/info:/usr/share/binutils-data/x86_64-pc-linux-gnu/2.25.1/info XDG_RUNTIME_DIR=/tmp/.runtime-root DISPLAY=:0.0 QT_PLUGIN_PATH=/usr/lib64/kde4/plugins OPENGL_PROFILE=nvidia LADSPA_PATH=/usr/lib64/ladspa CONFIG_PROTECT=/var/bind /usr/share/gnupg/qualified.txt /usr/share/config /usr/share/themes/oxygen-gtk/gtk-2.0 /usr/share/themes/oxygen-gtk/gtk-3.0 OPENCL_PROFILE=nvidia XAUTHORITY=/root/.xauthLV5zjA COLORTERM=mate-terminal _=/usr/bin/env
sudo env Hasło: TERM=xterm LC_MESSAGES=pl_PL.UTF-8 LANG=pl_PL.UTF-8 DISPLAY=:0.0 COLORTERM=mate-terminal MAIL=/var/mail/root PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin LOGNAME=root USER=root USERNAME=root HOME=/root SHELL=/bin/bash SUDO_COMMAND=/usr/bin/env SUDO_USER=pacjent SUDO_UID=1000 SUDO_GID=1000
W su nigdy nic nie konfigurowałem, wsio defaultowo-gentusiowe, za to mam sporo specyficznych zmiennych z Gentusia oraz samodzielnie zdefiniowanych.
Offline
Może ma znaczenie wywoływanie su z opcją '-c'? Bo z tego co widzę, to jak się zaloguję normalnie na roota i w terminalu jako root wydam 'env', to mam trochę więcej:
# env | wc -l 74 # env | wc -l 43
Pierwsze jest z 'su' drugie 'su -'. Ale i tak jest niewiele tych co mają 'morfik':
# env | grep -i morfik XAUTHORITY=/home/morfik/.Xauthority PATH_SCREENCAST=/home/morfik/Desktop/ PATH_SCREENSHOT=/home/morfik/skriny DEBEMAIL=morfik@nsa.com DEBFULLNAME=Mikhail Morfikov
W sumie to tylko te, które mam w konfiguracji shella ustawione. Mam tylko osobny profil dla root, bardzo podobny do tego użytkownika. xD
Offline
Co do bezpieczeństwa:
aby wleźć zdalnie na roota, musisz znać:
a) przy sudo - hasło usera (aby zalogować się na jego konto, dalej aby wejść na konto roota)
b) przy su - hasło usera (aby zalogować się na jego konto) oraz hasło roota (wymagane do su)
Zakładam oczywiście, że zdalne logowanie na konto roota jest wyłączone.
Jakieś wnioski w związku z tym?
Offline
wnioski oczywiste ;-).
Offline
2501
Ostatnio edytowany przez uzytkownikubunt (2016-12-01 01:30:00)
Offline
Ze względów bezpieczeństwa to praktyka zaczerpnięta z Ubuntu chyba jest lepsza niż logowanie się na roota.
Zwłaszcza jak sudo jest porządnie skonfigurowane i userzy mogą przez sudo wykonywać TYLKO to co powinni.
Offline
ethanak napisał(-a):
Co do bezpieczeństwa:
aby wleźć zdalnie na roota, musisz znać:
a) przy sudo - hasło usera (aby zalogować się na jego konto, dalej aby wejść na konto roota)
.....
Jakieś wnioski w związku z tym?
Ale tylko w Ubuntu, np w SUSE żeby wejść na konto root przez sudo musisz wklepać hasło roota.
Sudo się konfiguruje, i w różnych dystrybucjach domyślna konfiguracja może wyglądać trochę inaczej.
Nawiasem pisząc, nie rozumiem, dlaczego w Debianie w sudoers nie ma domyślnie:
Defaults targetpw
W Ubuntu to oczywiste, tam "wyłączyli" konto roota.
Tylko fachowość tego wyłączenia była taka, jak wszystko w Ubuntu, żeby wspomnieć choćby prawo do zmiany czasu dla użyszkodnika,
i wynikające z tego skutki, których spece z Ubuntu nie przewidzieli.
Pozdro
Ostatnio edytowany przez Jacekalex (2015-12-28 19:08:03)
Offline
thalcave napisał(-a):
Ze względów bezpieczeństwa to praktyka zaczerpnięta z Ubuntu chyba jest lepsza niż logowanie się na roota.
Zwłaszcza jak sudo jest porządnie skonfigurowane i userzy mogą przez sudo wykonywać TYLKO to co powinni.
Akurat w Ubuntu (i chyba w większości przypadków używania sudo) jest to najgorzej skonfigurowane.
Wszelkie ALL=(ALL:ALL) ALL itp, to zaprzeczenie bezpieczeństwa systemu.
Offline
2502
Ostatnio edytowany przez uzytkownikubunt (2016-12-01 01:30:01)
Offline
Dodatkowym atutem przy sudo, jeżeli w systemie pracuje paru adminów jest możliwość logowania kto i kiedy korzystał z sudo.
Wszystko to tylko narzędzia i zależą o tego jak je skonfigurujemy. IMO sudo wydaje się być lepszym rozwiązaniem, ale TYLKO jeżeli jest przemyślanie skonfigurowane.
Offline