Ubuntu: не мог скопировать файл в dir создал под теми же учетными данными

Voilá! Шаги 2 и 3 следуют:

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

Необходимо будет установить xdotool для этого для работы, поскольку мы моделируем нажатия клавиш, чтобы сделать снимок и выход (пакет 'xdotool')

О, и необходимо будет выключить функцию 'обратного отсчета' в предпочтениях, иначе она будет вероятный CTRL-Q (выход) из программы, прежде чем она на самом деле сделает снимок.


#!/bin/bash
#
# L Nix <lornix@lornix.com>
# takeapic : take a photo with Cheese, using default settings, then exit
#
# start cheesing (2> because mine whines about cheesy stuff (ha!))
cheese 2>/dev/null &
# give WM some time to start up program (fails without this)
sleep 5
# set so we can determine if valid window(s) exist(s)
WINDOWIDS=""
# wait for up to 90 seconds (tweak this)
COUNTDOWN=90
while [ ${COUNTDOWN} -gt 0 ]; do
    WINDOWIDS=$(xdotool search --class "cheese" 2>/dev/null)
    if [ -n "${WINDOWIDS}" ]; then
        break
    fi
    sleep 1
    COUNTDOWN=$(( ${COUNTDOWN} - 1 ))
done
# did we get anything?
if [ -z "${WINDOWIDS}" ]; then
    echo "Cheese never started, something's wrong"
    exit 1
fi
# the shutter button is ALT-T
for WIDS in ${WINDOWIDS}; do
    # if you combine these like xdotool allows, it fails
    xdotool windowfocus ${WIDS} 2>/dev/null
    xdotool key alt+t 2>/dev/null
done
# pause a moment while taking photo
sleep 1
# now CTRL-Q out of the application
for WIDS in ${WINDOWIDS}; do
    xdotool windowfocus ${WIDS} 2>/dev/null
    xdotool key ctrl+q 2>/dev/null
done
#
0
06.07.2013, 02:02
2 ответа

В надежде, что я не пропустил что-то:

  • Вы использовали sudo создать каталог
  • Ваш ls ясно состояния, что каталог принадлежит корню
  • Когда попытка скопировать файлы в ту папку как пользователь "myaccount" Вы отклонена

Это - нормальное поведение. У Вас есть следующие опции:

  • Предоставьте доступ для записи "другим" (chmod o+w/etc/puppet/device => очень плохая идея)
  • Создайте группу, например, назвал "adm-марионетку", и добавьте, что все пользователи позволили создавать файлы в том dir и марионеточном пользователе. Затем измените владение группы на ту группу
  • Добавьте, что пользователи позволили писать файлы в том каталоге exisisting марионеточной группе
  • Используйте расширенный ACLs
2
28.01.2020, 02:37
  • 1
    Спасибо за ответ weeheavy, но вот то, что я нахожу неинтуитивными: Я должен был использовать sudo mkdir потому что myaccount не имеет достаточных прав выполниться, операции файла - все же myaccount имеет право выполнить команды sudo! К моим глазам новичка это походит на "лазейку". В Windows нет никакого sudo: пользователь, который принадлежит локальной группе администраторов или администраторов домена, наследовал права, но все еще действует в качестве того пользователя. Кроме того, нет ли некоторый способ выполнить WinSCP как sudo? –   04.07.2013, 20:11
  • 2
    Разве это Не немного как контроль учётных записей? Хорошо я вижу Вашу точку, мне не нравится глобальный sudo Ubuntu, также. Для определенных задач (перезапускают нечто демона и т.д.) это хорошо. Вот объяснение Ubuntu: help.ubuntu.com/community/RootSudo –  weeheavy 04.07.2013, 23:11

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

Если Вы не можете создать файл/каталог (незначительная подсказка: каталоги являются просто специальными файлами) как обычный пользователь, корень может "дать" его обычному пользователю с chown (синтаксис chown user:group file).

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

При использовании группы с многочисленными пользователями в нем необходимо будет также изменить полномочия предоставить доступ для записи к каталогу группе. Доступ для записи к каталогу означает способность создать и удалить файлы в нем (выполнитесь, пересечение, и читайте, содержание списка). Сделайте это с chmod g+w dirname.

0
28.01.2020, 02:37
  • 1
    Спасибо за resonse Сокола. Когда использование говорит "после пользователя, который обычно существует" и я понимающий, что конвенция состоит в том, чтобы администраторы создали параллельную группу для каждого пользователя? Я вижу, как это было бы удобно в целях присвоения одному пользователю всех прав, которыми обладает другой пользователь. Действительно ли это - цель? –  BaltoStar 08.07.2013, 02:58

Теги

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