greys
Full Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору Небольшое замечание: Цитата: su -" - это значит выполнить команду с правами админа... соответственно, прав больше | на самом деле, это совсем неправильная трактовка. Все, что делает "-" в качестве отдельного параметра команды su - это выставляет все переменные окружения в строгое соответствие с пользователем, которым мы хотим стать посредством команды su. Т.е. su - делается чтобы стать суперпользователем, или админом, это верно, но знак "-" означает, что все переменные, которые мы устанавливали (меняли) из-под текущего пользователя, кроме переменной PATH, теряются, и инициализируются лишь переменные суперпользователя root. Можно сделать su - lynx тогда все мои переменные будут потеряны, зато я стану полноценным пользователем lynx - все ее переменные будут проинициализированы, как будто бы я только что вошел в систему под ее именем и паролем. Из-за этого свойства в некоторых Линуксах в man-страничке к команде su пишут даже в разделе описания опций: -, -l, --login make the shell a login shell т.е. это одна и так же опция - действует, как будто мы не меняемся с одного пользователя на другого, а просто входим в систему под указываемым пользователем. Так вот, дальше: если этого "-" не указывать, то ваши переменные сохранятся. Т.е. инициализируются переменные, скажем, суперпользователя, но они как бы наложатся на ваши собственные переменные. Простой опыт: часть первая - с сохранением моих переменных (в данном случае это переменная HELLO): bash$ export HELLO=1 bash$ su bash# echo $HELLO 1 часть вторая - с потерей переменных, т.е. полным перевоплощением в другого пользователя: bash$ export HELLO=1 bash$ su - bash$ echo $HELLO т.е. ничего не печатается, переменной такой в окружении пользователя, которым мы стали, просто нет. Не проинициализирована. Ну, надеюсь, немного разъяснил путаницу Всем удачи, greys |