Права доступа в Linux (permissions)

У файлов и папок есть три вида владения, а у владельца есть три вида прав.

Виды владений Виды прав
  1. User — пользователь
  2. Group — группа
  3. Other — прочие
  1. Read — чтение
  2. Write — запись
  3. Execute — выполнение

Примеры: 

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

Если есть право записи на файл, но нет прав записи на папку файла, можно менять содержимое файла но нельзя удалить или переименовать файл.

Обозначение

Права

Обозначение Право на
r чтение
w запись
x выполнение

Владельцы

Обозначение Владелец
u Пользователь
g Группа
o Прочие
a Все

Действия

Обозначение Действие
+ Добавить право
Удалить право
= Установить право

Чтобы увидеть права и владельцев файла или папки, можно набрать в терминале ls -l. Пример:


$ ls -l
-rw-r--r-- 1 root root 11321 Oct 15 22:22 index.html

Понимать это следует так:

rw- r— r— root root index.html

Флаг
«-» файл

«d» папка

Права пользователя владеющего файлом|папкой Права группы владеющей файлом|папкой Права не владеющих файлом|папкой Пользователь владеющий файлом|папкой Группа владеющая файлом|папкой

Название файла|папки

 

Nano — редактор текста

Использование:

$ nano /path/to/file.txt

Управление:

Ctrl + O Сохранить изменения.
Ctrl + X

Выход. Если были не сохраненные изменения, нажать:
Y — чтобы сохранить;
N — чтобы не сохранять.

Ctrl + K Вырезать строку.
Ctrl + U Вставить строку.

 

Как обернуть элемент в тег — JavaScript

Например, обернем картинку в div с классом my-image.


<p>
<img id="photo" src="/images/photo.jpg" />
</p>


var image_code = document.getElementById('photo').parentElement.innerHTML; // получаем html код внутри родительского элемента
document.getElementById('photo').parentElement.innerHTML = '<div class="my-image">' + image_code + '</div>';

Изменить метки полей Views exposed filter between date

function mytheme_form_views_exposed_form_alter(array &$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {
	switch ($form['#id']) {
		case 'views-exposed-form-myviewsname-page-1':
			$form['created']['min']['#title'] = 'от';
			$form['created']['max']['#title'] = 'до';
			break;
		case 'views-exposed-form-myviewsname-page-2':
			$form['created']['min']['#title'] = 'от';
			$form['created']['max']['#title'] = 'до';
			break;
	}
}

Как перебрать HTMLCollection с помощью forEach?

HTMLCollection — это объект, ведущий себя подобно массиву. Например, чтобы получить один элемент коллекции, можно обратиться как к элементу массива по индексу:

<a href="link1">Link 1</a>
<a href="link2">Link 2</a>
var links = document.getElementsByTagName('a'); //HTMLCollection
alert(links[0]);

Но перебрать коллекцию как массив уже не получится:

links.forEach(function(link, i, links) {
    alert(link);
}); 

Чтобы получилось, нужно получить массив из HTMLCollection перед проходом:

var links_as_arr = Array.from(links);
links_as_arr.forEach(function(link, i, links_as_arr) {
    alert(link);
}); 

Или использовать один из следующих вариантов.

Подлиннее:

Array.prototype.forEach.call(links, function(link) {
    alert(link);
});

Покороче:

[].forEach.call(links, function(link) {
    alert(link);
});