Ваши полномочия не являются правильными — но где-нибудь Вы не смотрите:
Это могло идти /home/Transmission
(необходимо удостовериться, что это имеет, выполняются (x) разрешение на этом; ls -ld /home/Transmission
проверять). А также на /home
, но /home
должен быть a+x
уже.
С другой стороны, это могло быть на самих файлах — Вы не дали ls -l Transmission/Downloads/
.
При выполнении SELinux или подобные Вы, возможно, также должны настроить это.
Кроме того, Вы уверенный, что Ваш демон работает как пользователь debian-transmission
? Если так, как корень:
# su debian-transmission -s /bin/sh -c 'echo test > /home/Transmission/Downloads/testfile'
Это должно работать без ошибки; если Вы отклонили разрешение, у Вас определенно есть проблема разрешения.
Можно также найти выполнение strace
на рабочем демоне, чтобы быть полезным. Например, если демон является pid 123:
# strace -f -p 123 |& grep EACCES # yes, acces with one s.
и отъезд того выполнения, поскольку Вы добавляете другой поток или останавливаетесь/начинаете существующий поток, должен быстро найти Вас, разрешение отклонило ошибку. Может оказаться, что это - файл, Вы не знали, что Передача пыталась получить доступ.
Перейдите по ссылке, чтобы сбросить пароль администратора [звучит так, будто вы назвали свою учетную запись администратора «user»:)]
https://askubuntu.com/questions/24006/how-do-i-reset-a-lost-administrative-password
После этого войдите в систему как пользователь администратора и выполните следующие действия.
sudo usermod -aG sudo,adm fsolano
Теперь можно войти в систему как «fsolano» и выполнить команду sudo.
-121--4569- Нет встроенной функции find
для анализа содержимого файла, но можно вызвать file
. Использование оболочки для объединения нескольких специфичных для задач программ ( поиск
для обхода деревьев каталогов, файл
для анализа содержимого файлов) - это способ выполнения задач Unix.
Вы хотите работать с файлами, для которых выходные данные команды file -b -- «$ filename»
содержат последовательность приложения PalmOS
. Это можно проверить с помощью сценария оболочки
case "$(file -b -- "$filename")" in *"PalmOS application"*) true;; *) false;; esac
Этот сценарий можно использовать в команде find
, например:
find . -type f -exec sh -c 'case "$(file -b "$0")" in *"PalmOS application"*) true;; *) false;; esac' {} \; -print
Замените -print
на действие (которое может быть другим -exec...
). Это второе действие выполняется только в том случае, если предыдущее действие имеет значение true, т.е. когда команда shell возвращает значение 0 (т.е. true).
Кроме того, в zsh можно разрешить оболочке выполнять обход каталога с помощью * *
glob . .
glob квалификатор ограничивает совпадения обычными файлами (например, -тип f
для найти
).
for x in **/*(.); do
[[ $(file -b -- $x) = *"PalmOS application"* ]] || continue
…
done
В bash ≥4.3 для рекурсивного глоббинга можно использовать * *
, но сначала необходимо включить опцию globstar
. В bash 4,0-4,2 уже доступен globstar
, но остерегайтесь того, что * *
пересекает символические ссылки на каталоги. В ksh93 используйте set -o globstar
вместо shopt -s globstar
.
shopt -s globstar
for x in **/*; do
[[ -f $x ]] || continue
[[ $(file -b -- "$x") = *"PalmOS application"* ]] || continue
…
done
Если имена файлов не содержат пробелов или :\" '
, то альтернативный метод состоит в выполнении file
над именами файлов и анализе выходных данных.
find -type f |
xargs file |
sed -n 's/:.*PalmOS application.*//p' |
xargs somecommand
Если имена файлов содержат пробелы, но не содержат новых строк или двоеточий, можно использовать оболочку для анализа.
find -type f |
while IFS=: read -r filename type; do
case "$type" in
*"PalmOS application"*)
…;;
esac
done
-121--157660- Это необходимо для сброса пароля администратора.
https://help.ubuntu.com/community/LostPassword
Тогда вы сможете предоставить разрешение sudo вашему обычному пользователю с помощью
sudo adduser username sudo
, как вы опубликовали в своем первоначальном вопросе.
Кстати: почему вы устанавливаете ncurses? Вы что-то составляете?
Список конфигурации / etc / sudoers
, которому разрешено запускать, какие команды, как пользователю.
На Ubuntu этот файл содержит строку, позволяющую всем пользователям группы Sudo
для запуска команд в качестве root root
пользователя.
Чтобы проверить, какие пользователи находятся в группе Sudo, вы можете набрать Getent Group Sudo
. Вы также можете проверить группы вашего текущего пользователя, набрав ID
.
Вероятно, ваш текущий пользователь не находится в группе sudo и поэтому не разрешается использовать команду sudo
.
Войдите в систему в качестве некоторого пользователя Sudo, если вы хотите запустить Sudo
.
Перейдите по ссылке для сброса пароля администратора [звучит так, как будто вы назвали свою учетную запись пользователя-администратора 'пользователем' :)]
https://askubuntu.com/questions/24006/how-do-i-reset-a-lost-administrative-password
После этого войдите в систему как пользователь-админ и выполните следующие действия.
sudo usermod -aG sudo,adm fsolano
Теперь вы можете войти в систему как 'fsolano' и выполнить команду sudo.
Если у вас есть какой-либо другой пользователь root / admin, чем 'fsolano', то это не в файле sudoers. Этот инцидент будет сообщен:
check sudo enabled users (groups)
# getent group sudo
sudo:x:27:xyz,abc
, поскольку пользователь «Fsolano» изменен на стандартный пользователь, и если у вас есть какой-либо другой привилегированный пользователь root, войти через root One, и измените «Fsolano» для администратора, используя «учетные записи пользователей».
Самый простой способ добавить пользователя в sudoers
файл запускается следующей командой от имени пользователя с разрешением на выполнение gpasswd
:
sudo gpasswd -a username sudo
Когда это случилось со мной, все, что я должен был сделать, чтобы исправить это, было:
Шаг 1. Откройте окно терминала, CTRL+ALT+T в моей системе (Debian KDE после установки в качестве горячей клавиши)
Шаг 2. Войдите в root с помощью команды su root
Шаг 3. Введите пароль root
Шаг 4. Введите команду apt-get install sudo -y
для установки sudo
Шаг 5. Добавьте пользователя в файл sudoers, введя adduser username
, поставьте свое имя пользователя вместо username
Шаг 6. Установите правильные разрешения для файла sudoers, введя chmod 0440 /etc/sudoers
Шаг 7. Введите exit
и нажимайте Enter, пока не закроете окно терминала. Полностью выключите систему и перезагрузитесь.
Шаг 8. Откройте другое окно терминала.
Шаг 9. Попробуйте выполнить любую команду sudo, чтобы проверить, правильно ли добавлено ваше имя пользователя в файл sudoers. Я использовал sudo echo "Hello World!"
. Если ваше имя пользователя было правильно добавлено в список sudoers, то вы получите Hello World!
в качестве ответа терминала!
У меня такая же проблема с Kali каждый раз, когда я хочу добавить newuser в группу sudo, набрав эту команду:
usermod -aG sudo newuser
и редактируя правую секцию в / etc / sudoers
.
Все дерьмо!
Мое исправление этой ерунды - скопировать строку для root под ней и изменить root на newuser:
# User privilege specification
root ALL=(ALL:ALL) ALL
newuser ALL=(ALL:ALL) ALL
Я помню, как работал обычный метод с usermod, но является ли это ошибкой за последние пару лет? { {1}} это действительно ерунда. в любом случае, если у кого-то есть лучший ответ, поделитесь им, пожалуйста :)
Вы также можете добавить пользователя в группу sudo для всех прав доступа:
sudo su
(ubuntu 16.04 LTS) sudo adduser sudo
, где username - это имя пользователя, которого вы хотите добавить в список sudoers getent group sudo
, который покажет список пользователей sudo 1. Вы можете проверить, являетесь ли вы частью группы sudo, используя команду ниже
groups username ===> it will lists the groups for which he belongs too
Мы также можем проверить с помощью приведенного ниже скрипта
h=`groups username| awk -F ":" '{print $2}'| grep -io 'sudo'`
if [[ $h == "sudo" ]]
then
echo "user praveen is part of group sudo"
else
echo "Need to add user to group sudo"
echo "Swictch to root and add user"
fi