получение владельца папки с помощью команды if [закрыто]

Два приведенных выше ответа были полезны, и я не совсем уверен, что их отсортировало, но похоже, что помогли следующие 2 шага:

1) Добавление несвободного репозитория в соответствии с рекомендациями Hydraxan14

2) Запуск sudo modprobe snd-aoa-i2sbus

3) Установка звуковой карты на SoundByLayout в alsamixer

Звук теперь работает, большое спасибо!

1
11.03.2016, 14:04
2 ответа
find . -prune -user "$(id -u)"

Будет напечатано . , если текущий каталог принадлежит вам.

Вы можете либо:

find . -prune -user "$(id -u)" -exec some command \;

, либо:

if [ -n "$(find . -prune -user "$(id -u)")" ]; then
  some command
fi

Запустить некоторую команду , только если текущий каталог принадлежит вам.

Чтобы получить идентификатор текущего владельца каталога, POSIXly, вы можете сделать:

ownerid=$(LC_ALL=C ls -lnd . | awk '{print $3}')

Или с помощью zsh встроенной функции stat :

stat -H stat . && ownerid=$stat[uid]

Или с помощью GNU find :

ownerid=$(find . -prune -printf %U)

Или с помощью GNU stat :

ownerid=$(stat -c %u .)

Или с помощью BSD stat :

ownerid=$(stat -f %u .)

Как только у вас будет этот $ ownerid , вы можете сравнить это с эффективным идентификатором пользователя процесса вашей оболочки, который вы можете получить с помощью "$ (id -u)" . Как правило, лучше работать с идентификаторами пользователей, чем с именами пользователей, поскольку их может быть более одного имени пользователя для каждого идентификатора пользователя в базе данных учетных записей (и это избавляет от необходимости запрашивать эту базу данных пользователей).

2
27.01.2020, 23:26

Подождите, что? Чтобы люди не могли удалить важные системные файлы, не позволяйте им входить в систему как root и не устанавливайте ваш скрипт setuid.

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

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

1
27.01.2020, 23:26

Теги

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