Логин SSH из внешней аутентификации

Вот что я пытаюсь добиться:
У меня есть сервер с репозиторием git.
Я использую ISPConfig панель управления для наших веб-сайтов и я хочу интегрировать ISPConfig API для проверки подлинности электронной почты в качестве второй проверки подлинности.

Вот поток проверки подлинности:

  1. Пользователь соединяется с SSH-RSA-ключ (без пароля)
  2. По SSH и запустить скрипт, который запрашивает у пользователей для второй проверки подлинности электронной почты и пароля. Эти учетные данные проверяются с помощью API, и если правильно пользователь вошел в систему через SSH, в противном случае пользователь будет отключен.

Редактировать:
Я установил libpam_script (apt-получить установку libpam_script) и попытался настроить его, но не повезло.
Я пробовал несколько вещей, добавив эту строку авторизации требуется pam_script.так , чтобы:
в /etc/Пэм.д/гибридных
в /etc/Пэм.д/входа
в /etc/Пэм.д/общие-авт




Ни один из них не выполняется скрипт в/etc/безопасности/onauth ни /usr/доли/неизвестных скрипт/pam_script_auth
В обоих скриптах у меня есть этот код:

#!/бин/Баш
Эхо "лесозаготовки" > /дома/сервер/Пэм.журнал

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

+331
Nicholas Mansfield 27 мая 2013 г., 18:12:51
32 ответов

На основе системы systemd в, вы могли бы попробовать это.

Шаг #1: создание файла сервис

[Блок]
Описание=устройство виртуальной машины %мне услуги
Требует=добавлена модулей нагрузки.услуги
После=добавлена модулей нагрузки.услуги

[Услуги]
Пользователь=пользователь
Группа=vboxusers
ExecStart=/usr/Бен/VBoxHeadless -с %я
ExecStop=/usr/Бен/VBoxManage controlvm %я сэйва

[Установите]
WantedBy=Multi-потребителя.цель

Шаг № 2: включить файловый сервис

$ команду sudo systemctl включить [email protected]_name.service

Ссылки

+992
Amrita 03 февр. '09 в 4:24

Если скорость ввода-вывода не является узким местом, то другим вариантом является использование компрессионного формате LZ4, который дает файлы немного больше, чем gzip, но декомпрессия чрезвычайно быстро.

Параметр конфигурации ядра для сжатия ядра с это CONFIG_KERNEL_LZ4=г.

http://events.linuxfoundation.org/sites/events/files/lcjpcojp13_klee.pdf

+845
Zasz 29 мая 2010 г., 07:20:23
Другие ответы

Связанные вопросы


Похожие вопросы

Войти в алом и выполните следующие действия и выполнить следующую команду.

СК> showplatform
SUNW,СПАРК-предприятия-T5120
Шасси серийный номер: BEL00011GA
+835
David Laberge 4 апр. 2015 г., 01:48:11

Первый аргумент используется для одного вещи, а остальные за что-то еще,

Я думаю, что вы хотите переложить

$ установлен один два три четыре пять
$ Эхо [email protected]
один два три четыре пять
$ Эхо $1
один
не $ Foo=$1
$ Эхо $ФОО
один
$ смена
$ Эхо [email protected]
два три четыре пять
$ шифт 2
$ Эхо [email protected]
четыре пять
$ Эхо $1
четыре
+707
bucle desob 26 июл. 2010 г., 07:34:05

Я начну тщательное исследование в OpenBSD и FreeBSD, которые являются наиболее полных книг?


Я нашел эти, что лучше?

+702
Anthony Pace 9 окт. 2011 г., 23:52:31

Не нужно все усложнять. Просто возьмите JSON-файла от удаленного узла и передать его через jq не, затем сделайте то же самое локально. Затем сравнить. Если удаленный файл отсутствует, вы получите сообщение об ошибке (которую можно выбросить), и серийные номера будут сравнивать разные (за исключением случаев, когда серийный номер тоже отсутствует).

r_serial=$( СШ-Q-я "$pathToPem" "$sshUsernameIp" кошка "$remote_serial" 2>/dev/нуль | jq не -р '.серийный_номер' )
l_serial=$( jq не -р '.серийный_номер' серийный_номер.в JSON )

если [ "$r_serial" = "$l_serial" ]; затем
 Эхо 'же'
еще
 Эхо-разному (или отсутствует)'
интернет

Это при условии, что $remote_serial - это путь к JSON документ на удаленном компьютере.

Также обратите внимание на цитирование переменной, разложения на звонок в СШ.


Фактические ошибки вы получаете, исходит из того, что

"${remote_serial | jq не '.серийный_номер'}"

не является действительной переменной расширения. Вы, возможно, хотели использовать что-то вроде

"$( е '%з\п' "$remote_serial" | jq не '.серийный_номер' )"

но это предполагает, что $remote_serial содержимым в формате JSON документ.

+656
Benjamin Beuster 8 дек. 2015 г., 07:09:16

В awk (mawk 1.3.3) решение:

Общ | у awk -Ф'[_.]' '{функции printf "%s_%з\п", $2, $3}' | \
на awk ' $0 > "2014-05-28_15:08:00" {печать}'

Дает:

2014-05-28_15:08:01
2014-05-28_15:08:09
2014-05-28_15:08:10
2014-05-28_15:08:11
2014-05-28_15:08:12
2014-05-28_15:08:13
2014-05-28_15:08:14
2014-05-28_15:08:22
+596
Sopolo 31 мар. 2019 г., 02:41:40

Я новичок в Perl, и я пытаюсь создать скрипт на Perl (или скрипт), который может извлекать слово "Привет мир" из файлов .расширение txt в несколько каталогов. Чтобы сделать его более ясным, предположим, что мой скрипт находится в директории "/home/пи/а", которое имеет вложенные каталоги - папки, Темп документа (каталоги неизвестных для меня это просто пример). Каталог /Home/пи/а/папки .текстовый файл и /Home/Пи/Temp имеет также .файл txt так далее.. Вот мой код

 #!/usr/Бен/Perl с -з

 каталог файлов(напр., ".");
 @файлов = команда grep(/\.тхт$/,вызове readdir(реж));
