Отвечайте в процессе строительства, пожалуйста, будьте терпеливы
Тестирование для себя
Можно проверить права на запись для себя со следующим кодом:
[ -w /home/$USER ] && echo yes # using home directory as example
] Используя флаг -d для теста, мы можем проверить, является ли что-то каталогом.
Зная все это и find, мы можем сделать
find /home/ -print0 2> /dev/null | while IFS="" read -r -d "" file ; do [ -d "$file" ] && [ -w "$file" ] && echo "$file" is writeable ; done
. Замечание: Очевидно, если вы получаете ошибки разрешения с помощью find, вы не можете прочитать этот файл, поэтому нет причин выводить эти ошибки, следовательно, перенаправление на dev null. Очевидно, что это не сработает, если мы хотим узнать разрешения для пользователей, отличных от себя, и обратите внимание - / home - только пример. Такие папки, как /var, имеют папки, разделяемые между несколькими пользователями
Тестирование для себя
Можно использовать stat для каждого файла find находит и отфильтровывает его с помощью awk
find /var -type d -exec stat --format '%g %n' {} \; 2> /dev/null | awk '$1=='1000'{print}'
Здесь я фильтрую числовой идентификатор моего собственного пользователя, 1000, но это может быть идентификатор любого пользователя. Конечно, можно играть с опциями, использовать имя группы вместо числовых идентификаторов. Это что-то очень гибкое и адаптируемое к той цели, в которой вы нуждаетесь
Небольшие настройки
Итак, я заметил, что вы упоминаете, что вы вошли в систему под именем root. Вот результат моей команды, где я статирую файлы и печатаю их группу и имя файла, а затем отфильтровываю AWK с помощью соответствующего имени группы.
$ find /proc -type d -exec stat --format '%G %n' {} \; 2> /dev/null | awk '$1=="syslog"{print}'
syslog /proc/560
syslog /proc/560/task
syslog /proc/560/task/560
syslog /proc/560/task/560/net
syslog /proc/560/task/560/attr
syslog /proc/560/task/562
syslog /proc/560/task/562/net
syslog /proc/560/task/562/attr
syslog /proc/560/task/563
syslog /proc/560/task/563/net
syslog /proc/560/task/563/attr
syslog /proc/560/task/564
syslog /proc/560/task/564/net
syslog /proc/560/task/564/attr
syslog /proc/560/net
syslog /proc/560/attr
^C
Вы можете создать простой файл .desktop (например rhythmbox.desktop) на рабочем столе с таким содержимым:
[Desktop Entry]
Comment=Any comment you like
Terminal=false
Name=Rhythmbox
Exec=path/to/Rhythmbox/binary
Type=Application
Icon=path/to/Rhythmbox/icon
NoDisplay=false
Вы можете использовать Exec=rhythmbox %U, Icon=rhythmbox в случае Rhythmbox в
В качестве альтернативы вы можете скопировать предназначенный файл .desktop на Рабочий стол с /usr/share/applications/.
Затем щелкните правой кнопкой мыши по файлу .desktop и установите флажок «Разрешить выполнение файла как программы "в разделе« Разрешения ».
Вы можете создать простой файл .desktop (например rhythmbox.desktop) на рабочем столе с таким содержимым:
[Desktop Entry]
Comment=Any comment you like
Terminal=false
Name=Rhythmbox
Exec=path/to/Rhythmbox/binary
Type=Application
Icon=path/to/Rhythmbox/icon
NoDisplay=false
Вы можете использовать Exec=rhythmbox %U, Icon=rhythmbox в случае Rhythmbox в
В качестве альтернативы вы можете скопировать предназначенный файл .desktop на Рабочий стол с /usr/share/applications/.
Затем щелкните правой кнопкой мыши по файлу .desktop и установите флажок «Разрешить выполнение файла как программы "в разделе« Разрешения ».