nixp.ru v3.0

27 мая 2017,
суббота,
11:11:26 MSK

DevOps с компанией «Флант»
grisha написал 16 июля 2008 года в 13:19 (607 просмотров) Ведет себя как мужчина; открыл 34 темы в форуме, оставил 202 комментария на сайте.

Началось с того, что я традиционно:) решил разрешить локальному пользователю выключать и перегружать компьютер. (пользователь создавался через adduser с домашним каталогом /usr/home/user). В sudoers написал как надо, остались переменная для команды, например, reboot. Пишу в /usr/home/user/.shrc alias reboot=’sudo reboot’. Делаю как user reboot — в ответ не разрешено, делаю sudo reboot — перезагружается. Т.е. дело в переменных для данного пользователя — aliasы почему то не работают. Удалил пользователя, добавил нового (на этот раз c каталогом /home/user) — все заработало. Вопроса собственно 2. Почему получилось как выше? И почему система дублирует каталоги /home и /usr/home? Т.е. если я создаю /usr/home/user/file, то в /home я вижу /home/file. Я например не хочу заполнять корневой каталог — этот раздел у меня небольшой, а /usr на отдельном разделе.

Anarchist

Ёб твою мать блядь…

# man ls

не осилил?

В FreeBSD традиционно /home является симлинком на /usr/home

Так же традиционно в /etc/passwd принято указывать в качестве домашнего каталога /home/username.

Ты что за зверь? Почто пользователю bash зажимаешь?

И что у тебя делает FreeBSD на десктопе?!.

Где цитаты из /etc/sudoers?

С правильно настроенным sudo и корректно прописанными алиасами всё должно работать.

Steck

Анахрист сегодня злюка ;-)

grisha
author=Anarchist link=board=faq;num=1216199957;start=0#1 date=07/16/08 в 14:45:56]

В FreeBSD традиционно /home является симлинком на /usr/home

Так же традиционно в /etc/passwd принято указывать в качестве домашнего каталога /home/username.

Тогда с дублированием:) все понятно. Просто думал об обычных каталогах как в линукс и не догадался сделать ls для корня.

Ты что за зверь? Почто пользователю bash зажимаешь?

Не зажмиаю, просто выбрал что под руку попалось. Юзер (он же я) не против :). А чем баш лучше шел?

И что у тебя делает FreeBSD на десктопе?!.

Изучается. Решил, что 3 дистрибутива это лишне и отказался от генту в пользу фри (оно и сервер, если припрет :), да и как десктоп почему нельзя)

Где цитаты из /etc/sudoers?

В этом файле по твоему же совету с переменной Cmnd_Alias POWER = /sbin/reboot

и дальше user ALL=(root) NOPASSWD: POWER

а можно было бы и без переменной просто user ALL=(root) NOPASSWD: /sbin/reboot

Anarchist
grisha
Тогда с дублированием:) все понятно. Просто думал об обычных каталогах как в линукс и не догадался сделать ls для корня.

RTFM FHS.

Скорее — ls -l

grisha
Не зажмиаю, просто выбрал что под руку попалось. Юзер (он же я) не против :). А чем баш лучше шел?

Вот начнёшь использовать ABS — узнаешь :)

grisha
Изучается. Решил, что 3 дистрибутива это лишне и отказался от генту в пользу фри (оно и сервер, если припрет :)

В этом ты категорически не прав!

И, кстати, как сервер тоже фря рулит далеко не бесспорно и не во всех номинациях.

grisha
да и как десктоп почему нельзя)

Примерно в том числе и по тому же, почему не является безусловным лидером на роль сервера.

Только позиций побольше, критичность позиций повыше.

grisha
В этом файле по твоему же совету с переменной Cmnd_Alias POWER = /sbin/reboot

и дальше user ALL=(root) NOPASSWD: POWER

Дык совет-то давался для случая Linux!

Ты уверен, что не забыл перечитать профиль после обновления?

grisha
Steck
Анахрист сегодня злюка ;-)

Кстати я все думаю как бы не опечататься однажды типа антихрист 8) — (с такой символикой еще бы 666 на крылья и действительно зверь). Насчет религии — не знаю ;)

grisha
Ты уверен, что не забыл перечитать профиль после обновления?

Перечитать профиль после обновления — чувствую что-то очень знакомое 8), вот только не могу вспомнить8)Ок, готов читать справку (какую?), а лучше на месте в двух словах можно?

Anarchist
grisha
Перечитать профиль после обновления — чувствую что-то очень знакомое 8)

Ещё сто грамм… :)

grisha
вот только не могу вспомнить8)Ок, готов читать справку (какую?), а лучше на месте в двух словах можно?

А я почём знаю? Перелогиниться — поможет, но это — не решение (в смысле — не наш путь).

Я /bin/sh использую только в простеньких скриптах (обычно пишущихся для нормальной работы в окружении cron).

Если бы ты использовал bash, то в FreeBSD твой конфигурационный файл — ~/.profile.

И после прописывания алиасов в конфиге эффект тот же.

