- User script location linux (debian etch) [closed]
- 8 Answers 8
- Как вы храните скрипты?
- Где лучше хранить свои самописные скрипты?
- Re: Где лучше хранить свои самописные скрипты?
- Re: Где лучше хранить свои самописные скрипты?
- Re: Где лучше хранить свои самописные скрипты?
- Re: Где лучше хранить свои самописные скрипты?
- Re: Где лучше хранить свои самописные скрипты?
- Re: Где лучше хранить свои самописные скрипты?
- Re: Где лучше хранить свои самописные скрипты?
- Re: Где лучше хранить свои самописные скрипты?
- Re: Где лучше хранить свои самописные скрипты?
- Re: Где лучше хранить свои самописные скрипты?
- Re: Где лучше хранить свои самописные скрипты?
- Re: Где лучше хранить свои самописные скрипты?
- Re: Где лучше хранить свои самописные скрипты?
- Re: Где лучше хранить свои самописные скрипты?
- Re: Где лучше хранить свои самописные скрипты?
- Re: Где лучше хранить свои самописные скрипты?
- Re: Где лучше хранить свои самописные скрипты?
- Re: Где лучше хранить свои самописные скрипты?
- Re: Где лучше хранить свои самописные скрипты?
- Куда и как правильно положить свои скрипты и как их лучще хранить?
User script location linux (debian etch) [closed]
In the linux file system, where should user scripts be placed? I’m thinking specifically python scripts to be called by cron.
8 Answers 8
/usr/local/sbin custom script meant for root /usr/local/bin custom script meant for all users including non-root
chatlog snips from irc.debian.org #debian:
(02:48:49) c33s: question: where is the _correct_ location, to put custom scripts for the root user (like a script on a webserver for createing everything needed for a new webuser)? is it /bin, /usr/local/bin. /usr/local/scripts is mentioned in (*link to this page*) (02:49:15) Hydroxide: c33s: typically /usr/local/sbin (02:49:27) Hydroxide: c33s: no idea what /usr/local/scripts would be (02:49:32) Hydroxide: it's nonstandard (02:49:53) Hydroxide: if it's a custom script meant for all users including non-root, then /usr/local/bin (02:52:43) Hydroxide: c33s: Debian follows the Filesystem Hierarchy Standard, with a very small number of exceptions, which is online in several formats at http://www.pathname.com/fhs/ (also linked from http://www.debian.org/devel/ and separately online at http://www.debian.org/doc/packaging-manuals/fhs/fhs-2.3.html) (02:53:03) Hydroxide: c33s: if you have the debian-policy package installed, it's also in several formats at /usr/share/doc/debian-policy/fhs/ on your system (02:53:37) Hydroxide: c33s: most linux distributions follow that standard, though usually less strictly and with more deviations than Debian.
thanks go out to Hydroxide
Как вы храните скрипты?
Если это bash скрипты или kickstart для centos? Чтобы передать адрес kickstart загрузчику, нужен доступ по http(s), ftp (но не ftps) и т.д. Или bash-скрипт должен быть доступен, чтобы запустить его с помощью curl -s http:// . Вы заранее настраиваете какой-то локальный веб-сервер и на него копируете свои готовые скрипты и конфиги? Или используете постоянный удаленный?
А если вы не хотите, чтобы кто-то увидел ваш код, то используете какую-то авторизацию (http(s)/ftp)? У вас централизованное управление конфигами с помощью каких-то provisioning систем, систем управления конфигурациями? Но ведь чтобы первично установить такую систему тоже нужно запустить скрипт откуда-то. Если что, речь идёт об установке centos7.
kickstart — использовать стоит только для базовой настройки системы (минимальный набор пакетов, разбиение дисков, сетевые настройки, временный пароль).
Всю конфигурацию можно сделать через Ansible. Это сильно упрощает понимание что стоит и как настроено.
Для базовой установки пула серверов неплохо подходит Cobbler.
kickstart — использовать стоит только для базовой настройки системы
Хорошо, здесь спору нет. Как системам его лучше добывать с учетом того, что а) кикстарт может быть доступен по ограниченному числу протоколов (например, по http(s) и ftp, но не ftps и не rsync), б) не хотелось бы, чтобы они где-то хранились в открытом доступе. Копировать (на локальный http-сервер) ниоткуда не хочется, так как это порождает кучу версий кикстартов. Кроме того, есть bash скрипты, которые нужно удаленно запускать. Использовать https с авторизацией?
Всю конфигурацию можно сделать через Ansible
В случае с Ansible, должны ли конфигурируемые системы знать, где находится управляющая машина с Ansible? Или достаточно, чтобы только лишь она знала о них и имела бы к ним доступ?
Deleted ( 10.11.16 16:34:00 MSK )
Последнее исправление: Deleted 10.11.16 16:34:34 MSK (всего исправлений: 1)
Или достаточно, чтобы только лишь она знала о них и имела бы к ним доступ по ssh?
Где лучше хранить свои самописные скрипты?
САБЖ? /home советуют монтировать с noexec, пакет для каждого скрипта делать лень. Кто как делает?
Re: Где лучше хранить свои самописные скрипты?
>/home советуют монтировать с noexec
Бессмысленный совет, храню там где и положено — в домашней папке запускаемые от пользователя, /root/scripts/ — от рута.
Re: Где лучше хранить свои самописные скрипты?
Почему бессмысленный? Вполне можно сделать какой нибудь специфический /usr/local/me/bin и включить его в $PATH.
Re: Где лучше хранить свои самописные скрипты?
Re: Где лучше хранить свои самописные скрипты?
Чем /usr/local/bin некошерен?
Re: Где лучше хранить свои самописные скрипты?
> Чем /usr/local/bin некошерен?
Правами доступа. Ну и тем, что он как-то вне зоны обычного бэкапа. Плюс в /usr/local часто срет при установке софт, собираемый через autotools. Посему в /usr/local стараюсь ничего важного не держать.
Re: Где лучше хранить свои самописные скрипты?
Потому что /usr/bin/perl /home/user/hack.pl — сводит смысл noexec к нулю. Спрашивается зачем делать себе неудобно? ИМХО, пользователь должен писать _только_ в свою домашнюю диру.
Re: Где лучше хранить свои самописные скрипты?
Или в /usr/bin или в домашней
Re: Где лучше хранить свои самописные скрипты?
Re: Где лучше хранить свои самописные скрипты?
в ~/work, потом они собираются и чаще всего переходят в ~/.dwm 🙂
Re: Где лучше хранить свои самописные скрипты?
Re: Где лучше хранить свои самописные скрипты?
Re: Где лучше хранить свои самописные скрипты?
Присоединюсь к советующим ~/bin.
>/home советуют монтировать с noexec
Re: Где лучше хранить свои самописные скрипты?
у меня все самописное лежит в /usr/local/bin
Re: Где лучше хранить свои самописные скрипты?
Re: Где лучше хранить свои самописные скрипты?
Re: Где лучше хранить свои самописные скрипты?
Re: Где лучше хранить свои самописные скрипты?
У меня всё лежит в ~/.bin. А noexec на скрипты не влияет, выполняется-то не сам скрипт, а интерпретатор, который лежит в /usr/bin (ну или где там у вас).
Re: Где лучше хранить свои самописные скрипты?
>А noexec на скрипты не влияет, выполняется-то не сам скрипт, а интерпретатор, который лежит в /usr/bin (ну или где там у вас).
Я их вызываю не как /path/to/interp script, а делаю их исполняемыми, и внутрь запихиваю ссылку на интерпретатор, ибо так проще запускать. Так что noexec несколько портит кровь.
Re: Где лучше хранить свои самописные скрипты?
>Плюс в /usr/local часто срет при установке софт, собираемый через autotools.
Куда и как правильно положить свои скрипты и как их лучще хранить?
Не корысти ради, а токмо волею пославшей мя супруги заказчиков, не имеющих денег на админов, вынужден не только разработкой заниматься, но и администрированием vds под их проекты, над которыми работаю. использую Ubuntu Server. Есть несколько скриптов на bash/python/php для сервера (создание виртхостов nginx+php-fpm и пользователей для них, бэкапы, анализ логов и прочие мелочи). некоторые скрипты должны запускаться от рута (через sudo), некоторые от текущего пользователя (каждый виртхост — свой пользователь и группа). Как это всё организовать, желательно с каким-то центральным репозиторием (известным, бесплатным), с которого можно было бы разворачивать привычное окружение на новом сервере, даже если старый и личный десктоп оказались недоступны?
Как мне видится: скрипты разрабатываются локально под контролем git или hg (исходники хостятся на github или bitbacket), потом «ручками» (условно тоже каким-нибудь скриптом, возможно хуком на vcs) формируются deb-пакеты (по сути из одного файла), заливаются на launchpad (вроде единственный популярный бесплатный хостинг, на котором можно deb репозиторий без проблем поднять), адрес репа добавляется в source-list, и потом через apt-get скрипты ставятся в /usr/local/bin/ (чтобы сразу через path были доступны), при необходимости создаются каталоги в /usr/local/. Получаю что на любой машине (с Ubuntu точно, с другими Debian-like вероятно, а остальные особо не интересуют), могу развернуть привычное окружение. Недостаток — пакеты, а в случае github и исходники, доступны в паблике (и над ними могут все ржать 🙂
Или я себе слишком жизнь усложняю и обычно это всё проще решается? или отдельные замечания к моему сценарию есть? Может без local надо обходиться, раз через apt ставлю? Может ещё что?