Началось с того, что я традиционно:) решил разрешить локальному пользователю выключать и перегружать компьютер. (пользователь создавался через 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 на отдельном разделе.
Последние комментарии
- OlegL, 17 декабря 2023 года в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
Ёб твою мать блядь…
не осилил?
В FreeBSD традиционно /home является симлинком на /usr/home
Так же традиционно в /etc/passwd принято указывать в качестве домашнего каталога /home/username.
Ты что за зверь? Почто пользователю bash зажимаешь?
И что у тебя делает FreeBSD на десктопе?!.
Где цитаты из /etc/sudoers?
С правильно настроенным sudo и корректно прописанными алиасами всё должно работать.
Анахрист сегодня злюка ;-)
Тогда с дублированием:) все понятно. Просто думал об обычных каталогах как в линукс и не догадался сделать ls для корня.
Не зажмиаю, просто выбрал что под руку попалось. Юзер (он же я) не против :). А чем баш лучше шел?
Изучается. Решил, что 3 дистрибутива это лишне и отказался от генту в пользу фри (оно и сервер, если припрет :), да и как десктоп почему нельзя)
В этом файле по твоему же совету с переменной Cmnd_Alias POWER = /sbin/reboot
и дальше user ALL=(root) NOPASSWD: POWER
а можно было бы и без переменной просто user ALL=(root) NOPASSWD: /sbin/reboot
RTFM FHS.
Скорее — ls -l
Вот начнёшь использовать ABS — узнаешь :)
В этом ты категорически не прав!
И, кстати, как сервер тоже фря рулит далеко не бесспорно и не во всех номинациях.
Примерно в том числе и по тому же, почему не является безусловным лидером на роль сервера.
Только позиций побольше, критичность позиций повыше.
Дык совет-то давался для случая Linux!
Ты уверен, что не забыл перечитать профиль после обновления?
Кстати я все думаю как бы не опечататься однажды типа антихрист 8) — (с такой символикой еще бы 666 на крылья и действительно зверь). Насчет религии — не знаю ;)
Перечитать профиль после обновления — чувствую что-то очень знакомое 8), вот только не могу вспомнить8)Ок, готов читать справку (какую?), а лучше на месте в двух словах можно?
Ещё сто грамм… :)
А я почём знаю? Перелогиниться — поможет, но это — не решение (в смысле — не наш путь).
Я /bin/sh использую только в простеньких скриптах (обычно пишущихся для нормальной работы в окружении cron).
Если бы ты использовал bash, то в FreeBSD твой конфигурационный файл — ~/.profile.
И после прописывания алиасов в конфиге эффект тот же.
Но вот как только ты выполнишь командочку
Прописанные тобой алиасы заработают.
Если перечитать профиль — просто перелогниться, то да я это делал, я этим занимался.
для пользователя в студию!
Как разруливается порядок при совпадении alias’а с командой в sh в FreeBSD — не знаю.
А если попробовать прописать пользователю шеллом bash?
Ну, ты как обычно прав. А вообще вот как мне теперь все это видется. Ошибка ясна. Алиасы я писал где угодно, но только не в .profile (!). Странно, ведь он наверно специально для таких как я называется ПРОФИЛЬ. А я почему то решил что надо писать в .shrc или например в .cshrc (что то в их названии намекает на shell :)) Соответственно мне хотелось бы видеть и для bash что-нибудь типа .bshrc. Но, так как я этого в каталоге пользователя не нашел (почему?:)), писал в том что было. И напоследок, чтобы окончательно… Зачем в каталоге лежат файлы .shrc и сshrc если у пользователя нет этих терминалов?
На самом деле, если ты знаешь что, куда и зачем писать — то алиасы можно прописывать где угодно.
Как я вроде бы достаточно ясно указал, твоя проблема чётко позиционировалась в игнорировании alias’ов.
Кстати, правильно решил.
Что там написано — убей не помню (а смотреть лень).
Но:
1. ~/.cshrc вполне себе адекватно интерпретируется.
2. Его синтаксис несовместим с bash’ем.
Отсюда вывод: есть мнение, что ты чего-то недочитал/недопонял или не то писал в ~/.shrc (ты перешёл на bash или как?).
Святая наивность!
Я не рассказывал эпопею с синхронизацией параметров окружения в консоли и в X-овом терминале у меня в Gentoo?..
И скорее всего не предполагается.
Все вопросы к FreeBSD Team.
А файлик должен хваться ~/.bash_profile.
Каких терминалов?
Это входящие в стандартную поставку FreeBSD шеллы!
А вот Фря на десктопе рулит!! она у меня уже дооолго долго лет стоит =))
РУЛИТ :-P
P.S Да здравствуте флейм и холивары =)
Да, я перешел на баш.
Моя практика показала, что в любом случай (т.е. при любом шеле, если алиасы прописывать в .profile они работают(!). Хорошо я возьму еще специально проделаю все что выше и потом уже определенно выскажусь :)
Ок. А если совсем уж правильно то тогда коммандные интерпретаторы. Просто когда ты говоришь шел, то можно понять как конкретный sh, а можно и как общее понятие «коммандная оболочка/интерпретатор») I’ll be back
Мораль: с этого следовало начинать!
Проверь.
Для случая csh. Там, если ты почитаешь ~/.cshrc совершенно другой синтаксис.
Так вот, в Gentoo (как в других дистрибтивх — не знаю) на третьем ините интепретатор читает окружение из ~/.bash_profile. Интерпретатор же запущенный в Х-овом терминале — из ~/.bashrc.
Для обеспечения идентичного окружения без дублирования я сделал вот что: ~/.bash_profile у меня практически пустой:
Все значащие параметры прописываются в ~/.bashrc.
Педантизм попёр :)))
Мда… Налицо острый недостаток знаний истории и опыта работы с стандартным шеллом (который Bourne Shell или sh) в классических Unix’ах.
Если бы такой опыт присутствовал в достаточном объёме, мыслей об использовании sh при наличии таких альтернатив не возникало бы.
Абаснуй :)
Привычка — вторая натура.
Воистину так :)))
ЗЫ: Грыша, для обеспеченния приемлемого баланса между читаемостью/информативностью форума дописал бы ты в первое сообщение суть проблемы и краткое содержание последующего флейма :)
И что же ты не читал (читал недостаточно внимательно) меня любимого?..
http://www.nixp.ru/articles/freebsd_fine_tune_for_linuxers
Всетаки не свосем понимаю почему баш лучше эсаш… можно чуть подробнее?
Если тебя sh устраивает, то bash хуже, потому что больше.
True :)
Нуу… понимаешь, так вот получается — хочется разобраться что к чему, а тут одно с другим пересекается. Постараюсь исправиться и излагать по существу ;) Все таки.
Ок. Еще раз ;) Сооздаю пользователя с шеллом /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:
RTFM FHS мать вашу!!!
Hint: на право выполнения команд из каталогов /sbin /etc простой пользователь рылом не вышел.
Дурдом какой-то. Так я ж его в судоерс и прописал (как же ж так). Подтверди еще раз насчет RTFM, может и правда займусь чтением.
Не…
Истинный дурдом — это твоё значение PATH для непривилегированного пользователя: ну не положено ему ломиться по каталогам, в которых лежат superuser binaries!!!
Когда уяснишь это — можно будет переходить к разборкам с алиасами (sh у тебя ~/.profile читает или как?).
Такой PATH есть в файле .profile домашнего каталога пользователя. Очевидно они читаются именно из этого файла (причем я пути не прописывал — они уже были в этом файле).
.profile у меня читает все. Я уже писал об этом «моя практика показывает и.т.»
Я кстати ничего в этом плохого не вижу, что значит ломиться? Пока рут не даст ему такого права никуда он не проломится и ничего что у него есть эти пути (еще раз повторю в sudoers я разрешил пользователю выполнять без пароля как рут /sbin/reboot, шелл у пользователя /usr/local/bin/bash, в .shrc переменная reboot="sudo reboot»
Опрометчивое решение.
Не положено пользователю знать о командах root’а, независимо от того, как и что ему разрешено через sudo.
Кто ему может запретить сделать «ls /sbin"?
Я любимый (root то есть).
Например посредством:
Или более радикально:
Как в том анекдоте: »Йес, ай до, а хуле толку?..$»
В переводе: если ~/.profile написан в расчёте на синтаксис bash’а, то толку от того, что его читает csh — порядка нуля (факт прочтения не гарантирует корректной интерпретации). Наоборот аналогично.