Существуют ли отношения надмножества / подмножества между наборами разрешений владельца пользователя, рабочей группы и других для файла?

#!/usr/bin/env perl
#
# Usage: thisscriptname < someinputfile

use strict;
use warnings;

while (1) {
  exit if eof;
  # rash assumption there are always pairs of ID and sequence lines
  # NOTE these contain a newline, so many need chomp() depending
  # on what you do with them...
  my $id = readline;
  my $seq = readline;

  # calculate unique sequence letters via hash (is there also a U
  # or something? been a few decades since AP bio...)
  my %chars;
  $chars{$_}++ for $seq =~ m/[ATGC]/g;

  # business logic time!
  if (keys %chars > 2 and length $seq >= 5) {
    print $id;
    print $seq;
  }
}
1
29.12.2016, 07:49
1 ответ

Разрешения в Unix-подобных системах используют восьмеричное представление.

Он начинается с необязательного специального разрешения, за которым следуют u ser, g roup, o thers. Разрешения u , g и o представляют собой комбинацию следующего OR, объединенного вместе:

  • r ead: 4
  • w rite: 2
  • e x ecute: 1

Следовательно, разрешение 0774 предоставит его владельцу и группе полный доступ, но доступ только для чтения другим.

Эти разрешения, включая специальное разрешение, не зависят друг от друга.

Файлы также имеют одного владельца и группу, которые также независимы по своим атрибутам.

Таким образом, владелец может иметь доступ только для чтения, в то время как члены groupX имеют доступ для чтения и записи, а люди, не соответствующие критериям владельца или группы, имеют полный доступ.

Давайте рассмотрим пользователя john , который изменяет права доступа text.txt на 0467 , право собственности на john и группу на ] operator :

$ chown john:operator text.txt
$ chmod 0467 text.txt
$ ls -l text.txt
-r--rw-rwx 1 john operator 0 Dec 29 00:57 text.txt

Если john не является частью группы operator , он не сможет обновить содержимое файла:

$ echo hi > text.txt
text.txt: Permission denied

Но он все еще может изменить разрешения для файла и обновить файл:

$ chmod u+w text.txt
$ echo hi > text.txt
$ ls -l text.txt
-rw-rw-rwx 1 john operator 3 Dec 29 00:57 text.txt

Обратите внимание, что доступ к файлу также включает в себя права доступа к папкам во всем дереве каталогов.

2
27.01.2020, 23:34

Теги

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