'chmod g+s' команда

Некоторые опции здесь.

  • Вы могли использовать tac для инвертирования порядка строк, затем делая grep включают строку после (теперь прежде, поскольку это инвертируется), и остановите его после первого соответствия, затем инвертируйте его снова для восстановления порядка, как это:

    tac /path/to/file | grep -m 1 -B 1 "mypattern" | tac
    
  • Полоса строки помимо последнего соответствия и следующего строки:

    grep -A 1 "mypattern" /path/to/file | tail -n 2
    

Необходимо попробовать это на файлах для наблюдения, который работает лучше в случае.

И можно добавить вывод к файлу журнала путем предварительного ожидания команд с перенаправлением стандартного вывода >> /path/to/outputfile.

46
01.02.2015, 01:42
4 ответа

Вы можете изменить разрешения на файл с помощью команды chmod. В Unix файловые разрешения, которые устанавливают, у кого могут иметь разные типы доступа к файлу, указаны как классами доступа, так и типов доступа. Классы доступа - это группы пользователей, и каждый может быть назначен конкретные типы доступа

UNIX / Linux имеют пользователи и группы пользователей, которые могут быть назначены для доступа к файлу

. Параметры G + S следующие:

G - Разрешения, которые другие пользователи в группе файлов имеют для него

s - установить идентификатор пользователя или групповой идентификатор в выполнении

Вот использование образца:

chmod =rwx,g+s filename

(позвольте всем прочитать, писать и выполнять определенный файл и Включите заданный идентификатор группы)

, чтобы установить / изменить разрешения файла, необходимые для использования программы CHMOD. Конечно, только владелец файла может использовать CHMOD для изменения разрешений файла. CHMOD имеет следующий синтаксис: Chmod [Параметры] файлы режима (ы) Часть «режима» указывает новые разрешения для файлов, которые следуют в качестве аргументов. Режим указывает, какие разрешения пользователя должны быть изменены и после этого должны быть изменены типы доступа. Допустим, например: chmod a-x socktest.pl

Это означает, что файл Execute должен быть очищен (-) для всех пользователей. (Владелец, группа и остальная часть мира). Разрешения начинаются с буквы, указывающего то, что пользователи должны быть затронуты изменением, это может быть любое из следующих действий:

u the owner user
g the owner group
o others (neither u, nor g)
a all users

Это сопровождается инструкцией по изменению, которая состоит из A + (Установите бит) или - (CLEAR BIT) и письмо, соответствующее битам, которое следует изменить. Давайте посмотрим некоторые примеры:

$ ls -l socktest.pl 
-rwxr-xr-x   1 nick     users         1874 Jan 19 10:23 socktest.pl*

$ chmod a-x socktest.pl 
$ ls -l socktest.pl 
-rw-r--r--   1 nick     users         1874 Jan 19 10:23 socktest.pl

$ chmod g+w socktest.pl 
$ ls -l socktest.pl 
-rw-rw-r--   1 nick     users         1874 Jan 19 10:23 socktest.pl

$ chmod ug+x socktest.pl 
$ ls -l socktest.pl 
-rwxrwxr--   1 nick     users         1874 Jan 19 10:23 socktest.pl*

$ chmod ug-wx socktest.pl 
$ ls -l socktest.pl 
-r--r--r--   1 nick     users         1874 Jan 19 10:23 socktest.pl

Странные числа ... Возможно, вы столкнулись с такими вещами, как CHMOD 755, и, конечно, вам будет интересно, что это такое. Дело в том, что вы можете изменить весь шаблон разрешения файла в одном переходе, используя один номер, такой как тот пример. Каждый режим имеет соответствующий код кода, и, как мы увидим, что есть очень простой способ выяснить, какой номер соответствует любому режиму. Каждая из трех цифр в номере режима соответствует одному из трех тройнок разрешений. (U, G и O) Каждый бит разрешения в триплет соответствует значению: 4 для R, 2 для W, 1 для X. Если бит разрешения вы добавляете это значение к количеству триплета разрешений. Если это очищено, то вы ничего не добавляете. (Некоторые из вас могут заметить, что на самом деле номер для триплета - это восьмеричное значение, соответствующее трехбито-битной модели - если вы не знаете, что такое восьмеричное значение, это не имеет значения, просто следуйте инструкциям ) Итак, если файл имеет разрешения RWXR-XR-X, мы выполняем следующие расчеты:

триплет для U: RWX => 4 + 2 + 1 = 7

триплет для G: RX => 4 + 0 + 1 = 5

триплет для O: RX => 4 + 0 + 1 = 5

, который делает: 755

Итак, 755 - заправиться, чтобы сказать «Я не против, если бы другие люди читали или запустили этот файл, но только я должен быть в состоянии изменить его», а 777 означает «каждый имеет полный доступ к этому файлу»

Perlfect Ссылка

7
27.01.2020, 19:34

В Linux одной из опций по умолчанию для ext? fs является 'nogrpid | sysvgroups'. Итак, первое прикосновение un, создает файл с идентификатором группы, равным fsgid процесса создания, где fsgid = egid.

chmod g+s ., делает последующее создание файла/дира наследует id группы из родительской папки, и если созданная вещь является dir, то g+s тоже становится ее родителем.

Здесь touch deux, создает deux, с помощью групповой canard.

Семантика меняется, если опция монтирования была 'grpid | bsdgroups', в этом случае новый файл/создание файла/дира унаследует идентификатор группы из родительской папки, даже без установки g+s для самого родителя.

0
27.01.2020, 19:34
chmod g+s .;

Эта команда устанавливает идентификатор группы (setgid) в текущей директории, записанный как . .

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

g+s влияет на идентификатор группы файла, но не влияет на идентификатор владельца.

Обратите внимание, что это относится только к вновь созданным файлам. Файлы, которые перенесены (mv) в каталог, не затрагиваются настройками setgid. Также не затрагиваются файлы, которые копируются с cp -p.

Пример

touch un;
chgrp canard .;
chmod g+s .;
touch deux ;

В этом случае deux будет принадлежать группе canard, но un будет принадлежать группе пользователя, создавшего его, что бы это ни было.

Незначительное замечание об использовании точки с запятой в командах оболочки

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

chgrp canard .; chmod g+s .;

Окончательная точка с запятой лишняя и может быть удалена:

chgrp canard .; chmod g+s .

Далее, если разместить две команды в отдельных строках, то оставшаяся точка с запятой не нужна:

chgrp canard .
chmod g+s .
61
27.01.2020, 19:34

Результат команды ls будет зависеть от маски.

g+s установит sgid в файл. Проверьте здесь для получения более подробной информации о SUID SGID

так что если ваша маска, например, 022, то результат будет что-то вроде:

-rw-r--r--    1 romeo    canard     0 Jan 31 20:58 deux
-rw-r-Sr--    1 romeo    UsersGrp   0 Jan 31 20:58 un
0
27.01.2020, 19:34

Теги

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