В процессе использования Linux мы более или менее столкнемся с некоторыми проблемами, связанными с пользователями и группами.Например, наиболее распространенной из них является то, что вы хотите выполнить определенную команду по определенному пути, и это сообщение об ошибке будет часто появляться.
permission denied
Во всяком случае, у меня большая вероятность увидеть эту ошибку при использовании FTP для передачи файлов.После длительного ожидания процент передачи все равно равен нулю.Я говорил, что сеть такая медленная? Почему бы вам не передать это? На самом деле я не знаю, это из-за проблемы с разрешением.
Мое общее исправление заключается в том, чтобы предоставить разрешения 777 напрямую или войти в систему напрямую с администратором su. . . . . .
Вы можете не знать, о чем я говорю, и некоторые начальники могут подумать, что мой подход слишком низкий.В любом случае, когда вы сталкиваетесь с такой проблемой, это означает, что у вас недостаточно прав.Почему? Теперь нам нужно познакомиться с пользователями и группами в Linux.
пользователи и группы
В Linux существует три типа владельцев файлов, а именноВладелец файла, группа и другие принадлежат, следующие три концепции объясняются отдельно
- владелец файла
Linux — это многопользовательская многозадачная система. Многопользовательский режим означает, видны ли файлы, созданные одними пользователями, другим пользователям. Это проблема видимости, а также проблема конфиденциальности. роль владельца файла. Если у вас есть данные и файлы с высокой конфиденциальностью, вы можете сделать файл «видимым только мне», что является ролью владельца файла.
- группа
Концепция групп используется в командной разработке, и более полезно устанавливать права доступа для проектов.Например, если вы работаете в отделе аутсорсинга банка, вы и другие отделы аутсорсинга работаете вместе для определенного банка.Все группы аутсорсинга используйте один. Если вы настроите сервер, это будет связано с проблемой групповых разрешений. Проект, разработанный вашим отделом аутсорсинга, не хочет, чтобы его видели другие отделы аутсорсинга, поэтому вы настроите проект так, чтобы он был виден группе. Но банк является генеральным менеджером, и все банки имеют право просматривать все проекты вашего отдела аутсорсинга, поэтому вам также необходимо установить полномочия банка.
- Другие принадлежат
Другие и группы являются относительными. Другие находятся за пределами группы и не имеют разрешения на просмотр файлов в группе. Отношения разрешений.
В дополнение к вышеперечисленным трем понятиям существует еще и начальник с высшим уровнем полномочий, т.е.root
, привилегия root является самой высокой.
Права доступа к файлам в Linux
После обсуждения концепций пользователей и групп выше, давайте поговорим о том, как установить права доступа к файлам.Этот контент очень важен, потому что эта часть является ключом к решению проблемы отказа в доступе.
атрибут разрешения
Во-первых, войти в систему Linux, используяsu -
Может быть переключенroot
личность, затем выполнитеls -al
увидим следующее
Всего имеется семь столбцов, как показано на рисунке ниже.
Вы можете использовать root напрямую, когда вы учитесь, потому что последующие команды chgrp, chown и другие требуют root для обработки, но настоятельно не рекомендуется использовать права root на работе.
Используйте выход для выхода в качестве root.
Над этой инструкцией lslist
значит, то есть перечислить, а варианты-al
Он указывает подробные разрешения и атрибуты файла.
- Разрешения. Первый столбец представляет разрешения. Разрешения представлены в общей сложности символами 10. Давайте возьмем домашние разрешения в качестве примера, чтобы перечислить значения каждого символа.
Первый символ обозначает тип файла. Существует множество типов файлов.[d]Представляет каталог, который можно использоватьcd
команду в этот каталог. Вы можете видеть, что почти все на картинке является каталогом.
если[-]значит файл, если он есть[l]это означает связанный файл, если он[b]это означает произвольно доступное устройство в файле устройства, если оно[c]Он представлен как одноразовое чтение устройства (клавиатура, мышь) в файле устройства.
Следующие девять символов разделены на три группы, группа из трех, соответственно, принадлежит людям, принадлежит к группе, остальные права владельца, прав внутри каждой группы триrwx
Комбинация,[r]Для чтения,[w]означает записываемый,[x]Указывает исполняемый файл. Здесь следует отметить, что если нет разрешения, он станет-Нет.
- Ссылки, в этом столбце указано, сколько имен файлов связано с этим узлом (i-node), каждый файл будет записывать свои разрешения и атрибуты в файловую систему
i-node
Однако дерево каталогов, которое мы используем, записывается с использованием имен файлов, поэтому каждое имя файла связано с i-узлом, поэтому этот атрибут является записью.Сколько файлов связано с одним и тем же i-узломначальство.
Что такое узел I-youd?
Описание i-node очень похоже на Socket, о котором мы говорили ранее. Socket состоит из четырех кортежей, а иногда добавляется тип протокола, чтобы получить пять кортежей. Если вы не уверены, о чем я говорю, вы можешь посмотреть на меня эту статьюОказывается, это Розетка!
Мы знаем, что минимальной единицей хранения на диске является сектор.Когда операционная система читает сектор, она не будет читать сектор за сектором, потому что эффективность слишком низкая.кусокЧтение выполняется блоками, а блок состоит из нескольких секторов.
Данные в файле хранятся в секторах, но мы не знаем, какая часть данных нам нужна.Чтобы сохранить некоторые метаданные файла, такие как создатель файла, дата создания и размер файле разработчик предложил i-node, который является индексным узлом. Вообще говоря, i-узел имеет следующее содержимое
Конкретное содержание i-node мы поговорим об этом позже.
- Затем третий столбец представляет владельца этого файла.Как видно из рисунка, большинство файлов принадлежат пользователю root.
- В четвертом столбце указана группа, к которой принадлежит файл.В системах Linux учетная запись, в которую вы входите, будет добавлена к одной или нескольким группам владельцев, и в этом столбце указаны соответствующие разрешения группы.
- В пятом столбце указан размер файла, единица измерения по умолчанию — байты.
- Шестой столбец - это дата создания файла и дата последнего изменения.Как видно из рисунка, этот формат даты может быть не таким, как мы хотим.Если вы хотите отобразить полный формат даты, вы можете использоватьls -l --full-time, включая год, месяц, день и время.
Если вы хотите изменить язык системы по умолчанию на английский, вы можете изменить файл конфигурации системы./etc/locale.conf
, сначала мы можем проверить, какие языки поддерживаются системой.
Измените язык по умолчанию, введите
vi /etc/profile
Введите в конце документа
export LANG="en_US.UTF-8"
Вы можете переключиться на английский язык, если вы хотите использовать китайский, вы можете ввести
export LANG="zh_CN.GB18030"
затем используйтеesc + :wq
Сохранить и использовать после сохранения
source /etc/profile
Настройка завершена.
- Седьмая колонна - это имя файла, существует особый вид наименования файла, он представляет скрытый файл, если есть еще один до имени файла
.
, это означает скрытые файлы.
Важность разрешений
- Обеспечьте защиту системы: неавторизованные пользователи не могут работать с функциями и данными с определенными привилегиями.
- Подходит для командной разработки и обмена данными: все члены команды и лица, входящие в команду, могут совместно использовать проекты.
Если системные разрешения не установлены должным образом, она может привести к тому, что некоторые утечки или другие последствия, которые нельзя игнорировать. Следовательно, каждый должен обратить внимание на проблему разрешения. Давайте поговорим о том, как установить системные разрешения.
Изменить системные привилегии и атрибуты
Теперь мы знаем о важности прав доступа к файлам для безопасности системы, и теперь пришло время поговорить о том, как изменить права доступа к файлам. Обычно используемые инструкции для изменения прав доступа к файлам:
- chgrp : изменить группу, к которой принадлежит файл
- chown: изменить владельца файла
- chmod: изменить права доступа к файлам
chgrp
chgrp — это аббревиатура группы изменений. Я думаю, что Линус использовал эту аббревиатуру до крайности. Возможно, поэтому мы так популярны сейчас с этой аббревиатурой. chgrp может изменить группу файлов, однако, чтобы изменить группу, имя изменяемой группы должно быть в/etc/group
В файле только один файл, иначе будет отображаться ошибка.
chown
Так как chgrp может изменить группу файлов, то chown может изменить владельца файла.Также следует отметить, что владельцем файла должна быть учетная запись, существующая в системе, то есть в/etc/passwd
Только имена пользователей, записанные в этом файле, могут быть изменены. Кроме того, chown может напрямую изменить имя группы.
chmod
Команда chmod используется для изменения прав доступа к файлам, однако есть два способа установить права доступа, которые можно использовать по отдельности.номерилисимволВнесите изменения в разрешения.
- Используйте цифры для изменения разрешений на файл
Существует 9 основных разрешений для файлов Linux, это три идентификатора владельца/группы/других плюс их собственные разрешения на чтение/запись/выполнение.Эти девять разрешений представляют собой группу из трех, и мы можем использовать числа для представления каждого разрешения.
Как правило, r означает 4, w означает 2, x означает 1. Необходимо суммировать соответствующие разрешения каждого удостоверения. Например, rwx означает 4 + 2 + 1 = 7. такие как наши самые обычныеchmod 777Это означает предоставление всех разрешений, то есть каждый может читать/записывать/выполнять, так что этот тип файлов также имеет большие проблемы с безопасностью. Использование чисел для изменения прав доступа к файлам — один из самых распространенных способов.
- Изменить права доступа к файлам с помощью символов
Девять прав доступа к файлам соответствуют: (1) пользователю (2) группе (3) другим, поэтому мы можем использовать u, g, o для представления разрешений трех идентификаторов. Кроме того, а обозначает все, то есть все тождества.
Например, мы хотим дать-rwxr-xr-xУстановите разрешения, затем команда, которую мы используем, должна быть
chmod u=rwx,go=rx .filename
Если мы хотим добавить права на запись для всех, мы можем сделать это
chmod a+w .filename
Если мы хотим удалить разрешение на запись для всех, мы можем написать такую команду
chmod a-w .filename
Выше мы перечислили три команды: знаки =, +, -, знак = означает назначение указанных полномочий, знак + означает добавление полномочий, знак - означает удаление некоторых полномочий в состоянии + и -, если они не найден элемент команды, разрешение не будет изменено.
Права доступа к каталогу и файлам в Linux
Мы говорили о правах доступа к файлам выше. В файлах хранятся данные. К этим файлам относятся обычные текстовые файлы, файлы базы данных, двоичные файлы и т. д. Значение разрешений для файлов заключается в том, что
- r (чтение): может читать фактическое содержимое файла, например чтение текстового содержимого текстового файла.
- w (запись): вы можете добавлять, редактировать или изменять содержимое файла (за исключением удаления файлов)
- x (выполнить): разрешить файлу выполняться файловой системой.
В Windows фактором для определения того, может ли файл быть выполнен, является просмотр расширения файла, такого как .exe, .bat, .com и т. д., но в Linux, чтобы определить, имеет ли файл разрешение на выполнение, нужно напрямую определить, имеет ли файл разрешение x, и имя файла не имеет значения.
Но в Linux не только файлы имеют разрешения, но и каталоги также имеют разрешения, файлы — это место, где хранятся фактические данные, а каталогиСписок того, где находится файл, мы можем найти, где находится файл, только перейдя по каталогу! Разрешения также представляют разные концепции для разных каталогов.
- r (чтение содержимого в каталоге): указывает, что у вас есть разрешение на чтение списка структуры каталога, поэтому, если у вас есть разрешение на чтение каталога, это означает, что вы можете запрашивать файлы в каталоге, поэтому вы можете использовать ls для прочитать содержимое каталога show.
- w (Изменение содержимого каталога): разрешение на запись означает, что у вас есть возможность изменить каталог файлов и файлы в каталоге, в основном, включая
- Удалите существующие файлы и каталоги.
- Создание новых файлов и каталогов.
- Переименуйте существующий файл или каталог.
- Перемещение файлов и каталогов внутри каталога.
- x (каталог доступа): Какая польза от этого разрешения на выполнение? Не может ли каталог также быть выполнен? На самом деле это не так.Разрешение на выполнение указывает, есть ли у вас разрешение на вход в указанную директорию, т.е.
cd(change directory)
.
Типы и расширения файлов Linux
Вы наверняка слышали такую фразу: под Linux любое устройство является файлом, но файл тоже делится на различные типы, кроме вышеупомянутогоОбщие документы (-)ифайл каталога (г)Кроме того, также включены следующие типы файлов
- Обычный файл (обычный файл): обычные файлы, которые мы используем, ls -al отображается свойством, которое является первым символом, который мы указали выше,
Типы файлов можно разделить на
- Обычный текстовый файл (ASCII), который является наиболее распространенным типом файлов в системах Linux. Обычные текстовые файлы — это данные, которые мы можем видеть напрямую. Вы можете использовать
cat
чтобы увидеть эту часть непосредственно. Например, наиболее часто используемый файл ens33 для установки статического IP-адреса Linux может использовать команду cat для вывода
cat ifcfg-ens33
- Двоичные файлы в Linux, чтобы просмотреть двоичные файлы, которые вы можете использовать
xxd
илиod
сделать форматированный вывод - Файл формата данных, файл данных будет отображать искаженные символы при чтении напрямую с помощью cat, но он может пройти
last
вывод команды
- Директория, про директорию и говорить нечего, имеется в виду список файлов, а представление директории такое[d], который является каталогом.
- Файл ссылки (ссылка), файл ссылки — это тип файла, который необходимо связать с этими файлами ссылок при выполнении некоторых программ.
- Устройства и файлы устройств (device), устройства под Linux делятся на два типа, блочные устройства и символьные устройства:
Блочное устройство — это хранилище固定大小块
информация об устройстве, которое он поддерживаетЧтение и (необязательно) запись данных в блоки, сектора или кластеры фиксированного размера.. Каждый блок имеет свой物理地址
. Обычно размер блока составляет от 512 до 65536. Вся передаваемая информация будет连续
блоков. Основная особенность блочных устройств заключается в том, что каждый блок относительно противоположен и может считываться и записываться независимо друг от друга. Обычные блочные устройстваЖесткий диск, диск Blu-ray, USB-накопитель.
Блочное оборудование обычно находится под / dev / sda, его первый атрибут[b].
Другой тип устройства ввода/вывода字符设备
. символьное устройство с字符
Отправляйте или получайте поток символов в единицах, независимо от какой-либо блочной структуры. Символьные устройства не адресуются и не имеют операций поиска. Обычные символьные устройстваПринтеры, сетевые устройства, мыши и большинство других устройств, кроме дисков..
Самая большая особенность символьного устройства заключается в том, что его можно прочитать за один раз, и вывод нельзя обрезать.Например, вы не можете переместить мышь в другое место, но можете плавно перемещать ее.Первый атрибут символьное устройство[c].
- Файл интерфейса данных (сокеты): как следует из названия, файл интерфейса данных использует сокет для передачи сетевых данных, а его атрибуты[s], обычно встречающиеся в таких каталогах, как /run или /tmp.
- Файл передачи данных (FIFO, pipe): FIFO также является особым типом файла. Его основная цель — решить проблему ошибок, вызванных одновременным доступом к файлу нескольких программ. Его первым атрибутом является[p].
Расширение Linux
Говорить об этом расширении на самом деле головная боль.В Linux нет понятия расширения, но есть некоторые способы именования расширений, что смущает, поэтому давайте пока будем типом расширения. Как правило, существуют следующие
- * .sh Это сценарий выполнения или пакетный скрипт, который обычно называется сценарием оболочки, который является некоторыми инструкциями, написанными Shell.
- .tar, .tar.gz, .zip, *.tgz, этот тип расширения представляет собой упакованный сжатый файл, и существуют разные типы расширений в зависимости от различных методов упаковки.
- .html , .php : файлы, относящиеся к веб-странице, представляющие веб-файлы с синтаксисом HTML и PHP соответственно.