ACLs может переопределить файл перманент на Linux?

Первое приложение, с которым я когда-либо сталкивался, который мог играть .wav или .mp3 файлы, было носками. Это было доступно на Солярисе 2.5.1, когда я сначала узнал об этом. Я полагаю, что это предшествует этому также.

Я использовал sox в 1997.

Страница Википедии определяет его в 1991. Случайно приложение называют SoX для Звукового Exchange.

выборка от раздела истории wikipeidia страницы

SoX был создан в июле 1991 Lance Norskog и отправлен на группу Usenet alt.sources как Слуховой обмен: Звучите как демонстрационный переводчик. Со вторым выпуском (в ноябре тот же год) это было переименовано в Звуковой Exchange. Norskog продолжал поддерживать и выпускать SoX через Usenet, FTP и затем сеть до начала 1995, в которое время SoX был в версии 11 (гамма). В мае 1996 Chris Bagwell начал поддерживать и выпускать обновленные версии SoX, начиная с версии sox-11gamma-cb. В сентябре 2000 Bagwell зарегистрировал проект в SourceForge с названием проекта "носки". О регистрации объявили 4 сентября 2000 [необходима цитата], и SoX 12.17 был выпущен 7 сентября 2000. Всюду по его истории SoX имел многих способствующих авторов; Guido van Rossum, известный прежде всего как создатель языка программирования Python, был значительным участником в первые годы SoX

Я должен разъясниться на Солярисе, который я использовал sox играть .wav и .aiff файлы, не mp3s. Только в несколько лет спустя, я использовал sox играть .mp3 файлы на некоторой версии Red Hat. Я должен становиться старым, но я, кажется, помню Red Hat v8.0 или v9.0, это туманно теперь.

XMMS

Другое приложение, которое я не забываю использовать, назвали XMMS, приблизительно 1997. Это было очень перед, время. Был легкий вес, со сменными окнами, и включал плагины.

снимок экрана

                  ss of xmms

Разногласия по авторскому праву MP3

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

Например: Почему Linux не поддерживает mp3 и выбранные карты Wi-Fi из поля?

Это было только в последние несколько лет, что Вы могли по закону получить лицензию на воспроизведение от Fluendo.

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

выборка от MP3 страница Википедии

Первоначальный почти полный стандарт MPEG-1 (части 1, 2 и 3) был общедоступен 6 декабря 1991 как ISO CD 11172. [52] [53] В большинстве стран, патенты не могут быть зарегистрированы после того, как предшествующее искусство было обнародовано, и патенты истекают спустя 20 лет после начальной даты регистрации, которая может быть до 12 месяцев спустя для регистрации в других странах. В результате патенты, требуемые реализовать MP3, истекли в большинстве стран к декабрю 2012, спустя 21 год после публикации ISO CD 11172.

Исключением являются Соединенные Штаты, где патенты, зарегистрированные до 8 июня 1995, истекают спустя 17 лет после года издания патента и лазейки, известной, поскольку, подводные патенты позволили расширить эффективное время жизни патента посредством расширений приложения. Различные связанные с MP3 патенты истекают в даты в пределах от 2007 - 2017 в США [54] Патенты, зарегистрированные для чего-либо раскрытого в ISO CD 11172 год или больше после того, как его публикация будет сомнительна; если только известные патенты MP3, зарегистрированные к декабрю 1992, рассматривают, то декодирование MP3 может быть без патентов в США к сентябрю 2015, когда американские Доступные 5,812,672 истекают, который имел регистрацию ПРОЦЕНТА в октябре 1992.

5
02.02.2015, 01:00
1 ответ

Разрешения, предоставленные ACL , являются добавками , но, возможно, вы ожидаете, что они будут рекурсивными? (они не являются)

Вы можете получить почти то, что вы хотите с ACL. Вам нужно начать, установив ACL, как выше , рекурсивно на каждом файле и каталоге в дереве. Обязательно включите по умолчанию: Группа: MyGroup: rwx Настройка по каталогам. Теперь любой новый каталог получит эти настройки автоматически примененными к нему, а также новый файл в этих каталогах также.

Есть два раза, когда это все еще не удается:

  • , когда кто-то перемещает файл или каталог снаружи дерева. Поскольку inode уже существует, он не получит настроек по умолчанию.
  • Когда кто-то извлекает файлы из архива, используя программу ACL-Aware, которая перезаписывает значения по умолчанию.

Я не знаю никаких способов справиться с этими двумя другими, чем написание задания CRON, чтобы периодически запустить Directory Chgrp -r MyGroup; CHMOD G + RWX -R Directory . Это может или не будет практично в зависимости от количества файлов в вашем общем каталоге.

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

#! /usr/bin/env perl
use strict;
use warnings;
use String::ShellQuote;
use Cwd 'abs_path';

# Usage: fix-permissions.pl DIRECTORY RW_GROUP1,RW_GROUP2... RO_GROUP1,RO_GROUP2...

my $dir= $ARGV[0];
my @rw_groups= split ',', $ARGV[1] if $ARGV[1];
my @ro_groups= split ',', $ARGV[2] if $ARGV[2];
-d $dir or die "No such directory'$dir'\n";
$dir= abs_path($dir);
$dir =~ m|/[^/]+/| or die "Cowardly refusing to run on a top-level directory: $dir\n";

# Give all files rw-r----- and all directories rwxr-x---
# then give each rw_group read/write access, then each ro_group
# read-only access to the whole tree
my $dir_perm= join(',',
  'u::rwx',
  'g::r-x',
  'o::---',
  'd:u::rwx',
  'd:g::r-x',
  'd:o::---',
  ( map { "g:$_:rwx" } @rw_groups ),
  ( map { "d:g:$_:rwx" } @rw_groups ),
  ( map { "g:$_:r-x" } @ro_groups ),
  ( map { "d:g:$_:r-x" } @ro_groups )
);
my $file_perm= join(',',
  'u::rwx',
  'g::r-x',
  'o::---',
  ( map { "g:$_:rw-" } @rw_groups ),
  ( map { "g:$_:r--" } @ro_groups )
);

for (
  "find ".shell_quote($dir)." -type d -print0 | xargs -0 -r setfacl --set ".shell_quote($dir_perm),
  "find ".shell_quote($dir)." ! -type d -print0 | xargs -0 -r setfacl --set ".shell_quote($file_perm)
) {
  0 == system($_) or die "command failed: $_\n";
}
4
27.01.2020, 20:40

Теги

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