Linux\Bash Работа в командной строке.
Права доступа к файлам
У файла есть три группы владельцев:
- User(пользователь)
- Group(группа)
- Other(все другие)
Каждой группе назначается права доступа:
- Read(Чтение)
- Write(Запись)
- Execute(Выполнение)
Рассмтрим пример Выолните в командной строке:
ls -l
В ответ мы получим вывод следующего вида:
-rw-r--r--. 1 user user 478 сен 6 16:42 index.html
-rwxr-xr-x. 1 user user 1244 июл 30 10:37 modules
drwxr-xr-x. 5 user user 4096 сен 10 15:58 Pictures
drwxr-xr-x. 2 user user 4096 янв 24 2021 Public
drwxr-xr-x. 13 user user 4096 авг 17 09:12 Repos
Разрберем запись:
drwxr-xr--
Нотация имеет группы свойств:
-
d
или-
укзание того, что перед нами файл или папка. -
rwx
- позволяет пользователю читать(r
), писать(w
), исполнять(x
) этот файл -
r-x
- позволяет группе пользователей читать(r
), но не писать в него (-
), испольнять(x
) -
r-x
- позволяет всем остальным читать(r
), но не писать в него (-
), не испольнять(-
)
---
- подразумевает что у владельца, группы или остальных нет никаких разрешений вообще.
CHMOD
Довольно часто для смены прав доступа используется команда chmod
.
chmod permissions filenam
Используя табилцу ниже файлу или папке можно дать различные права:
Число | Тип разрешения | Символ |
---|---|---|
0 | Отсутствует разрешение на | --- |
1 | Выполнение | --x |
2 | Запись | -w- |
3 | Выполнение+ Запись | -wx |
4 | Чтение | r-- |
5 | Чтение+Выполнение | r-x |
6 | Чтение+Запись | rw- |
7 | Чтение+Запись+ВЫполнение | rwx |
CHOWN
Команда для изменения владельца файла\каталога
chown user:group filename
Возьмем пример выше
-rwxr-xr-x. 1 user user 1244 июл 30 10:37 modules
Если мы воспользуемся командой chown:
chown test:group modules
То в результате user
должен смениться на test
, и user
на group
, и при проверке прав мы увидим следующие изменения:
-rwxr-xr-x. 1 test group 1244 июл 30 10:37 modules
Перенаправление ввода
">"
Этот символ используется для перенаправления вывода(stdout)
Пример:
la -al > file.txt
В этом случае всё что выведется командой la -al
будет записано в file.txt
, при этом на экране ничего не отобразиться.
Можно рассмотреть следующий пример:
cat music.mp3 > /dev/audio
Команда cat
прочитает файл music.mp3
и вместо того чтобы вывести его в терминал отправит в устройство /dev/audio
, если у вас в системе есть такое устройство то вы услышите этот файл из колонок.
"<"
Этот символ используется для перенаправления ввода(stdin)
Пример:
mail -s "subject" to-address < Filename
Команда прикрепит Filename
к письму и отправит его по адресу to-address
.
Файловые дескрипторы
В Linux / Unix все является файлом. Обычный файл, каталоги и даже устройства являются файлами. Каждый файл имеет связанный номер, называемый дескриптором файла (FD).
Перенаправление ошибок
Всякий раз когда выполняется программа открыто 3 файла:
- standard input -- FD0
- standard output -- FD1
- standard error -- FD2
примеры использования
myprogram 2>errorsfile
find . -name 'my*' 2>error.log
ls Documents ABC> dirlist 2>&1