closedir(реж);

 по каждому файлу $(@файлы) {
 печать "файл $\п";
}

Выход должен быть

Привет Мир 
Привет Мир
Привет Мир
Так далее... 
+588
GuyFlo Tharp 17 мая 2019 г., 08:31:27

Я написал приложение, которое вызывает lilypond по execlp()его. Однако, когда мое приложение запускает эту строку, появляется следующее сообщение об ошибке:

В GNU LilyPond 2.16.2
предупреждение: не менять место жительства, не 2.16.2/ или текущий/ нашли под <app_dir>/доля/lilypond/
Ошибка: в процедуре примитивно-загрузки-путь:
Ошибка: не удается найти файл "Лили.СКМ" в путь загрузки

Я в настоящее время позволить пользователю, чтобы сообщить его/ее lilypond исполняемые пути в приложение. Есть ли способ я могу программно установить значения, которые всегда будут работать, независимо от того, где мой исполняемый файл находится?

+548
Andrina 16 окт. 2016 г., 12:50:40

Скорее всего симптом устаревшего релиза. Версия 7 есть старшая смол пакет, который не может обработать .расширением XZ. Обойти можно добиться, установив libarchive из портов, а затем установив libarchives смолы по умолчанию гудрон бинарные добавлением дегтя=/usr/местные/Бен/bsdtar в файле/etc/сделать.конф или ссылка на bsdtar.

+536
AMRis 21 июл. 2014 г., 05:18:15

Я буду иметь мой путь, и объяснить это, но простите меня, если я не буду следовать примеру, который вы предоставили. Я наоборот стараюсь направлять вас на мои собственные, разные, подход.

Вы говорите, что вы уже понимаете такие понятия, как “переменные” и “расширение” и др. так что я просто держать некоторые фоновые знания, которые в противном случае требуют более глубокого внимания.

Так что я начну с того, что, на ее наиболее базовом уровне, объявляют команду-это просто способ для вас, чтобы сказать Баш, что вам нужна переменная величина (т. е. стоимость может изменяться в ходе выполнения скрипта), и что вы будете обращаться к этому значению, используя определенное имя, именно имя, указать напротив объявлять команды.

То есть:

объявить файл foo=бар""

Баш говорит, что вы хотите, чтобы переменная с именем foo в значение баре.

Но.. подожди.. мы можем сделать это без использования объявлять на всех, мы не можем. Как и в:

файл foo=бар""

Очень верно.

Ну, бывает так, что выше простое задание на самом деле неявным способом.. на самом деле.. объявления переменной.

(Это же так случилось, что выше-это один из немногих способов изменить значение переменной по имени ФУ; Действительно, именно самым прямым, лаконичным, очевидно, прямой путь.. но не единственный.. .. я вернусь к этому позже..).

Но тогда, если это так можно объявить “имя, которое будет метка переменной значения” (просто “переменная” из Далее, для краткости) без использования объявлять вообще, зачем вы хотите использовать этот напыщенный “объявить” команду ?

Ответ заключается в том, что выше неявный способ, чтобы объявить переменную (ФОО="бар"), это.. неявно.. делает Баш учесть, что переменная того типа, который наиболее часто используется в типичном сценарии использования для раковины.

Такой тип-это тип String, т. е. последовательность символов без определенного смысла. Поэтому строку, что вы получаете, когда вы используете неявное объявление.

Но вы, как программист, иногда нужно скорее рассматривать переменную как, например, ряд.., на котором вам нужно делать арифметические операции.. и через неявное объявление функции foo=5+6 не сделать Баш присвоить значение от 11 до фу , как вы могли бы ожидать. Это скорее назначить ФОО последовательность из трех символов 5 + 6.

Так.. ты нужен так сказать Баш, что вы хотите, фу считается число, а не строку.. и вот что явно объявить полезно для.

Просто сказать:

заявляю-Я из Foo=5+6 # <<- Обратите внимание на 'Я' вариант: это означает 'целое'

и Баш будет радостно делать математику для вас, и присвоить числовое значение 11 для переменной фу.

То есть: сказать, заявить -я ФОО , вы даете переменной foo в эти атрибута является целое число.

Объявив чисел (именно чисел, потому что Баш еще не понимает знаков после запятой, с плавающей запятой, и все такое) может быть первой причиной для использования заявить, но это не единственная причина. Как вы уже поняли, есть несколько других атрибутов вы можете дать переменным. Например, вы можете иметь Баш всегда сделать значение переменной строчные ни на что: если вы говорите заявляю-у фу, то с тех пор, когда вы говорите с Foo=бар баш на самом деле присваивает строку строке в переменную фу.

Для того, чтобы дать какие-либо из этих атрибутов переменной, вы должны использовать объявить команду, другого выбора нет.


Теперь, один из атрибутов, которые можно давать через объявите печально известной “название-ссылка” один, атрибута. (И теперь я собираюсь возобновить концепции я отложила ранее).

Имя-атрибута ref, по сути, позволяет программистам Bash для другой способ, чтобы изменить значение переменной. Она более точно дает косвенный способ сделать это.

Вот как это работает:

Вы объявляете переменную оказывает атрибута, и это очень рекомендуется (хотя и не строго обязательным, но это делает вещи проще), что вы также придают ценность этому очень переменной в тот же заявить команду. Как это:

объявить -Н база="фу"

Это говорит Баш, что, с тех пор, каждый раз, когда вы будете использовать или изменить, в значение переменной по имени баз, он должен реально использовать, или изменить, в значение переменной по имени фу.

Это означает, что, отныне, вы можете сказать что-то вроде баз=10+3 сделать фу получают значение 13. Предполагая, конечно, что фу был ранее объявлен как integer (заявляю-Я), как мы сделали минуту назад, в противном случае это последовательность из четырех персонажей 1 0 + 3.

Также: если вы измените ФООзначение напрямую, как в ФОО=15, вы увидите 15 также сказать эхо “${база}”. Это происходит потому, что переменная баз объявляется как имя-ссылка на ФОО всегда отражает ФООзначение.

