#!/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;
}
}
Разрешения в Unix-подобных системах используют восьмеричное представление.
Он начинается с необязательного специального разрешения, за которым следуют u
ser, g
roup, o
thers. Разрешения u
, g
и o
представляют собой комбинацию следующего OR, объединенного вместе:
r
ead: 4 w
rite: 2 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
Обратите внимание, что доступ к файлу также включает в себя права доступа к папкам во всем дереве каталогов.