Но вот как только ты выполнишь командочку

$ bash -login

Прописанные тобой алиасы заработают.

grisha

Если перечитать профиль — просто перелогниться, то да я это делал, я этим занимался.

Anarchist
grisha
Если перечитать профиль — просто перелогниться, то да я это делал, я этим занимался.



echo $PATH

для пользователя в студию!

Как разруливается порядок при совпадении alias’а с командой в sh в FreeBSD — не знаю.

А если попробовать прописать пользователю шеллом bash?

grisha

Ну, ты как обычно прав. А вообще вот как мне теперь все это видется. Ошибка ясна. Алиасы я писал где угодно, но только не в .profile (!). Странно, ведь он наверно специально для таких как я называется ПРОФИЛЬ. А я почему то решил что надо писать в .shrc или например в .cshrc (что то в их названии намекает на shell :)) Соответственно мне хотелось бы видеть и для bash что-нибудь типа .bshrc. Но, так как я этого в каталоге пользователя не нашел (почему?:)), писал в том что было. И напоследок, чтобы окончательно… Зачем в каталоге лежат файлы .shrc и сshrc если у пользователя нет этих терминалов?

Anarchist
grisha
Ну, ты как обычно прав. А вообще вот как мне теперь все это видется. Ошибка ясна. Алиасы я писал где угодно, но только не в .profile (!).

На самом деле, если ты знаешь что, куда и зачем писать — то алиасы можно прописывать где угодно.

Как я вроде бы достаточно ясно указал, твоя проблема чётко позиционировалась в игнорировании alias’ов.

grisha
Странно, ведь он наверно специально для таких как я называется ПРОФИЛЬ. А я почему то решил что надо писать в .shrc или например в .cshrc (что то в их названии намекает на shell :))

Кстати, правильно решил.

Что там написано — убей не помню (а смотреть лень).

Но:

1. ~/.cshrc вполне себе адекватно интерпретируется.

2. Его синтаксис несовместим с bash’ем.

Отсюда вывод: есть мнение, что ты чего-то недочитал/недопонял или не то писал в ~/.shrc (ты перешёл на bash или как?).

grisha
Соответственно мне хотелось бы видеть и для bash что-нибудь типа .bshrc.

Святая наивность!

Я не рассказывал эпопею с синхронизацией параметров окружения в консоли и в X-овом терминале у меня в Gentoo?..

grisha
Но, так как я этого в каталоге пользователя не нашел (почему?:))

И скорее всего не предполагается.

Все вопросы к FreeBSD Team.

А файлик должен хваться ~/.bash_profile.

grisha
Зачем в каталоге лежат файлы .shrc и сshrc если у пользователя нет этих терминалов?

Каких терминалов?

Это входящие в стандартную поставку FreeBSD шеллы!

Steck

А вот Фря на десктопе рулит!! она у меня уже дооолго долго лет стоит =))

РУЛИТ :-P

P.S Да здравствуте флейм и холивары =)

grisha
Отсюда вывод: есть мнение, что ты чего-то недочитал/недопонял или не то писал в ~/.shrc (ты перешёл на bash или как?)

Да, я перешел на баш.

Моя практика показала, что в любом случай (т.е. при любом шеле, если алиасы прописывать в .profile они работают(!). Хорошо я возьму еще специально проделаю все что выше и потом уже определенно выскажусь :)

Каких терминалов?Это входящие в стандартную поставку FreeBSD шеллы!

Ок. А если совсем уж правильно то тогда коммандные интерпретаторы. Просто когда ты говоришь шел, то можно понять как конкретный sh, а можно и как общее понятие «коммандная оболочка/интерпретатор») I’ll be back

Anarchist
grisha
Да, я перешел на баш.

Мораль: с этого следовало начинать!

grisha
Моя практика показала, что в любом случай (т.е. при любом шеле, если алиасы прописывать в .profile они работают(!). Хорошо я возьму еще специально проделаю все что выше и потом уже определенно выскажусь :)

Проверь.

Для случая csh. Там, если ты почитаешь ~/.cshrc совершенно другой синтаксис.

Так вот, в Gentoo (как в других дистрибтивх — не знаю) на третьем ините интепретатор читает окружение из ~/.bash_profile. Интерпретатор же запущенный в Х-овом терминале — из ~/.bashrc.

Для обеспечения идентичного окружения без дублирования я сделал вот что: ~/.bash_profile у меня практически пустой:

[[ -f ~/.bashrc ]] && . ~/.bashrc

Все значащие параметры прописываются в ~/.bashrc.

grisha
Ок. А если совсем уж правильно то тогда коммандные интерпретаторы

Педантизм попёр :)))

grisha
Просто когда ты говоришь шел, то можно понять как конкретный sh, а можно и как общее понятие «коммандная оболочка/интерпретатор») I’ll be back

Мда… Налицо острый недостаток знаний истории и опыта работы с стандартным шеллом (который Bourne Shell или sh) в классических Unix’ах.