Вышесказанное заявляю-Н команды сказал, что “название-ссылка”, потому что это заставляет переменную баз ссылаться на имя другой переменной. На самом деле мы объявили баз имеющая значение "фу", который, из-за вариант, обрабатывается Баш как имя другой переменной.

Теперь, почему на Земле бы вы когда-нибудь хотите сделать ?

Ну.. стоит отметить, что эта функция для достаточно продвинутых нужд.

На самом деле такой продвинутый, что когда программист сталкивается с проблемой, что действительно требуется имя-реф, это также вероятно, что такой вопрос должен быть скорее адресован с помощью соответствующего языка программирования, а не Баш.

Один из тех сложных задач, например, когда вы, как программист, не знаю, во время разработки которой переменная вам придется использовать в определенный момент сценария, но он будет полностью динамически во время выполнения. А учитывая, что нет никакого способа для любого программиста, вмешательство во время выполнения, единственный вариант-это предусмотреть заранее такой ситуации в сценарий, и “название-ссылка” может быть единственным приемлемым способом. Как широко известный случай использования этой передовой нужны, думаю, плагинов, например. Программист из “плагин-в состоянии” программа должна принять общее положение для будущего (и, возможно, третьих сторон) Плагины заранее. Поэтому программисту придется воспользоваться как имя-ссылка на bash.

Один продвинутый нужно, когда вам приходится иметь дело с огромным количеством данных в оперативной памяти и вам тоже нужно пройти, что данные по функции скрипта, которые также придется изменить, что данные по пути. В таком случае можно, конечно, скопировать данные из одной функции в другую (как делает bash, когда вы делаете dest_var="${src_var}" или при вызове функции, как в myfunc "${src_var}"), но в том, что данных огромное количество, это будет огромная трата оперативной памяти и очень неэффективная работа. Так что решение в подобных случаях является использование не копия данных, а ссылка на эти данные. В bash, имя-Реф. В этом случае действительно является нормой в любом современном языке программирования, но это совершенно исключительным, когда дело доходит до Баш за Баш в основном предназначены для коротких простые скрипты, что в основном работать с файлами и внешние команды и таким образом скрипт на bash редко приходится пройти огромное количество данных между функциями. И когда скрипт функции нужно некоторые данные (доступ к нему и изменить его) это обычно достигается только с помощью глобальной переменной, которая вполне норма в bash скрипты как это очень устаревший в правильных языках программирования.

Тогда, может быть ярким примером использование имени-ссылки в bash, и (возможно, иронически) это связано, когда вы используете другие типы переменных:

  1. переменные, объявленные как “индексированные массивы” (объявить -)
  2. переменные, объявленные как “ассоциативные массивы” (объявить -).

Данный тип переменных, которые могут быть с большей легкостью (а также более эффективно) передал функции с помощью имен-ссылок вместо нормального копирования, даже если они не несут в себе огромные объемы данных.

Если всех этих примерах звучит странно, и до сих пор непонятно, это только потому, что имя-рефы действительно сложная тема, и редкая необходимость для типичного сценария использования Баш.

Я мог бы рассказать вам о случаях, в которых я, например, нашел имя-ссылки на bash, но до сих пор они были в основном на очень “эзотерические” и сложные потребности, и я боюсь, что если я их описал, я бы только усложнять для вас на этом этапе вашего обучения. И это лишь наименее сложные (и, возможно, не эзотерик): возвращение значений из функций. Баш не поддерживает эту функциональность, так что я получил такое же название с помощью-ссылки. Это, кстати, именно то, что ваш пример кода.


Кроме этого, небольшой личный совет, который будет лучше всего подходит для комментария, но я не смог собрать их достаточно, чтобы вписаться в лимиты комментарий клиент StackExchange по.

Я думаю, что самое вы должны сделать на данный момент это просто эксперимент с именем-рефов с помощью простых примерах я показал, и, возможно, с примером кода, который вы предоставили, не обращая внимания на данный момент “почему на земле” и ориентируясь только на “как это работает” часть. Поэкспериментировав немного, “как”, может лучше погружаться в ваше сознание, так что “почему” придет вам понятно в свое время, когда (или если) вы будете иметь реальную практическую задачу, для которой имя-Реф действительно пригодится.

+531
HomerPlata 1 мар. 2013 г., 19:57:03

ПС использует uid, когда имя длиннее 8 символов.

+529
Ninna Gomarteli 5 янв. 2018 г., 11:33:37

Я нашел простой soultion его.