Если бы такой опыт присутствовал в достаточном объёме, мыслей об использовании sh при наличии таких альтернатив не возникало бы.

Anarchist
Steck
А вот Фря на десктопе рулит!!

Абаснуй :)

Steck
она у меня уже дооолго долго лет стоит =))

Привычка — вторая натура.

Steck
P.S Да здравствуте флейм и холивары =)

Воистину так :)))

ЗЫ: Грыша, для обеспеченния приемлемого баланса между читаемостью/информативностью форума дописал бы ты в первое сообщение суть проблемы и краткое содержание последующего флейма :)

Anarchist

И что же ты не читал (читал недостаточно внимательно) меня любимого?..

http://www.nixp.ru/articles/freebsd_fine_tune_for_linuxers

lexx

Всетаки не свосем понимаю почему баш лучше эсаш… можно чуть подробнее?

myst

Если тебя sh устраивает, то bash хуже, потому что больше.

lexx
myst
Если тебя sh устраивает, то bash хуже, потому что больше.

True :)

grisha
Anarchist
для обеспеченния приемлемого баланса между читаемостью/информативностью форума дописал бы ты в первое сообщение суть проблемы и краткое содержание последующего флейма :)

Нуу… понимаешь, так вот получается — хочется разобраться что к чему, а тут одно с другим пересекается. Постараюсь исправиться и излагать по существу ;) Все таки.

Ок. Еще раз ;) Сооздаю пользователя с шеллом /bin/sh, добавляю в его .shrc alias reboot="sudo reboot» (предварительно добавляю его в sudoers), делаю от его имени reboot — идет перезагрузка. C этим все ясно. Далее. Через chpass меняю ему /bin/sh на /usr/local/bin/bash, по команде reboot — Operation not permitted. $PATH для пользователя /bin:/sbin/usr/bin/:usr/sbin:/usr/local/bin:/usr/local/sbin:

Anarchist
grisha
$PATH для пользователя /bin:/sbin/usr/bin/:usr/sbin:/usr/local/bin:/usr/local/sbin:

RTFM FHS мать вашу!!!

Hint: на право выполнения команд из каталогов /sbin /etc простой пользователь рылом не вышел.

grisha
Anarchist
Hint: на право выполнения команд из каталогов /sbin /etc простой пользователь рылом не вышел.

Дурдом какой-то. Так я ж его в судоерс и прописал (как же ж так). Подтверди еще раз насчет RTFM, может и правда займусь чтением.

Anarchist
grisha
Дурдом какой-то. Так я ж его в судоерс и прописал (как же ж так). Подтверди еще раз насчет RTFM, может и правда займусь чтением.

Не…

Истинный дурдом — это твоё значение PATH для непривилегированного пользователя: ну не положено ему ломиться по каталогам, в которых лежат superuser binaries!!!

Когда уяснишь это — можно будет переходить к разборкам с алиасами (sh у тебя ~/.profile читает или как?).

grisha
Anarchist
Не…

Истинный дурдом — это твоё значение PATH для непривилегированного пользователя: ну не положено ему ломиться по каталогам, в которых лежат superuser binaries!!!

Такой PATH есть в файле .profile домашнего каталога пользователя. Очевидно они читаются именно из этого файла (причем я пути не прописывал — они уже были в этом файле).

sh у тебя ~/.profile читает или как?

.profile у меня читает все. Я уже писал об этом «моя практика показывает и.т.»

grisha
Anarchist
ну не положено ему ломиться по каталогам, в которых лежат superuser binaries!!!

Я кстати ничего в этом плохого не вижу, что значит ломиться? Пока рут не даст ему такого права никуда он не проломится и ничего что у него есть эти пути (еще раз повторю в sudoers я разрешил пользователю выполнять без пароля как рут /sbin/reboot, шелл у пользователя /usr/local/bin/bash, в .shrc переменная reboot="sudo reboot»

Anarchist
grisha
Я кстати ничего в этом плохого не вижу, что значит ломиться? Пока рут не даст ему такого права никуда он не проломится и ничего что у него есть эти пути

Опрометчивое решение.

Не положено пользователю знать о командах root’а, независимо от того, как и что ему разрешено через sudo.

metal
Anarchist
Опрометчивое решение.

Не положено пользователю знать о командах root’а, независимо от того, как и что ему разрешено через sudo.

Кто ему может запретить сделать «ls /sbin"?

Anarchist
metal
Кто ему может запретить сделать «ls /sbin"?

Я любимый (root то есть).

Например посредством:

drwxr-x---  2 root wheel 3168 Фев  2 13:29 /sbin/

Или более радикально:

drwx------  2 root wheel 3168 Фев  2 13:29 /sbin/
Anarchist
grisha
.profile у меня читает все. Я уже писал об этом «моя практика показывает и.т."$

Как в том анекдоте: »Йес, ай до, а хуле толку?..

В переводе: если ~/.profile написан в расчёте на синтаксис bash’а, то толку от того, что его читает csh — порядка нуля (факт прочтения не гарантирует корректной интерпретации). Наоборот аналогично.