метод push(@Inc, с/путь) или unshift по(@Inc, на'/путь)

Второй способ : использовать lib "/путь" в сам файл.

+375
Fratracide 19 мая 2013 г., 02:47:31

Нужно изменить приоритет веб-краулер. Нет, это вряд ли будет tmux. Наверное, tmux будет ребенок Баша, чей ребенок будет в программе.

Я обычно смотрю на пид с название программы, но в противном случае работает pstree -P не должно привести вас к иерархически найти его, не зная его имени.

Вы можете Реницэ в processt с помощью renice(1), например:

Реницэ 5 1234

или. более подробно,

Реницэ -н 5 -П 1234

бы процесс Реницэ 1234 приоритет 5

Также можно сделать это в топ, просто нажмите на R и ответить на два запроса запрашиваемая для пид и новое значение.

+360
Nikas Nikis 12 сент. 2013 г., 20:55:52

Команды как параметр xmodmap могут работать только в Х окна,

Вы должны создать точку.настольные файл в папку автозапуска кода валюты XDG, электронная.г создайте файл ~/.конфигурации/автозапуск/Автозагрузка.стола и положить эти строки в нем:

Старпома=~/bin/startup.sh

Смотрите эту ссылку для деталей

+348
corbinfiasco 3 янв. 2013 г., 23:32:32

Тут вменяемые есть техническое определение в Unix / Linux в контексте?

Я имею в виду в ситуациях, подобных этой:

проверив, есть ли среда разработки вменяемый... да
+307
Benten 25 апр. 2017 г., 07:31:31

Я читал как сделать Баш завершения псевдонимы? и я думал, что ответить, Шон Гофф Ж. необходимо кое-что: меньше пользователей, так что я написал небольшой скрипт, который предназначен, чтобы быть получены от вашего .bashrc следующее, Но это не совсем работа, так что надеюсь, кто-то может заметить мою ошибку.

функция сделать-завершение-фантик-1 () {
 местные имя_функции="$2"
 местные arg_count=$(($#-3))
 местные comp_function_name="$(в комплекте-ПР $1|СЭД -е 'с/^\(.* -Ф \)\([^ ]*\) [^ ]*$/\2/')"
 шифт 2
 локальная функция="
 функция $имя_функции {
((COMP_CWORD+=$arg_count))
 COMP_WORDS=( "[email protected]" \${COMP_WORDS[@]:1} )
"$comp_function_name"
 возвращает 0
}"
 Эхо "$"функция
 функция eval"$"
}

функция сделать-завершение-фантик-2 () {
 местные имя_функции="$1"
 местные имя_псевдонима="$2"
 местные comp_function_base="$(в комплекте-пр $3|СЭД -е 'с/^\(.* -Ф\)\( [^ ]*\) [^ ]*$/\1/')"
 Эхо "$comp_function_base $имя_функции $имя_псевдонима"
 функция eval "$comp_function_base $имя_функции $имя_псевдонима"
}

[ -е ~/.кэш/bash_alias_complete ] && ПМ ~/.кэш/bash_alias_complete

псевдоним | \
 СЭД \
 -е с/^псевдоним //' \
 -э '/^\([^=]\+\)='\" \\1 /Д' 
 -е "/'.*=/Д" -Е '/\$/Д' \
 -е ч \
 -е "/.*='\([^ ]*\)\( .*\)'$/\1! \1\2/" \
 -е 'г/ -!/__ /' -ег-е 'ы!\Н[^=]*='\"\(.*\)'\"! \1!' \
 -Е С/^/сделать-сдачи-фантик-1 /р' \
 -э-х/^[^ ]* [^ ]* \([^ ]*\) .*$/\1/' \
 -е х \
 -э-х!='\"\([^ ]*\) .*$! \1!' \
 -е х \
 -э-х!^!сделайте-завершения-фантик-2 !' \
 -е г \
 -е 'г/\н/ /' \
 > ~/.кэш/bash_alias_complete

. ~/.кэш/bash_alias_complete

Я получаю следующую ошибку, когда я прес вкладке ключ:

Баш: COMP_POINT - : ошибка синтаксиса: ожидается операнд (знак ошибки "- ")

Примечание: приведенный выше код может быть помещен в файл, например виде myfuncs.Баш, который затем может быть получена непосредственно в раковину или от $дома/.bashrc следующее.

Для полной истории изменений на этот код посмотреть https://github.com/hildred/scripts.git

+294
Rotten Tomato 19 дек. 2017 г., 05:38:26

есть ли способ, чтобы создать файловую систему sysfs параметр из пространства пользователя? Обычно драйвера ядро создает ее, и мы можем получить к нему доступ из пользовательского пространства. но в моем случае водитель сидит в пользовательском пространстве так было интересно, если есть способ, чтобы создать файловую систему sysfs param из пользовательского пространства.

+287
Rob Rolnick 6 июн. 2013 г., 07:14:02

Эти файлы принадлежат root, поэтому они не могут быть изменены по вашему обычный пользователь.

Предположим, у вас есть новый файл в ~/Desktop, вы можете скопировать его с:

 судо СР -в ~/рабочий стол/20-Интел.Conf в /usr/доли/Х11/файл xorg.конф.д

Однако, странно, что вам нужно положить файл в /usr/доли/ как это обрабатывается менеджер пакетов. Это, вероятно, может также работать на месте, как в/etc/Х11/файл xorg.конф.д и что бы быть предпочтительным по /usr/доли/пакета X11/xorg не.конф.д (/и т. д. предназначен для конфигурации системы)

+258
riffraff 12 февр. 2017 г., 22:43:44

Хотя Баш версию autoconf версии (2.63) немного старый (сентябрь 2008 года), она поддерживает --программы-преобразования имя- и - программа-суффикс характеристики. К сожалению, Баш процесса сборки не использовать эти функции, как описано в документации, а также не использовать параметры, чтобы позволить строить-время обработки на man-страницах.

Поскольку число файлов и изменений небольшой, я рекомендую полу-ручной метод, т. е. написать небольшой скрипт для изменения предварительной установки. Вы можете дополнительно использовать installwatch , чтобы убедиться, что вы ловите все во время установки, но Баш действительно довольно минимальный. (Чистки рядов, я мельком взглянул на баш портов FreeBSD, и патчи Баш Дебиан, никаких признаков соответствующей исправить.)

А вообще интересный способ, чтобы сломать строит, вы можете злоупотреблять EXEEXT здесь:

ac_cv_exeext=42 ./настроить [...]
сделать
./bash42 -с 'Эхо $BASH_VERSION'
4.2.42(1)-релиз

поскольку все это спасло тебя было переименовать, я не рекомендую ;-)

Есть немного больше, чтобы быть получены от:

./настроить [...]
сделать -электронное программы=bash42

а что также отражает изменения в создаваемой bashbug скрипт (хотя он и не переименовать его).

+255
J Mish 20 апр. 2011 г., 17:03:39

В CentOS, как правило, поставляется с сетевым отключается, если включить вручную при установке. если ваша физическая сеть связи подключены правильно и вы можете проверить ссылки с помощью IP-связи команды. вы можете установить линию наоборот-при восстановлении=нет , чтобы наоборот-при восстановлении=да в каждом интерфейсе конфигурации в ниже пути.

файл /etc/sysconfig/сети-скрипты/файл ifcfg-ХХХХ

И вы можете получить более подробную информацию, вписав nmcli с командой, если это новее в CentOS 7.х

+248
michaelmichael 21 янв. 2015 г., 04:45:53

Я написал следующий скрипт, который читает файл в/etc/passwd с помощью слова.

#!/бин/Баш

Кол-во=1

Как fcount=`кошка файле /etc/passwd и|туалет -л`

в то время как [ $считать -ЛЕ $как fcount ]
делать
 FTCOUNT=`awk и -Ф ":" '{печати НФ,$0}' в /etc/passwd в|у awk '{печати 1$}'|глава -$граф|хвост -1`
TCOUNT=1
 в то время как [ $TCOUNT -Ле $FTCOUNT ]
делать
 если [ $TCOUNT -ГТ $FTCOUNT ]
тогда
FTCOUNT=""
перерыв
еще
 Руководитель -$вывода=`граф файле /etc/passwd и|вырезать -Д ":" -Ф $TCOUNT|хвост -1`
 Эхо-N "${выход} "
 сон 2
 TCOUNT=$(( TCOUNT + 1 ))
интернет
сделано
 Эхо ""
 ГРАФ=$(( СЧЕТЧИК + 1 ))
сделано
+238
transcedentalia 30 авг. 2011 г., 11:24:03

Обратите внимание, что спецификация недвусмысленно говорит о недавно созданных файлов. Вы даже не можете использовать команду chmod , чтобы изменить это, так как новый файл будет иметь некоторый набор разрешений при создании, прежде чем вы можете использовать команду chmod на них.

Также, в то время как Руби скрипт не выполнить команду chmod команда/утилита, она использует тот же самый базовый системный вызов, так что это практически то же самое. Если бы это был я, я бы этого не позволила.

Не дав полный ответ, я хотел бы предложить, глядя на то, что человек страницы для открыть() говорит о разрешениях созданный файл:

Аргумент Mode задает биты режиме файл применяться при создается новый файл. Этот аргумент должен быть предоставлен при O_CREAT или O_TMPFILE указан в флаги; если ни O_CREAT ни O_TMPFILE указан, то режим игнорируется. В эффективный режим изменяется umask процесса в обычном кстати: в отсутствие ACL по умолчанию, режим создан файл (режим & ~umask с). Обратите внимание, что этот режим применяется только к будущие доступы вновь созданный файл; открыть()вызов это создает файл только для чтения, вполне может вернуться в чтение/запись дескриптор файла.

Следующие символические константы можно использовать в режиме:

S_IRWXU 00700 пользователь (владелец файла) чтение, запись и выполнение разрешение

[и т. д.]

Также обратите внимание, что часть, которую вы цитировали, сказал, чтобы "уменьшить разрешения на 222", а не к 222. Это также важная функция, я думаю.

Так как уже упоминалось в комментариях

Я подумываю маску, которая ограничивает полномочия вновь созданные файлы. Это должна быть стандартная функция, и должен работать одинаково в Linux и в стрекозу.

Конечно, все это только моя интерпретация этого задания. Нет никакого способа для любого из нас здесь, чтобы знать наверняка, что правильный ответ, по мнению вашего учителя/профессора, тем более, что иногда ответы профессора даже не правильные.

+236
Tanu 18 сент. 2015 г., 09:26:14

Я также обнаружил, что другие приложения GNOME (например, гнома-программное обеспечение) имеют опцию-отображать, но они игнорируют его и приложение запускается на консоли столе, а не на моем ноутбуке.

Я предполагаю, что вы работаете в GNOME 3 на сервере тоже, а не только в СШ? Я предполагаю, что это работает как Вэйланд сессии. Гном приложения могут использовать WAYLAND_DISPLAY вместо дисплея. Проверить XDG_SESSION_TYPE. Если он установлен на Вэйланд, Гном приложения будут использовать Вэйланд дисплей вместо СШ дисплей. Попробуйте запустить их с XDG_SESSION_TYPE=Х11.

Действительно, мою страницу для GNOME-Session не упоминать --дисплей, а страницы в Интернете не. Так что, я думаю, его убрали в какой-то момент, у меня еще есть способ сделать это?

гном-сессии должны рассматривать дисплей, вам не нужно --дисплей. Однако, гном-Шелл имеет опцию --дисплей.

Что я не могу запустить гном-сессии

Я обнаружил, что GNOME-сессии и libmutter часто имеют вылеты, если не работает с родной монитор. Проверка файла на сервере.

Может быть, вы можете запустить ОКР XDG_SESSION_TYPE=Х11 гном-сессии, но я подозреваю, что это будет обработка выхода онлайн / оффлайн тоже. Кроме того, вы можете попробовать гном-Шелл , а не гном-сессии.

Я рекомендую использовать еще и более легковесное окружение рабочего стола для SSH, например рабочего стола LXDE (в lxsession) или Xfce (startxfce4), или просто оконный менеджер как Openbox (Openbox в --СМ-отключить).

+217
MadReasonable 9 мар. 2017 г., 20:51:55

Я сделал чистых POSIX-версия СГ. Вещи, которые я люблю об этом:

  • Полностью оболочки (никаких вызовов внешних команд, помимо функции printf)
  • Это общие (функций оболочки многоразовые)
  • Он импортирует определения в текущих условиях.

Вещи, которые я не люблю:

  • Использует eval. Я пытался избежать этого, но надо принять определений без жесткого кодирования их. Я форумчанин, что имя является обоснованным и цитируешь значение. Что должны сделать его безопасным, но я не на 100% уверен, что это.
  • В POSIX SH-это некрасиво.
  • Нет локальных переменных функции в POSIX ш.

Ну, вот это:

#!/Бен/ш

trim_left() {
 _str=1$_chrs=$2
 в то время как [ "$_chrs" ]; делать
_chr=${_chrs%"${_chrs#?}"}
 а [ "${_str%"${_str#?}"}" = "$_chr" ]; делать
_str=${_str#?}
сделано
_chrs=${_chrs#?}
сделано
 е %с "$_str"
}

trim_right() {
 _str=1$_chrs=$2
 в то время как [ "$_chrs" ]; делать
_chr=${_chrs%"${_chrs#?}"}
 а [ "${_str#"${_str%?}"}" = "$_chr" ]; делать
_str=${_str%?}
сделано
_chrs=${_chrs#?}
сделано
 е %с "$_str"
}

trim_comment() {
 _str=1$_marker=$2
 е %с "${_str%%"$_marker"*}"
}

quote_str() {
 _str=1$_qstr=
 в то время как [ "$_str" ]; делать
_chr=${_str%"${_str#?}"}
 если [ "$_chr" = "'" ]; затем
_qstr=$_qstr"'\\""
еще
_qstr=$_qstr$_chr
интернет
_str=${_str#?}
сделано
 Е "С" %s "" "$_qstr"
}

# [а-Яа-Z_][а-Яа-Z_0-9]
valid_vname() {
_vname=$1
 случае $_vname в
[[:нижняя:][:верхняя:]_]*)
;;
*)
 возвращение 1
;;
эсок
_vname=${_vname#?}

 в то время как [ "$_vname" ]; делать
 случае $_vname в
[[:нижняя:][:верх:]_[:цифра:]]*)
;;
*)
 возвращение 1
;;
эсок
_vname=${_vname#?}
сделано

 возвращает 0
}

с WS=' 
'


входной_файл=$1
[ "$входной_файл" ] || {
 функции printf '%з\п' 'использование: скрипт <файл>' >&2;
 выход 1
}

пока ИФС== читал -Р пределах _value _name; делать
 имя=$(trim_left "$(trim_right "$_name" "$ПР")" "$с WS")
 случай $в пределах _value
*'#'*)
 значение=$(trim_comment "$пределах _value" '#')
;;
*'//'*)
 значение=$(trim_comment "$пределах _value" '//')
;;
эсок
 значение=$(trim_left "$(trim_right "стоимостью $" "$с WS")" "$с WS")

 если valid_vname "$имя"; затем
 функция eval "$имя=$(quote_str "$значение")";
интернет
сделано < "$входной_файл";

Эхо "$каталог исходного кода"
Эхо "префикс"
+192
Duran Schuur 23 апр. 2017 г., 06:47:50

Я погуглил немного вокруг с 'Fedora как добавить репозиторий и есть некоторые устаревшие и не очень полезные ссылки. Из-за шума я скучала по этой ссылке:

http://docs.fedoraproject.org/en-US/Fedora_Core/3/html/Software_Management_Guide/sn-using-repositories.html

Который устарел, но это дает мне подсказку посмотреть на обновленную версию руководства по управлению программным обеспечением:

Добавить Новые Репозитории

(который также упоминается метод с wget, я использовал, чтобы добавить .файл РЕПО)

Я немного удивлен, что чиновник и, как кажется, довольно обширная документация Fedora-это не высшее набрал в Google результаты.

+185
Leitures 25 сент. 2013 г., 00:20:22

Вы должны попробовать Tinycore. Он просто должен 10МБ с GUI. Но если GUI не обязателен, можно выбрать любой дистрибутив и не установить окружение рабочего стола. Это должно сэкономить лодке много места в памяти. Я сделал то же самое с одним из моих старых ноутбуков. После нескольких дней, я установил X, чтобы использовать Firefox.

+138
Gurd 4 дек. 2015 г., 23:47:10

Это зависит от настроек локали. Попробуйте это:

Файл значение lc_all $ =сорт с 




!! Общие параметры окна 
!! Настройки меню 
!! сфокусированное окно настроек 
меню.перекрытия.х: -7
меню.перекрытия.г: 0
меню.название.БГ.границы.цвет: черный
меню.название.БГ.цвет: #fce855
меню.название.БГ.colorTo: #daa30b
меню.название.БГ.интерлейс.цвет: #f5db14
меню.название.БГ: твердый плоский
меню.название.текст.цвет: #000000
меню.название.текст.обоснуй: левый
окна.активный.клиента.цвет: #909498
окна.метки.текст.обоснуй: центр

Или, чтобы пропустить пустые строки:

$ Значение lc_all=C в файл | команда grep .
!! Общие параметры окна 
!! Настройки меню 
!! сфокусированное окно настроек 
меню.перекрытия.х: -7
меню.перекрытия.г: 0
меню.название.БГ.границы.цвет: черный
меню.название.БГ.цвет: #fce855
меню.название.БГ.colorTo: #daa30b
меню.название.БГ.интерлейс.цвет: #f5db14
меню.название.БГ: твердый плоский
меню.название.текст.цвет: #000000
меню.название.текст.обоснуй: левый
окна.активный.клиента.цвет: #909498
окна.метки.текст.обоснуй: центр
+133
famipetvn 31 дек. 2014 г., 23:08:13

Найти все каталоги, которые содержат никакого другого имени чем *.ТМП, рабочего стола.Ини, пальцы.дБ, и/или .в Picasa.Ини:

найти . -тип D -Exec и Баш -о dotglob -с '
 для dirpath делать
ОК=истина
seen_files=ложь
 комплект -- "$dirpath"/*
 для имени сделать
 [ -д "$имя" ] && continue # переход пропустить Дирс
seen_files=истина
 дело "${имя##*/}" в
 *.ТМП|рабочего стола.Ини|превью.дБ|.в Picasa.ini-файл) ;; # ничего не делать 
 *) ОК=ложь; перерыв
эсок
сделано

 "$seen_files" && "$ОК" && е "%з\п" "$dirpath"
 сделано' Баш {} +

Это использовали бы найти , чтобы найти любые каталоги под текущей директории (включая текущий каталог) и передать их в скрипт.

Скрипт перебирает данного каталога, и для каждого, она расширяется * в нем (с dotglob оболочки параметр установлен в Баш , чтобы поймать скрытые имена).

Затем он проходит через список полученных имен и сопоставление их с конкретных моделей и имена, которые мы бы хотели найти (без учета каталогов). Если он обнаруживает какие-либо другие названия, которые не соответствуют нашему списку, он устанавливает порядке для ложных (не истинных) и выходит из внутреннего цикла.

В seen_files переменная становится истинным , как только мы видели файл любого типа каталога (или симлинк на каталог). Эта переменная помогает нам избежать отчетности подкаталоги, которые содержат только другие поддиректории.

Затем он запускает $seen_files и $ОК (истинные или ложные) и если это и правда, что означает, что папка содержит по крайней мере один обычный файл, и содержит только имена в наш список, то выводится полное имя каталога.

Вместо

комплект -- "$dirpath"/*
для имени сделать

вы, очевидно, могли бы сделать

имя в "$dirpath"/*; делать

вместо.

Испытания:

$ дерево
.
`-- реж
 |-- Пальцы.дБ
 `-- реж
 файл|--.ТМП
 - то, что

2 каталоги 3 файлов

(найти команды здесь, производя на выходе...)

./реж

Это означает, что каталог ./реж содержит только названия в списке (без учета каталогов), в то время как ./Дир/Дир содержит другие вещи, как хорошо.

Если убрать [ -д "$имя" ] && продолжаться от кода ./реж каталоге не было найдено, поскольку она содержит имя (Дира), которое не находится в нашем списке.

+123
chitsog drelwa 19 апр. 2010 г., 19:11:59

Вы можете использовать на awk и установить разделитель полей на пробелы или запятые. Затем, петли в блоках 2, печать первого и второго полей вместе с блоками из двух:

$ awk, С -в ПФ='(\х\+|,)' '{для (i=3; я<=НФ; я+=2) печать $1, $2, $я, $(я+1)}' файл
3923 001 L05 ЛВ
3923 001 L05 РМ
3923 002 Л12 РА
3923 002 Л12 Ла
3923 003 I06 все
3923 004 G04 РВ
3923 004 Z09 все
+105
David Laberge 28 дек. 2015 г., 22:31:15

Я задал вопрос вставить строку в списке переменных в текстовый файл [использование СЭД]

В котором @RomanPerekhrest показал мне другой синтаксис регулярных выражений.

\(=([^)]*\)) можете захватить [^)]* как группа 1 . Это confusting для меня .

Вы можете проверить результат на https://regex101.com/r/DRChkE/2

enter image description here enter image description here


https://regex101.com/r/LItVNg/1

enter image description here

Это \(([^\)]*)\) является правильным в моем уме, но он сломан в СЭД.

Поэтому мне интересно, как сделать использование СЭД стандартный синтаксис регулярных выражений как Python или JavaScript (общий стандарт на многих языках).

+54
eguneys 7 мар. 2015 г., 17:44:30

Я установил LXQt из терминала в Debian пока я был в Xfce, потом перешли на LXQt сессии, чтобы увидеть, как он выглядит, однако, после переключения обратно на рабочие столы Xfce все оконные элементы управления (кнопки, прогресс бары, поля ввода) вид классический, как все рухнуло на LXQt. Я удалил LXQt и LXQt-Core, но он все еще не исправлена. Как удалить все пакеты LXQt и исправить это?

enter image description here

+21
user88159 17 дек. 2019 г., 16:09:47

Показать вопросы с тегом

$200 cialis coupon 10 mg tadalafil generic 5 mg cialis over the counter at walmart best price for tadalafil 20 mg buy cialis buy cialis generic tadalafil buy cialis online buy cialis online without script buy tadalafil buy tadalafil online canadian cialis online pharmacy canadian pharmacy cialis cheap cialis cheap cialis generic cialis cialis 20 mg best price cialis 20mg cialis 30 day sample cialis 30 day trial coupon cialis and alcohol cialis before and after cialis canada cialis canada pharmacy online cialis cost cialis coupon cialis coupons cialis coupons printable cialis dosage cialis dosage information cialis for daily use cialis for sale cialis free trial cialis free trial voucher for cialis cialis generic cialis generic release date cialis generic tadalafil cialis lowest price cialis online cialis online pharmacy cialis over the counter cialis over the counter at walmart cialis patent expiration date extended cialis picture testimonials cialis pills cialis price cialis prices cialis reviews cialis side effects cialis tadalafil cialis tadalafil 20 mg cialis vs viagra cialis vs viagra which is better cialis without a doctor's prescription cialis without doctor prescription cost of cialis cost of tadalafil generic at walgreens coupon for cialis by manufacturer does cialis lower blood pressure generic cialis generic cialis at walmart generic cialis canada generic cialis canada pharmacy generic cialis from india generic cialis tadalafil generic tadalafil generic tadalafil 20 mg is there a generic for cialis online cialis purchasing cialis on the internet side effects for cialis side effects for tadalafil side effects of cialis tadalafil tadalafil 20 mg tadalafil 20 mg canadian drug stores tadalafil 20mg tadalafil 20mg lowest price tadalafil 5 mg tadalafil 5mg tadalafil cost at walmart tadalafil dosage tadalafil generic tadalafil generic at walgreens tadalafil generic best prices tadalafil online tadalafil price tadalafil side effects tadalafil tablets tadalafil without a doctor's prescription viagra vs cialis viagra vs cialis vs levitra warnings for tadalafil $200 cialis coupon 10 mg tadalafil generic 5 mg cialis over the counter at walmart best price for tadalafil 20 mg buy cialis buy cialis generic tadalafil buy cialis online buy cialis online without script buy tadalafil buy tadalafil online canadian cialis online pharmacy canadian pharmacy cialis cheap cialis cheap cialis generic cialis cialis 20 mg best price cialis 20mg cialis 30 day sample cialis 30 day trial coupon cialis and alcohol cialis before and after cialis canada cialis canada pharmacy online cialis cost cialis coupon cialis coupons cialis coupons printable cialis dosage cialis dosage information cialis for daily use cialis for sale cialis free trial cialis free trial voucher for cialis cialis generic cialis generic release date cialis generic tadalafil cialis lowest price cialis online cialis online pharmacy cialis over the counter cialis over the counter at walmart cialis patent expiration date extended cialis picture testimonials cialis pills cialis price cialis prices cialis reviews cialis side effects cialis tadalafil cialis tadalafil 20 mg cialis vs viagra cialis vs viagra which is better cialis without a doctor's prescription cialis without doctor prescription cost of cialis cost of tadalafil generic at walgreens coupon for cialis by manufacturer does cialis lower blood pressure generic cialis generic cialis at walmart generic cialis canada generic cialis canada pharmacy generic cialis from india generic cialis tadalafil generic tadalafil generic tadalafil 20 mg is there a generic for cialis online cialis purchasing cialis on the internet side effects for cialis side effects for tadalafil side effects of cialis tadalafil tadalafil 20 mg tadalafil 20 mg canadian drug stores tadalafil 20mg tadalafil 20mg lowest price tadalafil 5 mg tadalafil 5mg tadalafil cost at walmart tadalafil dosage tadalafil generic tadalafil generic at walgreens tadalafil generic best prices tadalafil online tadalafil price tadalafil side effects tadalafil tablets tadalafil without a doctor's prescription viagra vs cialis viagra vs cialis vs levitra warnings for tadalafil blue chew viagra scam buy viagra buy viagra online buy viagra online canada pharmacy buy viagra online without script canada pharmacy viagra generic canadian pharcharmy online viagra canadian viagra canadian viagra without a doctor prescription cheap viagra cialis vs viagra cost of viagra female viagra female viagra pills free viagra free viagra samples generic viagra generic viagra 100mg generic viagra available generic viagra canada price generic viagra online pharmacy generic viagra sildenafil citrate generic viagra without a doctor prescription herbal viagra how does viagra work how long does viagra last how much does viagra cost how to take viagra for maximum effect i took viagra mom levitra vs viagra mom gives son viagra natural viagra natural viagra alternatives that work natural viagra substitute nizagara 100 mg vs viagra online viagra online viagra without subscription over the counter viagra real life viagra demonstration revatio vs viagra side effects of viagra sildenafil sildenafil 100mg sildenafil 20 mg sildenafil 20 mg tablet sildenafil 20 mg tablet vs viagra sildenafil citrate sildenafil citrate 100mg sildenafil citrate 20 mg sildenafil coupons sildenafil dosage sildenafil dosage recommendations sildenafil generic sildenafil side effects sophia viagra sophia viagra bikini sophia viagra hot stendra vs viagra stepmom gives son viagra viagra viagra 100mg viagra before after photo actual viagra boner viagra canada online pharmacy viagra coupon viagra coupons viagra coupons from pfizer viagra dosage viagra dosage recommendations viagra erection viagra erection after ejaculation viagra for men viagra for sale viagra for sale on amazon viagra for women viagra generic viagra generic availability viagra generic release date viagra in action viagra on line viagra online viagra online canada pharmacy viagra online pharmacy viagra patent expiration viagra pill viagra pills viagra porn viagra prank viagra prices viagra samples viagra sex viagra side effects viagra substitute viagra vs cialis viagra without a doctor prescription viagra without doctor prescription what is viagra when will generic viagra be available blue chew viagra scam buy viagra buy viagra online buy viagra online canada pharmacy buy viagra online without script canada pharmacy viagra generic canadian pharcharmy online viagra canadian viagra canadian viagra without a doctor prescription cheap viagra cialis vs viagra cost of viagra female viagra female viagra pills free viagra free viagra samples generic viagra generic viagra 100mg generic viagra available generic viagra canada price generic viagra online pharmacy generic viagra sildenafil citrate generic viagra without a doctor prescription herbal viagra how does viagra work how long does viagra last how much does viagra cost how to take viagra for maximum effect i took viagra mom levitra vs viagra mom gives son viagra natural viagra natural viagra alternatives that work natural viagra substitute nizagara 100 mg vs viagra online viagra online viagra without subscription over the counter viagra real life viagra demonstration revatio vs viagra side effects of viagra sildenafil sildenafil 100mg sildenafil 20 mg sildenafil 20 mg tablet sildenafil 20 mg tablet vs viagra sildenafil citrate sildenafil citrate 100mg sildenafil citrate 20 mg sildenafil coupons sildenafil dosage sildenafil dosage recommendations sildenafil generic sildenafil side effects sophia viagra sophia viagra bikini sophia viagra hot stendra vs viagra stepmom gives son viagra viagra viagra 100mg viagra before after photo actual viagra boner viagra canada online pharmacy viagra coupon viagra coupons viagra coupons from pfizer viagra dosage viagra dosage recommendations viagra erection viagra erection after ejaculation viagra for men viagra for sale viagra for sale on amazon viagra for women viagra generic viagra generic availability viagra generic release date viagra in action viagra on line viagra online viagra online canada pharmacy viagra online pharmacy viagra patent expiration viagra pill viagra pills viagra porn viagra prank viagra prices viagra samples viagra sex viagra side effects viagra substitute viagra vs cialis viagra without a doctor prescription viagra without doctor prescription what is viagra when will generic viagra be available $200 cialis coupon 10 mg tadalafil generic 5 mg cialis over the counter at walmart best price for tadalafil 20 mg buy cialis buy cialis generic tadalafil buy cialis online buy cialis online without script buy tadalafil buy tadalafil online canadian cialis online pharmacy canadian pharmacy cialis cheap cialis cheap cialis generic cialis cialis 20 mg best price cialis 20mg cialis 30 day sample cialis 30 day trial coupon cialis and alcohol cialis before and after cialis canada cialis canada pharmacy online cialis cost cialis coupon cialis coupons cialis coupons printable cialis dosage cialis dosage information cialis for daily use cialis for sale cialis free trial cialis free trial voucher for cialis cialis generic cialis generic release date cialis generic tadalafil cialis lowest price cialis online cialis online pharmacy cialis over the counter cialis over the counter at walmart cialis patent expiration date extended cialis picture testimonials cialis pills cialis price cialis prices cialis reviews cialis side effects cialis tadalafil cialis tadalafil 20 mg cialis vs viagra cialis vs viagra which is better cialis without a doctor's prescription cialis without doctor prescription cost of cialis cost of tadalafil generic at walgreens coupon for cialis by manufacturer does cialis lower blood pressure generic cialis generic cialis at walmart generic cialis canada generic cialis canada pharmacy generic cialis from india generic cialis tadalafil generic tadalafil generic tadalafil 20 mg is there a generic for cialis online cialis purchasing cialis on the internet side effects for cialis side effects for tadalafil side effects of cialis tadalafil tadalafil 20 mg tadalafil 20 mg canadian drug stores tadalafil 20mg tadalafil 20mg lowest price tadalafil 5 mg tadalafil 5mg tadalafil cost at walmart tadalafil dosage tadalafil generic tadalafil generic at walgreens tadalafil generic best prices tadalafil online tadalafil price tadalafil side effects tadalafil tablets tadalafil without a doctor's prescription viagra vs cialis viagra vs cialis vs levitra warnings for tadalafil